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

有關 Delphi + MSSQL Trigger 的問題

答題得分者是:chuang7287
romi
一般會員


發表:5
回覆:3
積分:1
註冊:2007-11-21

發送簡訊給我
#1 引用回覆 回覆 發表時間:2007-11-21 11:33:14 IP:218.160.xxx.xxx 訂閱
各位好!!
我使用 Delphi MSSQL, 在資料庫中有兩個 TABLE,
table A (SRC_ID,ITEM,QTY)
CREATE UNIQUE CLUSTERED
INDEX [PK_tableA] ON [dbo].[tablea] ([SRC_ID])
WITH
DROP_EXISTING
ON [PRIMARY]
tableA.SRC_ID 為 [識別值種子], 會自動產生續編 1,2,3........的 PK 值

table B(SRC_ID,ITEM,QTY)

在 table A insert 後, 同時也要 insert table B, 所以在 table A 寫 TRIGGER,
但自從有 TRIGGER 之後, TABLE A 的 SRC_ID 的值在自動續編時有問題;
於 DBGRID 中新增一筆 TABLE A 的資料後; 所取到 SRC_ID 的值會亂掉.
例如 : SRC_ID 最大已編至 1000; 有 TRIGGER 時, 在 DBGRID 中再新增
一筆資料後, SRC_ID 會取得 8 (理論上應該取得 1001 或更大). 但如果將
Table A reopen 過就正常了.
如果我不透過DBGRID 新增資料, 而直接用 SQL 指令 Insert 資料則沒有問
題. 是否在 TRIGGER 執行時; SRC_ID 尚未真正取得該有的值?

以下是 TABLE A 的 TRIGGER :

CREATE TRIGGER TRG_UPDATE_TABLEB ON TABLEA
AFTER INSERT
AS
insert TABLEB (SRC_ID,ITEM,QTY)

select SRC_ID,ITEM,QTY
from Inserted

請各位不吝賜教! 謝謝

------
Romi
chuang7287
初階會員


發表:1
回覆:20
積分:29
註冊:2002-10-22

發送簡訊給我
#2 引用回覆 回覆 發表時間:2007-11-21 12:06:20 IP:61.228.xxx.xxx 訂閱
改以下紅色部份試試

CREATE TRIGGER TRG_UPDATE_TABLEB ON TABLEA
AFTER INSERT
AS
insert TABLEB select SRC_ID,ITEM,QTY from Inserted
------
結案=動力
高手等等我 .... 追隨高手永不懈怠!!
編輯記錄
chuang7287 重新編輯於 2007-11-21 13:09:32, 註解 無‧
chuang7287 重新編輯於 2007-11-21 13:11:19, 註解 無‧
romi
一般會員


發表:5
回覆:3
積分:1
註冊:2007-11-21

發送簡訊給我
#3 引用回覆 回覆 發表時間:2007-11-21 13:35:17 IP:218.160.xxx.xxx 訂閱
Dear Chuang7287
謝謝您的回覆!
但是 TABLE A 與 TABLE B 還有其他欄位不盡相同;
所以在 INSERT 時我才會指定 INSERT 欄位.
在 TABLE A 與 TABLE B 中都有 SRC_ID 欄位,
不同的是在 TABLE A 中SRC_ID 為 [識別值種子], 並為 PK;
而在 TABLE B 中只是單純的 numeric(12)

------
Romi
romi
一般會員


發表:5
回覆:3
積分:1
註冊:2007-11-21

發送簡訊給我
#4 引用回覆 回覆 發表時間:2007-11-22 14:54:39 IP:218.160.xxx.xxx 訂閱
問題已解決!
有一點是我搞錯, 在 Trigger 中的其實已抓到
SRC_ID 的值沒有問題, 是在 Delphi 中TABLEA
的ADOQuery 需要 Reopen 後才會抓到正確的
SRC_ID.
謝謝!!
------
Romi
系統時間:2024-11-23 3:55:03
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!