用Ado調用Access2000的數據表后,怎樣處理它的OnPostError事件中的主鍵值重復值輸入錯誤呢? 大富翁的高手呢?難道大富翁沒有高手了嗎?我的問題

  • 主题发起人 主题发起人 sydan
  • 开始时间 开始时间
S

sydan

Unregistered / Unconfirmed
GUEST, unregistred user!
用Ado調用Access2000的數據表后,怎樣處理它的OnPostError事件中的主鍵值重復值輸入錯誤呢? 大富翁的高手呢?難道大富翁沒有高手了嗎?我的問題怎麼還沒有人來幫忙解決啊,還一直在等待中呢!版主啊,你一定要來救救小弟啊!!! (50分)<br />我知道用BDE的DB表時可以通過EDBEngineError異常類可以訪問它的Errors數組來獲得當前
的錯誤代碼.如果是eKeyViol的話,就肯定是重復輸入主鍵值字段的內容!!

我現在就想通用ADO操作Access表,且也想AdoTable的OnPostError來檢測是否有重復值,但是
就出現了ADO中我就不清楚它的錯誤類!ODBC呢??我也不清楚!

您能將下面的表改成Access2000的表,並將table改用Ado來操作嗎?

如果是BDE的DB表就可以這樣操作了!如果要參考的話可以到
(C:/Program Files/Borland/Delphi6/Demos/Db/Dberrors)
======================================================
procedure TDM.CustomerPostError(DataSet: TDataSet;
E: EDatabaseError; var Action: TDataAction);
begin
if (E is EDBEngineError) then
if (E as EDBEngineError).Errors[0].Errorcode = eKeyViol then
begin
MessageDlg('Unable to post: Duplicate Customer ID.', mtWarning, [mbOK], 0);
Abort;
end;
end;
 
在处理ADO的错误,不是这么自理的。我可以帮你找一下。
 
onposterror中:

for ErrCount :=0 to ADOConnection1.Errors.Count-1 do
if ADOConnection1.Errors.Item[ErrCount].Number = -2147217873 then
showmessgae('主键重复.')
 
ado跟bde是不一样的,李维的那本书很详细的
 
TO:土土
但是我現在沒有啊!而我又正急著要交工啊!!那可怎麼辦是好呢?

TO:jsxjd
謝謝,麻煩你幫找找看了!正在線等待著你的答案哩!!
TO:delphing
謝謝您的答案,但是我試過了,還是通不過,你能夠也試一試嗎?謝謝!
 
我当然试过了,要不我敢在这瞎掰么,
怎么通不过了,详细点啊
 
TO:delphing
謝謝,不過我想問一問你用的是Windows的那個版本,以及你的字體是什麼!
我這里是Win2k繁體和簡體!它們的錯誤代嗎我測了是-2147467259,所以我怕到時一發布后在
其它Windows版上出現錯誤,故煩請代勞!!
 
onposterror中:

for I :=0 to ADOConnection1.Errors.Count-1 do
showessage(ADOConnection1.Errors.Description;

sydan的錯誤代嗎-2147467259是对的,但有必要根据他来处理吗?
Description不已说的很清楚了吗?

 
有一个自增量字段就可以了
 
多人接受答案了。
 
后退
顶部