線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:2718
推到 Plurk!
推到 Facebook!

在N-tieer架構下用MasterDetail ADO Connect 是否不可用Trigger

答題得分者是:xxiaowang
Merlin
一般會員


發表:2
回覆:8
積分:2
註冊:2002-04-15

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-01-24 17:35:49 IP:218.165.xxx.xxx 訂閱
在N-tieer架構下用MasterDetail ADO Connect Master Dataset 修改完後想利用SQL SERVER trigger針對Detail作修改 但都會出現 ADODB 錯誤 "Key Column information is insufficent or incorect. too many rows were affected by update " 難道只能在client端作處理嗎?
hagar
版主


發表:143
回覆:4056
積分:4445
註冊:2002-04-14

發送簡訊給我
#2 引用回覆 回覆 發表時間:2003-01-24 17:49:39 IP:202.39.xxx.xxx 未訂閱
沒設 Primary Key 的關係嗎? http://support.microsoft.com/default.aspx?scid=kb;EN-US;q268505&GSSNB=1 http://www.sqlmag.com/forums/messageview.cfm?catid=8&threadid=8019 -- 將進酒 杯莫停 與君歌一曲 請君為我傾耳聽
ko
資深會員


發表:28
回覆:785
積分:444
註冊:2002-08-14

發送簡訊給我
#3 引用回覆 回覆 發表時間:2003-01-24 17:54:24 IP:61.221.xxx.xxx 未訂閱
可以把sql語法post上來look,look嗎
------
======================
昏睡~
不昏睡~
不由昏睡~
Merlin
一般會員


發表:2
回覆:8
積分:2
註冊:2002-04-15

發送簡訊給我
#4 引用回覆 回覆 發表時間:2003-01-24 18:05:05 IP:218.165.xxx.xxx 訂閱
引言: 可以把sql語法post上來look,look嗎 1.有設Primary Key 2. SQL語法應沒有問題 CREATE TRIGGER [傳票主檔修改] ON [dbo].[DMASTER] FOR UPDATE AS DECLARE @NewAccdate DateTime,@Compno Varchar(4),@Accno Varchar(12) SELECT @NewAccdate=ACCDATE,@Compno=COMPNO,@Accno=ACCNO FROM INSERTED -- 若修改傳票日期 更新傳票明細的傳票日期 IF UPDATE(ACCDATE) UPDATE DDETAIL SET ACCDATE=@NewAccdate WHERE DDETAIL.COMPNO=@Compno AND DDETAIL.ACCNO=@Accno 若於程式中修改日期會出現: "Update Affected More Than 1 Record" 的錯誤訊息 若於SQL Query Analyzer 中Update 日期則正常
moxa
一般會員


發表:2
回覆:7
積分:1
註冊:2002-04-15

發送簡訊給我
#5 引用回覆 回覆 發表時間:2003-02-26 19:38:33 IP:211.23.xxx.xxx 未訂閱
可以在程式update前,先查詢看看是否真ㄉ return more rows ....
Merlin
一般會員


發表:2
回覆:8
積分:2
註冊:2002-04-15

發送簡訊給我
#6 引用回覆 回覆 發表時間:2003-03-03 04:29:13 IP:218.165.xxx.xxx 訂閱
MASTER 作修改更新DETAIL必定是多筆資料 例如:銷貨單 銷貨日期更動 名細有幾筆必定更動銷貨日期   OR      會計傳票傳票日期變動 這是蠻常有的事,想說不必在前端作迴圈處理而在DATA SERVER下TRIGGER 更動較有效率 結果< >< >
xxiaowang
中階會員


發表:51
回覆:75
積分:55
註冊:2005-01-26

發送簡訊給我
#7 引用回覆 回覆 發表時間:2005-05-12 14:03:52 IP:218.17.xxx.xxx 未訂閱
在Trigger中加上:set nocount on
Merlin
一般會員


發表:2
回覆:8
積分:2
註冊:2002-04-15

發送簡訊給我
#8 引用回覆 回覆 發表時間:2007-08-30 16:03:15 IP:125.229.xxx.xxx 訂閱
此問題再之前改網站程式前已經結案了!
現要再次結案系統也沒動作
不是我不結案
請查照
VICSYS
初階會員


發表:21
回覆:64
積分:32
註冊:2002-10-10

發送簡訊給我
#9 引用回覆 回覆 發表時間:2007-09-11 01:21:14 IP:59.105.xxx.xxx 訂閱
如果在主檔的 Trigger 改變明細的某些欄位, 而這個欄位又顯示在程式上
(不管是不是真的顯示, 只要 DataSet 內有這個欄位就算)!
這樣會造成問題! 在二層的情況也一樣吧!

主檔去改明細的資料後, 使用者再去改明細時,
內容值跟資料庫的內容值不一樣! 這時使用者可不可以修改明細?

明細有會被主檔 Trigger 修改的 銷貨日期...
不知道您在二層如何處理這樣的清況?

1.主檔執行 Trigger
2.明細顯示如何?

另外, 針對這個問題, 明細的欄位是否包含被 Trigger 改變的欄位?
去掉這些欄位後, 應該就正常!

至於, 某些欄位無法去掉時, 必須顯示給使用者, 這是另一個問題.
先不猜測您修正的情況.
系統時間:2017-12-11 19:06:40
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!