触发器及联更新 |
尚未結案
|
zzmbeyond01
中階會員 ![]() ![]() ![]() 發表:98 回覆:167 積分:53 註冊:2003-09-07 發送簡訊給我 |
|
cashxin2002
版主 ![]() ![]() ![]() ![]() ![]() ![]() 發表:231 回覆:2555 積分:1937 註冊:2003-03-28 發送簡訊給我 |
您好﹗ 從您的敘述來看﹐單位資料表和商品資料表為一對一的關聯狀態﹐請參考如下方法﹕
在Private區宣告兩個字串變數 Private StrTemp1, StrTemp2 : String; 將如下程式碼寫于單位資料表之AfterEdit事件中﹕ 假設dm欄位為String形態﹐且其位于資料表第一欄位﹐即序號值為0 begin StrTemp1 := ADOTable1.Fields.Fields[0].AsString; end; 將如下程式碼寫于單位資料表之BeforePost事件中﹕ begin StrTemp2 := ADOTable1.Fields.Fields[0].AsString; end; 將如下程式碼寫于單位資料表之AfterInsert事件中﹕ begin StrTemp1 := ''; StrTemp2 := ''; end; 將如下程式碼寫于單位資料表之AfterPost事件中﹕ begin if StrTemp1 <> StrTemp2 then begin ADOQuery1.Close; ADOQuery1.SQL.Clear; ADOQuery1.SQL.Add('Update 商品資料表 Set fk_mc = ''' StrTemp2 ''' Where fk_mc = ''' StrTemp1 ''''); ADOQuery1.ExecSQL; end else begin ShowMessage('dm欄位未改變﹐故不需更新商品資料表的fk_mc內容'); end; end;其中還會涉及一些諸如資料刪除等方面的部分﹐大致方法就是在某資料表的BeforeDelete事件中利用Private區域變數記錄下當前欲刪除資料錄之主鍵值﹐然后在AfterDelete事件中刪除另一資料表中主鍵值相同于此變數的資料錄﹒ 商品資料表的触發方法相同于單位資料表﹒ ========================= 我是您的朋友﹐有您真好﹗ ========================= 發表人 - cashxin2002 於 2004/12/11 11:16:33
------
忻晟 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |