我在 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 机器上却没有这样做,尽管我遵循了相同的配置过程。