首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >带有Powerbuilder生成的DLL的SQL外部"Hello“函数

带有Powerbuilder生成的DLL的SQL外部"Hello“函数
EN

Stack Overflow用户
提问于 2013-08-05 18:37:58
回答 1查看 1.1K关注 0票数 2

我在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):

代码语言:javascript
复制
ALTER PROCEDURE  "DBA"."ext_helloworld"()

EXTERNAL NAME

'helloworld.dll::Helloworld.n_cst_helloworld.of_hello( )' 

LANGUAGE CLR

然后,我在iSQL中使用以下内容:

代码语言:javascript
复制
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。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 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 ),生产服务器或目标计算机必须具有:

  • Windows SP2、Windows、Windows2008或Windows7操作系统.NET Framework4.0
  • MicrosoftVisualC++运行时库msvcr71.dll、msvcp71.dll、msvcp100.dll、msvcr100.dll和.NET活动模板库模块atl71.dll
  • 全局程序集缓存(GAC)中的PowerBuilder .NET程序集
  • 系统路径中的PowerBuilder运行时动态链接库
  • 请参见部署PowerBuilder运行时文件。

参见Sybase Infocenter上的全套部署清单文档 这里

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18065300

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档