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

無法...插入重複索引鍵~~

答題得分者是:Mickey
monkeyhung
一般會員


發表:51
回覆:55
積分:21
註冊:2006-12-16

發送簡訊給我
#1 引用回覆 回覆 發表時間:2007-05-24 14:04:38 IP:203.69.xxx.xxx 訂閱


各位大大好:
不知這個錯誤的訊息可以改成說「此筆代號已存在,請確認」嗎?
我在網站上有看別的大大提到說用
try
ADODataSet1.Post;
exept
.
.
ADODataSet1.Cancel;
abort;
end;
但我並了太了解他的意思為何,而且是要下在那個地方呢
麻煩各位大大!!謝謝

Mickey
版主


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

發送簡訊給我
#2 引用回覆 回覆 發表時間:2007-05-24 15:31:47 IP:218.163.xxx.xxx 訂閱
你好:

試試
try
raise Exception.Create('Origion Exception Message');
except
on E:Exception do begin
E.Message := 'My Message';
raise;
end;
end;
monkeyhung
一般會員


發表:51
回覆:55
積分:21
註冊:2006-12-16

發送簡訊給我
#3 引用回覆 回覆 發表時間:2007-05-24 16:13:49 IP:203.69.xxx.xxx 訂閱
版主大大謝謝您的解答!!

另外我想請教版主大大一個問題

因為我是用sql 2005 的,而這個table裡我分別有把 單號、序號、品項代號都設為索引鍵,而也都是唯一值

然而我一定要是單號=序號=品項代號時才會觸發這個事件

而我是想要讓單號、序號、品項代號這三個欄位都不能重覆

不知我該如何下手呢?

ps:我目前有做到說,當是在新增狀態時,能夠避免user輸入重覆的單號、序號、品項代號

但若寫入db後,而再做查詢動作後,而重新編輯、修改時,就不能避免讓user把單號、序號、品項代號

改為有相同的值。

只有在最前面所說的(當單號=序號=品項代號)時才會有錯誤的訊息出來

我是用adoquery、dbgrid
Mickey
版主


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

發送簡訊給我
#4 引用回覆 回覆 發表時間:2007-05-24 16:21:52 IP:218.163.xxx.xxx 訂閱
你唯一的索引建置錯誤...應該是多欄位的鍵

MSSQL 很久沒用...不確定這樣寫對不對...查查 Help 唄

create unique index [IndexName] on [TableName] ( [Col1], [Col2]... )
go
ko
資深會員


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

發送簡訊給我
#5 引用回覆 回覆 發表時間:2007-05-25 17:54:02 IP:220.142.xxx.xxx 訂閱
解決方式很多,既然是MSSQL我建議用 if exists () 的方式來做
這一段if exists () 是SQL語法是於用法請參閱T-SQL
------
======================
昏睡~
不昏睡~
不由昏睡~
系統時間:2024-11-22 2:01:34
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!