2011-03-30 28 views
0

我在VB6中創建了一個應用程序(sybase 11作爲後端)。 現在,當我嘗試在用戶機器上登錄時,它給了我下面的錯誤:連接到後端時出現「數據提供程序無法初始化」錯誤

「數據提供程序無法初始化。」 我使用下面的代碼連接至後端:

'/***** Procedure to establish connection to the back-end 
On Error Resume Next 

If pCon.State = 1 Then pCon.Close 

pCon.Errors.Clear 

pDSN = "TESTDSN" 

pDatabase = "TESDB" 

pCon.Open "Provider=MSDataShape;ODBC;Database=" & Trim(pDatabase) & ";UID="&   
Trim( pUID) & ";PWD=" & pPWD & ";DSN=" & Trim(pDSN) 

If pCon.Errors.Count > 0 Then 

    interr = 0 

    Do Until interr = pCon.Errors.Count 

     MsgBox pCon.Errors.Item(interr).Description 

     interr = interr + 1 

    Loop 

    fnCon = False 

Else 

    fnCon = True 

End If 

感謝。

回答

0

您需要定義兩個服務提供方和數據提供一個連接字符串:

Provider=MSDataShape;Data Provider=providername 

OLEDB不是ODBC。如果您堅持使用ODBC驅動程序(或DSN,這是一箇舊的ODBC構造),則必須將名爲MSDASQL的「thunk into ODBC」提供程序指定爲您的數據提供程序。

人們經常使用連接字符串的快捷方式語法來暗示此「適配器」提供程序。這在這裏不起作用。

據我所知即使Sybase提供了一個合適的OLEDB Provider。我不知道爲什麼現在人們堅持要使用ODBC和DSN(很久以前DSN被UDL替代),除非他們無法獲得合適的提供者。

相關問題