
最近,我接到了建立一個 PHP 應用程式的任務,該應用程式連接到遠端 ODBC 驅動程式。我們獲得了ODBC驅動程式並建立了測試環境。
由於這是我第一次使用 ODBC 驅動程序,我不知道該怎麼做才能連接到驅動程式。我知道程式碼,並且能夠使用 PHP 和本機電腦上的 DSN 連接到 ODBC 驅動程式。但由於我必須使用無 DSN 連接從遠端電腦進行連接,我認為這不再那麼容易了。
ODBC 驅動程式是自訂的(PARKWAY ConnectWare for Micro Focus Files),我們沒有獲得它的文件(只有連接字串參數描述,這很有幫助,但不足以解決我們的問題)。谷歌搜尋也沒有幫助,我們什麼也沒找到。
有誰知道您還需要什麼才能遠端連線到 ODBC 驅動程式?從邏輯上講,只有驅動程式是不夠的,也許某種伺服器...
我將不勝感激任何朝著正確方向的推動:)
更新:
PARKWAY 支援人員用連接字串和基本資訊回答了我。我的第一直覺是正確的——為了能夠連接到遠端電腦上的 ODBC 驅動程序,我需要他們的伺服器應用程式。我已經安裝了他們的伺服器評估副本,今天會玩一下。他們建議的連接字串是:
Driver=PARKWAY ConnectWare for Micro Focus Files;DBQ=D:\MyServerData;Layout=Version3;FileType=Micro Focus;Location=MyServer
這次嘗試連線時我確實遇到了不同的錯誤:
SQL error: Failed to fetch error message
但我認為這是一個程式碼問題。
答案1
感謝所有有用的評論,我終於弄清楚了:)
如果有人遇到類似的問題,我是這樣做的:
首先我聯繫了支援人員。如果您遇到了不常見的軟體問題,聯絡支援人員通常是您應該採取的第一步。他們通常有正確的答案。
ODBC 驅動程式顧名思義,就是一個驅動程序,僅此而已。對於任何類型的遠端訪問,您都需要某種伺服器。此外,如果您想存取遠端資料來源,則需要在用戶端電腦(將執行遠端應用程式的電腦)上安裝驅動程式。
到目前為止,一切都很好。就我而言,我從他們的支援那裡獲得了連接參數描述,但仍然無法弄清楚連接字串的樣子。我嘗試了所有方法,但沒有任何效果(我遇到了奇怪的錯誤,這不是很有幫助,例如“無法獲取錯誤訊息”)。
最後我在這篇文章中找到了答案:DSN 到連接字串
看起來 DSN 記錄只不過是名稱/值對。使用 DSN 連接到資料來源是有效的,但在我的特定情況下無法使用 DSN。因此,我透過開啟 REGEDIT 並按照上述貼文的建議開啟系統 DSN 位置來獲取所需的參數:
HKLM\Software\Wow6432Node\ODBC\ODBC.INI\
這是儲存 32 位元系統 DSN 記錄的位置。如果您需要尋找 64 位元版本,可以位於此處:
HKLM\Software\ODBC\ODBC.INI\
果然,有我需要的系統DSN。如果有人感興趣為什麼我仍然不知道連接字串是什麼樣子,儘管我有連接字串參數描述:
為了能夠連接到遠端伺服器,我必須在連接字串中新增“位置”參數。我嘗試新增伺服器電腦的 URL 和/或 IP,但沒有成功。透過查看註冊表,我發現實際上必須將 IP、連接埠和協定添加到特定於該 ODBC 驅動程式的設定檔中。對於連接字串內的「位置」屬性,我必須指定我新增的配置的名稱。