【问题标题】:Remote connection to SQL Server is not updating data与 SQL Server 的远程连接未更新数据
【发布时间】:2020-06-30 04:56:03
【问题描述】:

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

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

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

程序:
在机器 1 上,我在(系统 DSN)下创建了名为 TIBA_R 的 ODBC 连接,并为其提供了 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 上的数据库并在表中应用数据?对这个应用程序使用 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 configuration

【问题讨论】:

  • 脚本有错误吗?
  • 您是否在机器 1 或 2 上测试了连接?如果您的应用在机器 1 上运行,则不需要机器 2 上的 DSN。
  • GSerg:我没有收到任何错误。事实上,当我在机器 1 的本地数据库上运行他的脚本时,数据库一直在更新。
  • TomC:我在两台机器上测试了连接。就像我说的,我在这里的某个地方读到了在两台机器上创建 DSN 的建议
  • 您忘了说您使用的是 Siemens WinCC,这不是基本的独立 VBScript。

标签: sql-server vbscript wincc


【解决方案1】:

感谢您的帮助。原来问题出在 (sqlrowser) 服务中,因为它被禁用了。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-01-08
    • 1970-01-01
    • 1970-01-01
    • 2011-12-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多