SSE*_*SSE 1 delphi sybase devart delphi-2010 unidac
我们在Delphi 10中使用Unidac Stored Proc组件和Sybase 12.5驱动程序
在Sybase proc我们提出错误如下,我发现它正在重新启动但它没有显示错误消息.我没有在Unidac或任何其他问题?
if @number <> null
begin
select @errmsg = 'Already active for location '
raiserror 20001 @errmsg
return 1
end
Run Code Online (Sandbox Code Playgroud)
我在delphi中执行storedproc,如下所示
try
ExecProc;
except on E:Exception do
begin
ErrorMsg(EDatabaseError(ExceptObject).Message,0);
Exit;
end;
Run Code Online (Sandbox Code Playgroud)
但我们仍然无法捕获异常.
即使我尝试过如下.
try
UniStoredProc.StoredProcName := 'test';
UniStoredProc.ExecProc;
except
on E:EUniError do
ShowMessage(E.Message);
end
Run Code Online (Sandbox Code Playgroud)
相同的代码适用于Sybase 15客户端库
我们使用Sybase 15服务器和Sybase 12.5 Client库连接到服务器,这会有问题吗?之前我们使用BDE和Sybase 12.5客户端库,所以我们没有遇到任何问题,现在我们发现unidac存在这个问题
为了比较null你需要is像这样使用运算符:
if @number is not null
begin
select @errmsg = 'Already active for location '
raiserror 20001 @errmsg
return 1
end
Run Code Online (Sandbox Code Playgroud)
现在它应该在if-then语句中执行代码.
| 归档时间: |
|
| 查看次数: |
1751 次 |
| 最近记录: |