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中提示,并且不会提交数据呢?还要不能出错?请教大家
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;