全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:1654
推到 Plurk!
推到 Facebook!

ADO Query Master-Detail刪除問題

尚未結案
webber
初階會員


發表:54
回覆:76
積分:26
註冊:2004-04-20

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-11-13 16:26:04 IP:220.130.xxx.xxx 未訂閱
如果我有兩個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

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-11-13 16:59:09 IP:202.62.xxx.xxx 未訂閱
您好﹗    再加上一個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

發送簡訊給我
#3 引用回覆 回覆 發表時間:2004-11-13 17:23:39 IP:220.130.xxx.xxx 未訂閱
謝謝您撥空回答 可以這樣一來好像就無法使用Navigater了說 /> 如果沒有
cashxin2002
版主


發表:231
回覆:2555
積分:1937
註冊:2003-03-28

發送簡訊給我
#4 引用回覆 回覆 發表時間:2004-11-13 18:25:54 IP:202.62.xxx.xxx 未訂閱
您好﹗    可將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

發送簡訊給我
#5 引用回覆 回覆 發表時間:2004-11-13 18:58:37 IP:222.183.xxx.xxx 未訂閱
cashxin2002大大: 我在数据库中将主从表设置为级联删除,在程序中用DBNavigater元件删除时,一般会抱错(数据不一致更新),但是到后台数据库中实际相关数据已经删除了,请问该如何屏蔽该错误信息?
系統時間:2024-06-29 0:10:01
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!