delphi 应该怎样判断调用的存储过程是否成功呢---------例如--------
procedure TfrmUpEmp.BitBtn1Click(Sender: TObject);
var
clientid_s : string;
oldempid_s : string;
newempid_s : string;
begin
if clientname.Text = '' then
begin
MessageDlg('请选择客户!',mtwarning,[mbok],0);
clientname.SetFocus;
Exit;
end;
if oldempname.Text = '' then
begin
MessageDlg('请选择老业务员!',mtwarning,[mbok],0);
oldempname.SetFocus;
Exit;
end;
if newempname.Text = '' then
begin
MessageDlg('请选择新业务员!',mtwarning,[mbok],0);
newempname.SetFocus;
Exit;
end;
try
clientid_s := Trim(clientid.Text);
oldempid_s := Trim(oldempid.Text);
newempid_s := Trim(newempid.Text); adoUpemp.Close;
adoUpemp.SQL.Clear;
adoUpemp.SQL.Text :='Exec sub_UpEmp '''+clientid_s+''','''+oldempid_s+''','''+newempid_s+''' ';
adoUpemp.Open;
-------(过程执行完成之后 是否成功 我想在这显示个提示框《‘你修改成功’或者‘你修改失败’》)----------
except
end;
//close;
end;
procedure TfrmUpEmp.BitBtn1Click(Sender: TObject);
var
clientid_s : string;
oldempid_s : string;
newempid_s : string;
begin
if clientname.Text = '' then
begin
MessageDlg('请选择客户!',mtwarning,[mbok],0);
clientname.SetFocus;
Exit;
end;
if oldempname.Text = '' then
begin
MessageDlg('请选择老业务员!',mtwarning,[mbok],0);
oldempname.SetFocus;
Exit;
end;
if newempname.Text = '' then
begin
MessageDlg('请选择新业务员!',mtwarning,[mbok],0);
newempname.SetFocus;
Exit;
end;
try
clientid_s := Trim(clientid.Text);
oldempid_s := Trim(oldempid.Text);
newempid_s := Trim(newempid.Text); adoUpemp.Close;
adoUpemp.SQL.Clear;
adoUpemp.SQL.Text :='Exec sub_UpEmp '''+clientid_s+''','''+oldempid_s+''','''+newempid_s+''' ';
adoUpemp.Open;
-------(过程执行完成之后 是否成功 我想在这显示个提示框《‘你修改成功’或者‘你修改失败’》)----------
except
end;
//close;
end;
解决方案 »
- 散分啦!人民网发起投票“延长春节假日 恢复五一长假 您认为如何?”
- 很简单的语法问题,谁能帮我修改一下
- 关于Scrollbar组件里的onscroll事件的用法,它里面的参数怎么用?
- 求职:Delphi开发
- 我的程序在退出后还有进程驻留在内存,如何释放?
- 我这个socket响应接收信息的事件没有反应,为何?
- 谁有delphi5的cd key?
- 如何改变TTable中一个数据段的显示的宽度?
- 我再Qreport中的一个detail的Qband上同时显示数据集中的两条记录,而不是一条记录的多个字段。
- ---没有*.pas文件的控件该如何安装?---
- cxgrid导出到Excel问题。设置工作簿名称
- 类的继承
至少所执行的SQL语句没有语法错误,但结果是不是预期的,就不清楚了
可以用try except end
如果执行失败,就会执行 except里面的代码,成功,则不会进入except内;在except和end之间加个 showmessage('执行失败!'); 这样执行没成功就会弹出提示!!
try
......
......
adoUpemp.SQL.Text :='Exec sub_UpEmp '''+clientid_s+''','''+oldempid_s+''','''+newempid_s+''' ';
adoUpemp.Open; showmessage('执行成功!');
except
showmessage('执行失败!');
end;
当执行多条语句时,要么执行成功提交所有修改的数据,如果有失败,则将修改的数据,回滚到原状态;procedure TForm1.Button1Click(Sender: TObject);
begin
try ADOQuery1.Connection := ADOConnection1; //用存储过程来控制所有数据的提交,要么全部数据提交成功,要么数据回滚到原状态
if not ADOConnection1.InTransaction then
ADOConnection1.BeginTrans; //执行第一条语句
ADOQuery1.SQL.Text := '...sql1....';
ADOQuery1.Open; //执行第二条语句
ADOQuery1.SQL.Text := '...sql2....';
ADOQuery1.Open; //用存储过程提交数据
if ADOConnection1.InTransaction then
ADOConnection1.CommitTrans; showmessage('成功');
except on E: Exception do
begin
if ADOConnection1.InTransaction then
ADOConnection1.RollbackTrans;
showmessage('失败');
end; end;end;
begin
try ADOQuery1.Connection := ADOConnection1; //用存储过程来控制所有数据的提交,要么全部数据提交成功,要么数据回滚到原状态
if not ADOConnection1.InTransaction then
ADOConnection1.BeginTrans; //执行第一条语句
ADOQuery1.SQL.Text := '...sql1....';
ADOQuery1.Open; //执行第二条语句
ADOQuery1.SQL.Text := '...sql2....';
ADOQuery1.Open; //用存储过程提交数据
if ADOConnection1.InTransaction then
ADOConnection1.CommitTrans; showmessage('成功');
except on E: Exception do
begin
if ADOConnection1.InTransaction then
ADOConnection1.RollbackTrans;
showmessage('失败');
end; end;end;