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

delphi6+sqlserver2000,當操作的表有Trigger對別的表進行操作時出錯?

尚未結案
dialog
一般會員


發表:33
回覆:18
積分:10
註冊:2002-09-07

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-01-12 08:49:08 IP:61.144.xxx.xxx 未訂閱
反回錯誤為:找不到要更新的列,最後讀取的數值已被變更 觸發器: CREATE TRIGGER [BOMMD_1] ON [dbo].[BOMMD] FOR DELETE AS declare @MD001 char(20),@MD003 char(20) select @MD001=MD001,@MD003=MD003 from deleted if exists(select MA001 from BOMMA where MA001=@MD003 and MA002=@MD001) delete from BOMMA where MA001=@MD003 and MA002=@MD001 if exists(select MB001 from BOMMB where MB001=@MD003 and MB002=@MD001) delete from BOMMB where MB001=@MD003 and MB002=@MD001 當有刪除操作是就出錯。但數據還是刪除。
Mickey
版主


發表:77
回覆:1882
積分:1390
註冊:2002-12-11

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-01-14 10:50:02 IP:218.163.xxx.xxx 未訂閱
dialog 你好:    這個 Error 我沒遇過, 不過我習慣的 Trigger 寫法不同, 參考看看:
CREATE TRIGGER [BOMMD_1] ON [dbo].[BOMMD] 
FOR DELETE AS
begin
  delete BOMMA from BOMMA,deleted
    where BOMMA.MA001=deleted.MD003 and BOMMA.MA002=deleted.MD001      delete BOMMB from BOMMB,deleted
    where BOMMB.MB001=deleted.MD003 and BOMMB.MB002=deleted.MD001
end
hahalin
版主


發表:295
回覆:1698
積分:823
註冊:2002-04-14

發送簡訊給我
#3 引用回覆 回覆 發表時間:2004-01-14 11:08:23 IP:61.222.xxx.xxx 未訂閱
這個錯誤訊息應該不是這個trigger發出的 有可能是前端的dataset元件使用的資料指標類型 以ado為例,檢查一下cursortype與locktype 不然有個辦法,在刪除後 close 再 open 或是 requery
系統時間:2024-05-01 9:53:58
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!