请教,各位大哥一个错误处理的问题,谢谢! |
尚未結案
|
lsh998
中階會員 發表:163 回覆:138 積分:60 註冊:2005-01-07 發送簡訊給我 |
各位大哥
有个这样的问题:
表 test1
sno varchar(50) primary key NOT NULL
name varchar(50) 有存储过程:
create procedure inserttest1
@sno varchar(50),
@name varchar(50)
as
insert test1(sno,name)
values (@sno,@name) if @@error=0 and @@rowcount=1
commit tran
else
rollback tran go 在 delphi 中这样调用:
procedure TForm1.Button2Click(Sender: TObject); begin
ADOStoredProc1.Close;
ADOStoredProc1.ProcedureName:='inserttest1';
ADOStoredProc1.Parameters.Refresh;
ADOStoredProc1.Parameters.ParamByName('@sno').Value:=edit2.Text;
ADOStoredProc1.Parameters.ParamByName('@name').Value:=edit3.Text;
try
ADOStoredProc1.ExecProc;
showmessage('新增成功');
except
showmessage('新增不成功');
end;
我希望出现的应该是:
try
ADOStoredProc1.ExecProc;
showmessage('新增成功');
except
情况1:show 出..........
情况2:show 出..........
情况3:show 出..........
..........
end; 请教,各位大哥,
except
情况1:show 出..........
情况2:show 出..........
情况3:show 出..........
..........
应该怎样表示?一般又有哪些情况? 请给我举个列子好吗? 谢谢 各位大哥!
|
cashxin2002
版主 發表:231 回覆:2555 積分:1937 註冊:2003-03-28 發送簡訊給我 |
您好﹗ 在Try...Except例外處理的事件中﹐Delphi定義了許多Error類別﹐如﹕EdatetimeError﹐EdatabaseError﹐EConvertError等等﹐在您的實例中﹐是相關于Database的部分﹐所以就可以使用EdatabaseError錯誤類別的Message來擷取到相對應的資料庫相關錯誤信息﹐如下﹕
try ADOStoredProc1.ExecProc; ShowMessage('新增成功'); except On E: EdatabaseError do ShowMessage(E.Message); //此處也可使用E.ClassName的方法來取得Error的類別﹐ //相對應的﹐取得的應就是EdatabaseError類別 end;================================= 有空來瞅瞅我﹗因為我是您的朋友﹐有您真好﹗ ================================
------
忻晟 |
lsh998
中階會員 發表:163 回覆:138 積分:60 註冊:2005-01-07 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |