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

如何讓 ADD CONSTRAINT 生效

尚未結案
MingLin
一般會員


發表:24
回覆:26
積分:10
註冊:2002-09-20

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-10-18 15:53:59 IP:220.130.xxx.xxx 未訂閱
對已存在 Tables wfTable和ciTable 建關聯性 我的程式碼如下 ADOQuery.sql.Clear; ADOQuery.sql.add('ALTER TABLE wfTable '); ADOQuery.sql.add('ADD CONSTRAINT wf_cis '); ADOQuery.sql.add('FOREIGN KEY (wCode) REFERENCES ciTable (wCode)'); ADOQuery.ExecSQL; 程式執行OK,但是並未真正建立此關聯,請問該如何做才對呢? 謝謝!
wameng
版主


發表:31
回覆:1336
積分:1188
註冊:2004-09-16

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-10-18 16:36:41 IP:61.222.xxx.xxx 未訂閱
我記得有些語法必須在 Create table 狀態下 才能生效。
MingLin
一般會員


發表:24
回覆:26
積分:10
註冊:2002-09-20

發送簡訊給我
#3 引用回覆 回覆 發表時間:2004-10-18 17:20:01 IP:220.130.xxx.xxx 未訂閱
ADD CONSTRAINT 確實在 CREATE TABLE 時生效,但是目前Tables已經在客戶端應用了,所以只能用 ALTER TABLE 的方式變更。 Thanks!
wameng
版主


發表:31
回覆:1336
積分:1188
註冊:2004-09-16

發送簡訊給我
#4 引用回覆 回覆 發表時間:2004-10-18 17:42:32 IP:61.222.xxx.xxx 未訂閱
您的資料庫是? 若是使用ACCESS 可以利用 OLE or ADO 解決
MingLin
一般會員


發表:24
回覆:26
積分:10
註冊:2002-09-20

發送簡訊給我
#5 引用回覆 回覆 發表時間:2004-10-19 08:05:22 IP:220.130.xxx.xxx 未訂閱
我使用的資料庫是 Microsoft SQL
ha0009
版主


發表:16
回覆:507
積分:639
註冊:2002-03-16

發送簡訊給我
#6 引用回覆 回覆 發表時間:2004-10-19 10:05:06 IP:219.80.xxx.xxx 未訂閱
你好:     我測試不管用 TAdoQuery 或是 TAdoCommand 都可以成功喔 src="http://sourceprovide.deepen.com.tw/K_Top/bp.gif">
chead
一般會員


發表:10
回覆:12
積分:4
註冊:2004-08-03

發送簡訊給我
#7 引用回覆 回覆 發表時間:2004-10-19 15:45:03 IP:220.130.xxx.xxx 未訂閱
請問ha0009板主 您也是用同樣的方法嗎? 可以請問您的source code嗎? 謝謝
chead
一般會員


發表:10
回覆:12
積分:4
註冊:2004-08-03

發送簡訊給我
#8 引用回覆 回覆 發表時間:2004-10-19 15:45:43 IP:220.130.xxx.xxx 未訂閱
請問ha0009板主 您也是用同樣的方法嗎? 可以請問您的source code嗎? 謝謝
ha0009
版主


發表:16
回覆:507
積分:639
註冊:2002-03-16

發送簡訊給我
#9 引用回覆 回覆 發表時間:2004-10-19 19:09:07 IP:219.80.xxx.xxx 未訂閱
你好:
    其實就是一般的使用方式,但 Query 要使用 Execute。下面是我的測試碼,
你拿到你的機器上試試吧     string = 'ALTER TABLE wfTable ADD CONSTRAINT wf_cis FOREIGN KEY (wCode) REFERENCES ciTable (wCode)' string = 'if exists (select * from dbo.sysobjects where id = object_id(N'>    
        
MingLin
一般會員


發表:24
回覆:26
積分:10
註冊:2002-09-20

發送簡訊給我
#10 引用回覆 回覆 發表時間:2004-10-21 09:11:29 IP:220.130.xxx.xxx 未訂閱
Thank you very much for your source code! 改以提供之程式碼測試後發生如下Error message: ALTER TABLE 陳述式與 COLUMN FOREIGN KEY 條件約束'wf_cis' 發生衝突 。衝突發生於資料庫'MyDatabase',資料表'ciTable',column 'wcode'。 對於上述Error,請問該如何排除?Thanks! Ming Lin
ha0009
版主


發表:16
回覆:507
積分:639
註冊:2002-03-16

發送簡訊給我
#11 引用回覆 回覆 發表時間:2004-10-21 11:03:34 IP:219.80.xxx.xxx 未訂閱
你好:
    提供我測試用的 Schema 給你參考,上面兩個字串常數 AddSQL 與 DropSQL就是使用在
ciTable 與 wfTable 上的。如果你無法直接在你的 DB 上執行我給你的範例,你可以使用下
面的 Schema 建立測試的資料表來進行測試。如果你也能提供你有問題的 Schema ,我也可以
幫你試試。    >    < src="http://sourceprovide.deepen.com.tw/K_Top/bp.gif">
        
系統時間:2024-06-29 16:30:03
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!