2012-03-29 32 views
0

我有一個客戶擁有使用Advantage數據庫的應用程序。 我遇到了問題,試圖用PHP連接到它或使用PHP連接器 它得到這個發現6420錯誤,這似乎很常見。在Windows上使用PHP連接到Advantage數據庫

我認爲大部分問題是我對Advantage數據庫缺乏瞭解。 我在想這個問題可能實際上沒有服務器運行嗎? 做那個應用程序可能有它自己的服務器類型嗎? 我已經寫了一個連接到數據字典的小C#程序並且讀取的很好,但是它使用這個用於C#的Advantage.data.provider。這就像一臺服務器嗎?

所以我想底線是︰ 有沒有辦法連接到這個數據字典/ Advantage數據庫,所以我可以訪問PHP? (最好不買東西)

感謝您的幫助。

回答

5

注:我與Advantage或Sybase(擁有Advantage的母公司)沒有任何關係;我以前經常與Advantage合作並有一定的經驗,但絕不會與公司或產品相關聯。

Advantage Database Server(ADS)以三種不同的模式運行。默認情況下,它以服務器模式運行(ADS_REMOTE_SERVER),這需要Advantage Database Server實例在運行,可通過檢查特定端口(端口可配置)來找到該實例。

第二種默認模式是ADS_AIS_SERVER,它是Advantage Internet Server。這允許遠程連接通過互聯網連接直接連接到AIS實例;我從來沒有使用這個版本的ADS,所以我不能評論這種模式。

最終模式是本地服務器(未配置爲默認連接類型),在這種情況下的優勢DLL的本地副本被加載並運行使用該本地連接來訪問該數據。在這種模式下,某些功能不可用(例如交易),並且連接數量有限。優點本地服務器免費供本地使用,並支持多達5個連接(最後我檢查,無論如何)。 ADS有多種連接方式(ODBC,.NET數據提供程序,用於C,C#,Clipper,FoxPro和其他一些庫),並且在服務器和客戶端都支持Windows和Linux。

該模式通常由API調用配置;我更熟悉通過它的Delphi組件實現來使用ADS;通過API,它是ADSSetServerType,它確定使用哪種模式(或模式組合)。

對於ODBC,您可以配置通過ODBC配置屏幕模式(可見使用Windows控制面板中的正常ODBC管理實用程序時) - 看到可用的服務器類型如下圖所示GROUPBOX:

ADS ODBC Configuration Screen

根據文檔,你是正確的,它是一個發現錯誤。你有沒有檢查建議的解決方案?

問題:Advantage應用程序無法連接到Advantage數據庫服務器。

解決方案:有幾個問題會導致發生此錯誤。下面列出了一些常見解決方案。參考優勢知識庫獲取更詳細的說明和更完整的已知錯誤案例列表。

  • 驗證Advantage Database Server是否已安裝並正在數據庫所在的服務器上運行。

  • 如果嘗試使用Advantage Local Server而不是Advantage Database Server,請確保將應用程序的「服務器類型」設置設置爲使用Advantage Local Server。

  • 如果在Advantage Data Architect中使用Native SQL Utility,並且希望使用Advantage Local Server而不是Advantage Database Server,請確保Advantage連接類型設置爲「Local(ALS)」。這可以通過查詢選項對話框來完成,通過點擊其上帶有螺絲刀,錘子和扳手的按鈕來訪問該對話框。

  • 如果服務器是NetWare 5或更高版本,請確保Advantage Database Server的版本是5.6或更高版本,並確保Advantage客戶端是v2.6或更高版本。

  • 如果與僅安裝了IPX的服務器通信,請確保Advantage客戶端已啓用發送IPX數據包。

  • 如果通過防火牆運行,請確保Advantage IP發送和接收端口已正確配置並通過防火牆打開。

(我會提供鏈接的Sybase網站上的文檔,但它似乎是離線進行維護,現在,當它的備份或我有我會更新這個答案明天訪問我的辦公室電腦書籤的鏈接。)

+0

肯,非常感謝回覆。 如果我有點密集,我很抱歉。 我只是跟着你上面的例子,仍然得到了同樣的錯誤 這是提到的第一個項目是 _Verify優勢數據庫服務器的安裝位置以及數據庫located._ 在服務器上運行這是我仍然困惑。我所擁有的就是數據目錄。我需要安裝某種Advantage本地服務器嗎? – randy 2012-03-29 02:10:09

+1

@randy,如果您沒有安裝ADS,只需取消選中「遠程服務器」和「Internet服務器」,然後在ODBC配置中檢查「本地服務器」。 – 2012-03-29 23:22:34