ADO Query Master-Detail刪除問題 |
尚未結案
|
webber
初階會員 發表:54 回覆:76 積分:26 註冊:2004-04-20 發送簡訊給我 |
如果我有兩個Table Order和OrderDetail
欄位如下
Order: sn, Amount
OrderDetail: sn, OrderSn, subtotal 若建立一個ADOQuery
SQL為:
select
o.sn as sn1 , o.Amount,
d.sn as sn2, d.ordersn, d.subtotal from OrderDetail d inner join Order o on o.sn = d.ordersn 我的問題是:
如何在刪除(呼叫AdoQuery.Delete)時,只刪除OrderDetail的資料,
而不會刪除到Order的資料呢 我之前有試過
把sn1和Amount的keyField 設為sn1
而sn2, ordersn, subtotal的keyfield設為sn2 則執行delete時兩個表格都會刪除....
怎麼辦呢? K.Top是我見過最棒的程式社群
如果沒有K.Top真不知道該怎麼活 |
cashxin2002
版主 發表:231 回覆:2555 積分:1937 註冊:2003-03-28 發送簡訊給我 |
您好﹗ 再加上一個ADOQuery﹐然后用SQL語法來控制只刪除Detail中鍵值相同于
ADOQuery1的當前筆資料欄位值﹒
begin ADOQuery2.Close; ADOQuery2.SQL.Clear; ADOQuery2.SQL.Add('Delete From OrderDetail Where '); ADOQuery2.SQL.Add('sn=''' ADOQuery1.Fields.Fields[0].AsString ''''); ADOQuery2.ExecSQL; ADOQuery1.Close; ADOQuery2.Open; end;========================= 我是您的朋友﹐有您真好﹗ =========================
------
忻晟 |
webber
初階會員 發表:54 回覆:76 積分:26 註冊:2004-04-20 發送簡訊給我 |
|
cashxin2002
版主 發表:231 回覆:2555 積分:1937 註冊:2003-03-28 發送簡訊給我 |
您好﹗ 可將DBNavigater元件的ConfirmDelete屬性值設為False﹐即不出現确認刪除
的對話框﹒然后將下列程式碼寫在BeforeDelete事件中﹕
begin if Application.MessageBox('您确定要刪除相關資料嗎﹖', '刪除确認對話 框', MBYESNo MB_DefButton2 MBIconQuestion MB_ApplModal) <> IDYes then //自訂确認刪除對話框 begin Abort; end else begin ADOQuery2.Close; ADOQuery2.SQL.Clear; ADOQuery2.SQL.Add('Delete From OrderDetail Where '); ADOQuery2.SQL.Add('sn=''' ADOQuery1.Fields. Fields[0].AsString ''''); ADOQuery2.ExecSQL; ADOQuery1.Close; ADOQuery2.Open; Abort; end; end;========================= 我是您的朋友﹐有您真好﹗ ========================= 發表人 - cashxin2002 於 2004/11/13 18:31:00
------
忻晟 |
zzmbeyond01
中階會員 發表:98 回覆:167 積分:53 註冊:2003-09-07 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |