我在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
感谢。
答案 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取代),除非他们无法获得合适的提供商。