我在PowerBuilder.NET Hello 中创建了一个函数。编译为Helloworld.dll,的项目是在C#中从PowerBuilder实用工具生成的。在Helloworld中,我制作了非可视n_cst_helloworld.。在非可视的情况下,我创建了object函数of_hello()。这些是我在尝试访问SQL上的外部函数中的Helloworld.n_cst_helloworld.of_hello()时遇到的问题。
外部函数使用CLR,现在在Interactive 中调用它。
下面是我试图在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似乎知道对象n_cst_helloworld存在,但它不识别使用PowerBuilder.NET实用程序生成的方法。我不知道如何通过ASA来使用这个方法。
目前我正在使用ASA 12,PB12,PB.NET,并同时安装了3.5和4.0。
发布于 2013-08-06 17:58:29
.NET部署的工作原理
部署.NET项目时,PowerBuilder将现有或新开发的PowerScript代码编译为.NET程序集。
在运行时,生成的.NET程序集使用.NET公共语言运行时执行。PowerBuilder的.NET编译器技术与标准PowerBuilder客户端服务器应用程序中的P代码编译器一样透明。
部署PowerBuilder运行时文件
将PowerBuilder运行时DLL和.NET程序集部署到生产服务器或目标计算机的最简单方法是使用PowerBuilder运行时包工具。运行时打包程序创建一个MSI文件,该文件安装您选择的文件,注册任何自注册DLL,并将.NET程序集安装到全局程序集缓存中。
参见Sybase Infocenter上的完整文档PB.NET运行时 这里
部署核对表
验证生产服务器和目标计算机是否满足运行从.NET经典中部署的PowerBuilder目标的所有要求。
所有目标的检查列表
要部署所有.NET目标类型(Windows、Windows、.NET Assembly、.NET Web ),生产服务器或目标计算机必须具有:
参见Sybase Infocenter上的全套部署清单文档 这里
https://stackoverflow.com/questions/18065300
复制相似问题