最希望獲得關于Delphi6+ADO+Access2000時,判斷記錄重複,缺少字段等的錯(0分)

T

Tomtop

Unregistered / Unconfirmed
GUEST, unregistred user!
*** 3.最希望獲得關于Delphi6+ADO+Access2000時,判斷記錄重複,缺少字段等的錯
誤捕捉方法的Demo!!!
因為 :上述錯誤我用ADOconnection1.errors.item[0].number獲得的總是
相同的Number:-2147467259,
當數據源是: Table時, 用ADOconnection1.errors.item[0].SQLState獲
得的會有不同:分別3022和33315,
但當數據源是Q uery 時分別是3022和3314,何解?究競用哪一種方法呢?

4.Please Email to 4480039@sina.com
 
try

except
on e:exception do showmessage(e.message);
end;
 
但是,E.Message是英文的,用戶不會明白啊!
我的意思是:讓我的description來代替英文的E.message,因此就必須判斷E.錯誤類型是
記錄重複,還是缺少字段等,那麼,該如何判斷E.錯誤類型呢?
 
自己啃MSDN,我找到答案了,
在Datamoudle中寫一Function:
For i:=0 to Adoconnection1.errors.count-1 do
if Adoconnection1.Errors.item.SQlstate=3022 then showmessage('錯誤:記錄重複');
......
Action:=daAbort;
 
用NativeError不是更好,在sqlserver中2601代表键值重复,Access2000就没试过,不过
也应该有一个对应的错误代码
 
顶部