DBGrid新增與修改問題 |
尚未結案
|
selina
一般會員 發表:39 回覆:64 積分:20 註冊:2002-12-05 發送簡訊給我 |
請問各位前輩:
我有一個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 發送簡訊給我 |
|
selina
一般會員 發表:39 回覆:64 積分:20 註冊:2002-12-05 發送簡訊給我 |
|
timhuang
尊榮會員 發表:78 回覆:1815 積分:1608 註冊:2002-07-15 發送簡訊給我 |
是的, 查詢的部分是使用 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 發送簡訊給我 |
|
selina
一般會員 發表:39 回覆:64 積分:20 註冊:2002-12-05 發送簡訊給我 |
|
timhuang
尊榮會員 發表:78 回覆:1815 積分:1608 註冊:2002-07-15 發送簡訊給我 |
引言: 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 的狀況下使用! |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |