我有 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