2012-08-03 49 views
2

使用ADO連接到SQL Server的默認實例的C++銷售點應用程序在具有用於網絡連接的無線網卡的平板電腦上使用時失敗。使用無線網卡但連接到LAN的ADO連接到SQL Server失敗。使用lpc:?

當連接LAN電纜時,該應用程序在平板電腦上正常工作。

測試人員發現使用SQL Server的另一個服務器應用程序遇到類似問題,直到他們更改設置以將共享內存連接用於SQL Server實例而不是TCP連接。

,我們正在使用的連接字符串如下:

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

閱讀此網頁,似乎才能使用共享內存連接,SERVER=(local)關鍵字需要指定SERVER=lpc:(local)但我不知道那個。

該網頁是SqlConnection.ConnectionString Property From Microsoft MSDN

+0

有可能SQL Server實例已被配置爲只偵聽某些IP地址,可能只有有線網絡的一個。 – 2012-08-03 22:44:59

+0

謝謝你的建議,以檢查一些東西。我會讓測試團隊研究一下。我們的大多數客戶只是做標準安裝,然後不要碰它。然而,對於這個特定的客戶,部署團隊可能會做一些特殊的事情,作爲無線蜂窩環境中移動銷售終端的一部分。終端返回到倉庫,以便在下次使用時再次使用局域網連接來提取「每日結束」財務數據。 – 2012-08-04 14:31:27

+0

將銷售點應用程序和庫存應用程序的連接字符串更改爲使用SERVER = lpc :(本地)關鍵字/值後,測試團隊在使用無線單元卡時不再出現問題。另見http://stackoverflow.com/questions/11810133/ado-error-16389-with-local-access-sql-server-database-connection-failing-when-u – 2012-08-05 20:55:18

回答

0

進行更改爲兩個銷售點應用和使用SERVER=lpc:(local)關鍵字/值對庫存應用程序的連接字符串後,測試團隊不再當看到一個問題正在使用無線蜂窩卡。

所以lpc:強制使用共享內存。

另請參閱ADO Error 16389上的此問題。

增補爲解決的另一個組件(OCT-24-2016)

在正在使用我們的,我們也使用Datacap系統NETePay服務器來處理電子支付交易的銷售點領域的網站。

由於客戶提出銷售點配置錯誤,我們最近發現NETePay服務器遇到了類似的問題。來自DSI Client-X控件的XML響應是一個「錯誤」,錯誤代碼爲001501,錯誤文本開始爲「ScratchWrite期間的數據庫錯誤」。

回想起這個問題以及解決方案,我們修改了Datacap Systems SQL Server實例的設置,通過將TCP/IP從「啓用」更改爲「禁用」來更改「DATCAPINSTANCE協議」。進行此更改後,客戶不再看到錯誤。