DELPHI 如何在 ADO post 前截取SQL RAISERROR 错误提示?SQLSERVER2000中 A表在DELPHI中用POST提前数据,其有有触发器
比如:
if ( Select Count(1) From B t1
) > 0
BEGIN
ROLLBACK TRAN
RAISERROR( '~$~入库数量不能大于计划数量!^|^',18,18)
GOTO H_Error
END 如何能在post前获得这错误并在DELPHI中提示,并且不会提交数据呢?还要不能出错?请教大家
比如:
if ( Select Count(1) From B t1
) > 0
BEGIN
ROLLBACK TRAN
RAISERROR( '~$~入库数量不能大于计划数量!^|^',18,18)
GOTO H_Error
END 如何能在post前获得这错误并在DELPHI中提示,并且不会提交数据呢?还要不能出错?请教大家
解决方案 »
- 模板放到动态库里,EXE执行文件进行继承开发系统
- VC编译的时候有Debug版和Release版之分,那Delphi呢?
- 怎么把activex的dhtml5.0添加到工具面板中
- 为什么经常出现远程过程调用失败,我是用DCOM开发的多层结构。。。
- 选种DBGrid中的某一格,如何让这一格所在的行都呈被选中的状态(变成被选中的那种兰色)
- rspt 协议的文件用什么软件下载?
- 在安装控件的时候报错:Cannot load package 'GridPackd6.' It contains unit 'AsgUni,' which is also contained in package 'dclusr60'
- copy的用法?
- 关于Dll的问题!
- 送分来了,初学者有几个小问题......
- 在D7中如何发送带附件的电子邮件?谢谢
- 对dbgrid窗口按标题排序的问题??
try except
on E : EADOError do
raise Exception.Create(e.Message)
end;这样来处理。
) > 0
我觉得写得不够严密
如果你的库里是空的这句话也成立
因此建议改成
if ( Select 1 From B t1
) > 0
当数据库为空的时候 这句话返回的0,而上面的那就话则返回的是1
这样还可以,是不是写在POSTERROR里面呢?应该能够截取的到的。至少K3是如何处理的就不清楚了!
还是再请教看有没有人知道DELPHI取得SQL RAISEERROR错误的问题吧?谢谢
//try it
with TADOconnection.creat(nil) do
try
connection:=conn;//conn是你的连接字符串
conn.BeginTrans;
try
.....
.....
finally
free;
end;
except
on E: Exception do
begin
conn.RollbackTrans;
end;
end;
with TADOconnection.creat(nil) do
try
connection:=conn;//conn是你的连接字符串
conn.BeginTrans;
try
.....
.....
conn.CommitTrans;
finally
free;
end;
except
on E: Exception do
begin
conn.RollbackTrans;
showmessagebox(e.message)
end;
end;
with TADOconnection.creat(nil) do
try
connection:=conn;//conn是你的连接字符串
conn.BeginTrans;
try
.....
.....
conn.CommitTrans;
finally
free;
end;
except
on E: Exception do
begin
conn.RollbackTrans;
showmessagebox(e.message)
end;
end;