2

使用 ADO 连接到 SQL Server 的默认实例的 C++ 销售点应用程序在使用无线网卡进行联网的平板电脑上使用该应用程序时失败。

连接 LAN 电缆后,该应用程序在平板电脑上运行良好。

测试人员发现另一个使用 SQL Server 的服务器应用程序也有类似的问题,直到他们将设置更改为使用与 SQL Server 实例的共享内存连接而不是 TCP 连接。

我们使用的连接字符串如下:

"Provider=MSDASQL;DRIVER={SQL Server};SERVER=(local);DATABASE=%s;UID=; Password=;"

阅读此网页,似乎为了使用共享内存连接,SERVER=(local)需要指定关键字,SERVER=lpc:(local)但我不确定。

该网页是Microsoft MSDN 中的 SqlConnection.ConnectionString 属性

4

1 回答 1

0

在更改销售点应用程序和库存应用程序的连接字符串以使用SERVER=lpc:(local)关键字/值后,测试团队在使用无线蜂窝卡时不再发现问题。

所以 lpc: 强制使用共享内存。

另请参阅有关ADO 错误 16389的此问题。

解决方案另一个组件的附录(2016 年 10 月 24 日)

在使用我们销售点的现场站点中,我们还使用 Datacap Systems NETePay 服务器来处理电子支付交易。

由于客户在销售点配置错误,经过纠正,我们最近发现NETePay服务器也遇到了类似的问题。DSI Client-X 控件的 XML 响应是“错误”,错误代码为 001501,错误文本以“ScratchWrite 期间的数据库错误”开头。

记住这个问题和解决方案,我们修改了 Datacap Systems SQL Server 实例的设置,通过将 TCP/IP 从“启用”更改为“禁用”来更改“DATCAPINSTANCE 的协议”。进行此更改后,客户不再看到错误。

于 2012-09-06T12:44:05.633 回答