与 SQL Server 的远程连接未更新数据

Posted

技术标签:

【中文标题】与 SQL Server 的远程连接未更新数据【英文标题】:Remote connection to SQL Server is not updating data 【发布时间】: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。 【参考方案1】:

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

【讨论】:

以上是关于与 SQL Server 的远程连接未更新数据的主要内容,如果未能解决你的问题,请参考以下文章

未找到或无法访问服务器。请验证实例名称是不是正确并且 SQL Server 已配置为允许远程连接。 (provider: 命

在与 SQL Server 建立连接时出现与网络相关的或特定于实例的错误。未找到或无法訪问server。请验证实例名称是否正确而且 SQL Server 已配置为同意远程连接。

在与 SQL Server 建立连接时出现与网络相关的或特定于实例的错误。未找到或无法访问服务器。请验证实例名称是否正确并且 SQL Server 已配置为允许远程连接。 (provider: 命名管

在与SQL server 建立连接时出现与网络相关的或特定于实例的错误。未找到或无法访问服务器。请验证实例名称是否正确并且SQL server已配置为允许远程连接。error40 错误53

使用 sql server 2008 R2 的远程过程调用失败

阿里云,未找到或无法访问服务器.请验证实例名称是否正确并且 SQL Server 已配置为允许远程连接.