線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:1269
推到 Plurk!
推到 Facebook!

DBGrid新增與修改問題

尚未結案
selina
一般會員


發表:39
回覆:64
積分:20
註冊:2002-12-05

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-06-22 21:25:03 IP:203.162.xxx.xxx 未訂閱
請問各位前輩: 我有一個form, form上有一個ComboBox, Query1, Datasource, DBGrid ComboBox : Airline Table 中的 airlineID Query1 : 找出 Price Table 中的所有資料 where Price Table.airlineID = ComboBox 使用者所選的airlineID DBGrid會顯示 Query1的結果 : ADeparture, ADestination, 40kg, over100kg, userID, InputDate eg: airlineID = CI DBGrid 會顯示結果如下: ADepature ADestination 40kg over100kg userID InputDate TPE JFK 20.5 18.2 selina 06/21/2003 我想當使用者修改資料內容後,使用者不需要自己輸入userID和InputDate,而電腦會自動修改userID成目前使用者的ID, InputDate顯示成今天日期. 在新增時也是一樣....不知道有沒有辦法這樣做呢? 謝謝~
timhuang
尊榮會員


發表:78
回覆:1815
積分:1608
註冊:2002-07-15

發送簡訊給我
#2 引用回覆 回覆 發表時間:2003-06-22 22:32:21 IP:61.62.xxx.xxx 未訂閱
可以的, 不過要看一下你的更新資料表方式是那一種, 是配合 TUpdateSQL 元件還是直接利用 TQuery 的 RequestLive = true 的方式呢? 或者是直接自行下 command 進資料庫更新?? 這三種作法的寫法都不同, 請先說明你的操作方法.
selina
一般會員


發表:39
回覆:64
積分:20
註冊:2002-12-05

發送簡訊給我
#3 引用回覆 回覆 發表時間:2003-06-23 10:00:32 IP:203.162.xxx.xxx 未訂閱
我是用一般TQuery而以,因為其你說的我不太會用.那不知道用TQuery的話要怎樣寫呢?
timhuang
尊榮會員


發表:78
回覆:1815
積分:1608
註冊:2002-07-15

發送簡訊給我
#4 引用回覆 回覆 發表時間:2003-06-23 10:26:41 IP:203.95.xxx.xxx 未訂閱
是的, 查詢的部分是使用 TQuery 元件沒錯, 我想請你說明的是異動的部分, 是上述三種的那一種, 或是你說的就是用另一個 TQuery 來進行異動呢? 若是使用另一個 TQuery 元件來進行異動的話, 那就是我上面提的第三種, 自行下 command 進資料庫異動, 這樣的話, 可以在自組 sql command 時就進行將資料對應欄位寫入的指令, 如:    
var
  sql: string;    begin
  sql= 'Update Price set 40kg=xx, over100kg=xx, '''+userid+''', InputDate = getdate() where adeparture = xxx and ADestination = xxx and AirlineID = xxx ' ;
end;
類似這樣的方式即可!
jerryhung
初階會員


發表:6
回覆:46
積分:30
註冊:2002-12-11

發送簡訊給我
#5 引用回覆 回覆 發表時間:2003-06-23 13:12:11 IP:202.39.xxx.xxx 未訂閱
我覺得可能直接在 BeforePost或 AfterPost時更新欄位即可 每次跑QUERY的UPDATE一次好像很麻煩說........ 而且有可能更動到很多欄位說,QUERY就會比較麻煩了
selina
一般會員


發表:39
回覆:64
積分:20
註冊:2002-12-05

發送簡訊給我
#6 引用回覆 回覆 發表時間:2003-06-23 14:08:41 IP:203.162.xxx.xxx 未訂閱
hi timhuang: 我是用你說的方式,就是用另外一個Query來update或儲存新一筆資料. 但是我怎樣讀進ADeparture, ADestination.....修改後與修改前的資料. jerryhung 請問BeforePost, AfterPost怎樣用?
timhuang
尊榮會員


發表:78
回覆:1815
積分:1608
註冊:2002-07-15

發送簡訊給我
#7 引用回覆 回覆 發表時間:2003-06-23 14:37:32 IP:203.95.xxx.xxx 未訂閱
引言: hi timhuang: 我是用你說的方式,就是用另外一個Query來update或儲存新一筆資料. 但是我怎樣讀進ADeparture, ADestination.....修改後與修改前的資料.
要讀取修改前和修改後的資料方式可能還是要看一下你原來 select 用的 TQuery 的 sql command, 再來看如何寫這個更新用的 TQuery 寫法. 弟一般的做法是使用 select 出來後的資料會帶入 TEdit (不是 TDBEdit )的欄位中, 接下來 user 做異動時就可以直接使用 select TQuery 的內容來組合 更新用 TQuery 的 sql command, 再進行異動完後, 記得 select 的 TQuery 要 close 後再 open (就是要更新一下畫面) 這樣就可以了! 如:
begin
  Query1.SQL.Clear;
  Query1.SQL.Add('select xxx from xxx');
  Query1.Open;
  Edit1.Text := Query1.FieldByName('xxx');
  Edit2.Text := Query1.FieldByName('xxx');
  Edit3.Text := Query1.FieldByName('xxx');
end;    異動, 如修改時:
begin
  Query2.SQL.Clear;
  Query2.SQL.Add('update xxx set xxx1='''+Edit1.Text+''', xxx2='''+Edit2.Text+''' where xxx1='''+Query1.FieldByName('key1').AsString+''' and xxx2='''+Query1.FieldByName('key2').AsString+'''  ');
  try
    Query2.ExecSQL;
    ShowMessage('修改成功');
    Query1.Close;
    Query1.Open;
  except
    ShowMessage('修改失敗');
  end;  
end;    
引言: 請問BeforePost, AfterPost怎樣用?
這個的話就是要配合前兩種的操作, TQuery 配合 TUpdateSQL 元件或是直接 TQuery 的 RequestLive = true 的狀況下使用!
系統時間:2024-07-03 2:32:31
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!