在SQL當中的一個表當中建立兩個字段 ia1,ia2 其中ia1為主鍵。
在Delphi當中用Insert 語句的時候如果插入值有和ia1當中有重復的他就指示主鍵重復
我想問一下有什麼方法能在這個信息指示之前攔結他,改為用戶自已的showmessage
呢。如果有原代碼最好了。
如果插入語句寫在存儲過程當中的話提示信息如何返回客戶端。。
謝謝各位大俠請指教
在Delphi當中用Insert 語句的時候如果插入值有和ia1當中有重復的他就指示主鍵重復
我想問一下有什麼方法能在這個信息指示之前攔結他,改為用戶自已的showmessage
呢。如果有原代碼最好了。
如果插入語句寫在存儲過程當中的話提示信息如何返回客戶端。。
謝謝各位大俠請指教
query.execsql;
except
on e:tdberror do
showmessage(e.message);
end;
I: Integer;
begin
for I:=0 to MainData.adcConn.Errors.Count-1 do
begin
case MainData.ADOConnection.Errors.Item[I].NativeError of
-105121349:
begin
Application.MessageBox('XXX Must Be Only!',PChar(Application.Title),MB_OK+MB_ICONWARNING);
Action:=daAbort;
end;
end;
end;至于-105121349等数字不同数据库有不同的错误代码,-105121349是Access的唯一值错误代码,SQL Server2000的好像是2601,你用这个过程测一下即可!var
I: Integer;
begin
for I:=0 to MainData.adcConn.Errors.Count-1 do
begin
ShowMessage(IntToStr(MainData.ADOConnection.Errors.Item[I].NativeError));
// Action:=daAbort;
end;
end;
end;
你还可以加入其他的错误代码,做成一个通用的错误显示过程。
具体的错误代码,可以参考sql server 的online book。