0

我有 2 个虚拟机用于测试目的。

  • 机器 1 Windows 7 SP1(脚本机器)有一个运行 VB 脚本和 MS SQL 管理工作室设置的软件(具体为 Siemens TIA v15)。
  • 机器 2 Windows 10(数据库机器)上安装了 MS SQL Server Standard 2019(64 位)和 MS SQL 管理工作室。

对象:
我想将机器 1 上的 VB 脚本中的数据远程写入机器 2 的数据库中。

过程:
在机器 1 上,我创建并调用了(系统 DSN)下的 ODBC 连接,TIBA_R并为其提供了 SQL 身份验证。对于我在 MS Management Studio 下创建的用户。在我的 VB 脚本中,我有以下连接字符串:

Provider=MSDASQL;DSN=TIBA_R;UID=tiba_admin;PWD=asd@1234

在机器 2 上,我创建了相同的 DSN(我在某处读过,原谅我缺乏知识(脸红))。
我测试了 DSN 的连接,一切似乎都很好。但是,当我的脚本从机器 1 运行时,机器 2 的表中没有应用数据。
我通过 ping 测试了 2 个 VM 之间的网络并且正在工作。我在机器 1 上的本地数据库上测试了我的 VB 脚本,并且工作正常。

问题:
如何让机器 1 上的 VB 脚本连接到机器 2 上的 DB 并在表中应用数据?对这个应用程序使用 ODBC 是否正确?我做错了什么?

注意:如果有帮助,这是我的 VB 脚本示例。我还附上了一张DSN配置的照片

Dim objConnection
Dim strConnectionString
Dim lngValue
Dim strSQL
Dim objCommand

strConnectionString = "Provider=MSDASQL;DSN=TIBA_R;UID=tiba_admin;PWD=asd@1234;"
lngValue = HMIRuntime.Tags("Tag_2").Read
strSQL = "INSERT INTO table1 (data) VALUES (" & lngValue & ");"

Set objConnection = CreateObject("ADODB.Connection")
objConnection.ConnectionString = strConnectionString
objConnection.Open
Set objCommand = CreateObject("ADODB.Command")
With objCommand
    .ActiveConnection = objConnection
    .CommandText = strSQL
End With
objCommand.Execute
Set objCommand = Nothing
objConnection.Close
Set objConnection = Nothing

DSN 配置

4

1 回答 1

0

感谢你的协助。事实证明,问题出在(sqlrowser)服务中,因为它被禁用了。

于 2020-07-05T00:22:37.780 回答