连接到后端时出现错误“无法初始化数据提供程序”

时间:2011-03-30 04:27:04

标签: database vb6 sybase

我在VB6中创建了一个应用程序(sybase 11作为后端)。 现在,当我尝试在用户计算机上登录时,它给了我以下错误:

“数据提供程序无法初始化。” 我使用以下代码连接到BACKEND:

'/***** 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

感谢。

1 个答案:

答案 0 :(得分:0)

您需要一个定义Provider和Data Provider的连接字符串:

Provider=MSDataShape;Data Provider=providername

OLEDB不是ODBC。如果您坚持使用ODBC驱动程序(或DSN,这是一个旧的ODBC构造),则必须将名为MSDASQL的“thunk into ODBC”提供程序指定为数据提供程序。

人们经常使用快捷语法来表示隐含此“适配器”提供程序的连接字符串。这在这里不起作用。

据我所知,即使Sybase提供了合适的OLEDB提供商。我不知道为什么人们坚持今天使用ODBC和DSN(很久以前DSN被UDL取代),除非他们无法获得合适的提供商。