我正在尝试为旧版 vb6 软件构建安装包。软件本身通过 sqlncli(本机客户端)连接到 sql 服务器。我已经打包了所有依赖项并将它们部署到运行winxp和office2003的新机器上。
现在,我可以从目标机器连接到使用 tcp/ip 在其他地方运行的数据库(ms sqlserver 2005)。旧版软件可以很好地连接到数据库,我可以操作数据。但是当我尝试打开水晶报告时,事情变得一团糟:
我收到一条错误消息,提示“运行时错误 '-2147189176(80047e48):登录失败。详细信息:01000:[Microsoft][ODBC SQL Server Driver][DBNETLIB]ConnectionOpen (Connect())”
因为报告是在不同的系统、不同的数据库上设计的,所以在调用报告之前有一个循环会重置每个表的数据库信息:
For i= 1 To numTables
Set crTable = crTables.Item(i)
crTable.SetLogOnInfo dbServer, dbName, dbLogin, dbPasswd
Next
ConnectBufferString 读取“连接字符串=DRIVER=SQL Server;;用户 ID=用户;;密码=;;数据库=MY_DB;;服务器=192.168.1.3\SQLEXPRESS;;UseDSNProperties=-1”
似乎没有办法将提供程序显式设置为 SQLNCLI,至少我没有看到任何内容。
在我的开发系统上运行软件时,一切都按预期运行。
我希望你们能帮我解决这个问题。这样我们就不必为此争论了:我也认为这两种技术(vb6 和 cr9)都已经过时了,但是在这里切换不是一种选择。