0

我在 XP 机器上开发了一个 powershell 应用程序,它与 Sybase 服务器建立 OLEDB 连接,以提取数据,然后将其插入 SQL Server 2008 数据库实例。在调试此脚本并确保进程正常运行后,我将脚本移至一个新的 Windows Server 2008 R2 盒子。为了连接到 Sybase 实例,我安装了 Sybase 12.5.2 客户端,就像我在 XP 机器上所做的那样。但是,运行脚本失败并显示以下消息:使用“0”参数调用“open”的异常:“'Sybase.ASEOLEDBProvider.2' 提供程序未在本地计算机上注册。

基本连接字符串来自 connectionStrings.com 并在 XP 上工作,所以我不认为本身存在语法问题。因此,我使用以下命令手动注册了 OLEDB dll:regsvr32 sydaase.dll

它注册没有错误。

剪掉脚本相关行,连接逻辑顺序为 $dbConn = new-object System.Data.oldeb.oledbConnection $dbConn.connectionString = "Provider=Sybase.ASEOLEDBProvider.2;服务器名=myServer;端口地址=xxx ; 初始目录 = xxx; 用户 ID = xxx; 密码 = xxxx"

在这个例子中,我用 xxx 替换了我的数据。

我不清楚为什么这在 XP 机器上运行没有问题,但在 Windows Server 机器上却没有这样做,尽管我遵循了相同的配置过程。

4

1 回答 1

2

我敢打赌你是在 64 位 R2 机器上尝试这个,并使用 64 位 PowerShell 控制台。没有本机 64 位 OLEDB 驱动程序,只有 32 位 - 使用 32 位控制台应该没问题。

于 2010-11-17T00:52:08.183 回答