我在 PowerBuilder.NET Hello World中创建了一个函数。该项目编译为Helloworld.dll,由 PowerBuilder 实用程序以 C# 生成。在 Helloworld 中,我制作了非可视的n_cst_helloworld。在非视觉内部,我制作了对象函数of_hello()。这些是我尝试在 SQL Anywhere 上的外部函数中访问Helloworld.n_cst_helloworld.of_hello()时遇到的问题。
外部函数使用CLR ,现在在Interactive SQL中调用。
这是我尝试在 iSQL 中启动的脚本(通过 ASA):
ALTER PROCEDURE "DBA"."ext_helloworld"()
EXTERNAL NAME
'helloworld.dll::Helloworld.n_cst_helloworld.of_hello( )'
LANGUAGE CLR
然后,我在 iSQL 中使用以下内容:
START EXTERNAL ENVIRONMENT CLR;
CALL ext_helloworld();
然后给我以下错误:
无法执行语句。程序“ext_helloworld”因未找到未处理的异常“方法“Helloworld.n_cst_helloworld.of_hello”而终止。
SQLCODE = -91
所以,我知道我在正确的文件夹中有对象,并通过 REGASM 和所有这些注册,否则它会给我以前见过的“找不到对象”的错误。
我很困惑,因为似乎 SQL Anywhere 知道对象 n_cst_helloworld 存在,但它不识别使用 PowerBuilder.NET 实用程序生成的方法。我不知道如何继续能够通过 ASA 使用此方法。
目前我正在使用 ASA 12、PB12、PB.NET 并安装了 3.5 和 4.0。