我们最近将 Powerbuilder 应用程序从 6 迁移到 2017。我们使用 MS SQL Server 2012。在 PB6 中,我们使用 MSS Microsoft SQL Server 6.x 作为连接字符串。在 PB2017 中,我们将连接字符串更改为“SNC SQL Native Client(OLE DB)”。迁移和构建后,EXE 在开发人员机器上工作,而不是在用户机器上工作。将所有 SQLNCLI* 文件复制到应用程序文件夹。但没有运气。请帮助我们解决问题。
3 回答
我相信运行时需要在 PATH 中,最好使用 PowerBuilder 附带的运行时打包工具。您可以从生成的 MSI 中提取文件,包括提取 PATH 语句。
您是否甚至费心阅读运行时文件下的帮助文件?本网站不是一项免费服务,我们以互惠的方式给予(和接受)您为您做脏活。俯瞰,因为你是新来的。
SQLNCLI* 文件是 Microsoft 拥有的,需要 PowerBuilder Native 运行时 (pbsnc170.dll) 才能与 SQL 层交互。
与 OLE DB 相关
OLE DB 数据库提供程序
如果您的应用程序使用 OLE DB 访问数据,则必须在每个用户的计算机上安装 Microsoft 的数据访问组件软件(如果尚未安装)。
PowerBuilder OLE DB 接口需要 Microsoft 数据访问组件 (MDAC) 2.8 版或更高版本软件的功能。
要检查计算机上的 MDAC 版本,用户可以从位于http://msdn2.microsoft.com/en-us/data/aa937730.aspx的 MDAC 下载页面下载并运行 MDAC 组件检查器实用程序。
在 Windows 7/8.1/10 操作系统上,Windows 数据访问组件 (DAC) 版本 6.0 取代了 MDAC,并实现了 PowerBuilder OLE DB 接口的功能要求。
OLE DB 提供程序
几个 Microsoft OLE DB 数据提供程序随 MDAC 和 DAC 一起自动安装,包括 SQL Server (SQLOLEDB) 和 ODBC (MSDASQL) 的提供程序。
PowerBuilder 运行时打包
PB 2017 可能不包含运行时打包工具。
PowerBuilder Runtime Packager 是一种将应用程序在运行时需要的 PowerBuilder 文件打包到 Microsoft Windows Installer 包 (MSI) 文件中的工具。Windows Installer 是一种安装和配置服务,随较新的 Microsoft Windows 操作系统一起安装。
要使用 PowerBuilder 运行时打包程序:
- 从 Windows 开始菜单中选择 Programs>Sybase>PowerBuilder XX.yy>PowerBuilder Runtime Packager,或者在 Shared\PowerBuilder 目录中启动 pbpack115 可执行文件。它将根据您使用的版本命名。
- 为生成的 MSI 文件选择一个位置。
- 如果您正在部署 .NET 目标,请选择 PowerBuilder .NET 组件。否则,选择 PowerBuilder 标准组件。
- 选择您的应用程序需要的数据库接口。
如果您的应用程序使用 DataWindow XML 导出或导入,请选中 XML 支持复选框。
如果您的应用程序使用 PowerBuilder 文档对象模型提供的 XML 服务,或者如果它是 EJB 客户端或 SOAP Web 服务客户端,请选中相应的复选框。
- 单击创建。
您绝对应该为客户端使用 Microsoft 安装程序,而不是复制文件。它们必须在系统路径中,并且安装程序将处理注册表设置。
几年前,我在 PowerBuilder 中编写了一个访问 SQL Server 的程序。当时我必须在所有用户的机器上安装 SQL Server Native Client 运行时。我不知道从那以后情况是否发生了变化。这是我写的一篇博客文章中的引述:
在您的客户端计算机上,除了 PB 运行时(包括用于 SQL Server 的 PBSNC120.dll),您还需要安装 SQL Server Native Client 运行时。这些来自 Microsoft 的 msi 安装程序包。安装 SQL Server 客户端时,您需要以管理员身份进行。