gpt4 book ai didi

delphi - Raise 错误在带有 Sybase 12.5 客户端库的 Unidac 组件中不起作用

转载 作者:行者123 更新时间:2023-12-02 00:12:01 26 4
gpt4 key购买 nike

我们在 Delphi 10 中使用带有 Sybase 12.5 驱动程序的 Unidac Stored Proc 组件

在 Sybase proc 中,我们引发了如下错误,我发现它正在重新运行,但没有显示错误消息。这在 Unidac 中不起作用还是有任何其他问题?

if @number <> null
begin
select @errmsg = 'Already active for location '
raiserror 20001 @errmsg
return 1
end

正在delphi中执行storedproc,如下所示

try 
ExecProc;
except on E:Exception do
begin
ErrorMsg(EDatabaseError(ExceptObject).Message,0);
Exit;
end;

但我们仍然无法捕获异常。

即使我也尝试过如下。

try 
UniStoredProc.StoredProcName := 'test';
UniStoredProc.ExecProc;
except
on E:EUniError do
ShowMessage(E.Message);
end

相同的代码在 Sybase 15 客户端库上运行良好

我们使用 Sybase 15 服务器和 Sybase 12.5 客户端库连接到服务器,这会出现问题吗?早些时候,我们将 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

现在它应该执行 if-then 语句内的代码。

关于delphi - Raise 错误在带有 Sybase 12.5 客户端库的 Unidac 组件中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7163101/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com