【问题标题】:Getting error "Data provider could not be initialized" while connecting to backend连接到后端时出现错误“无法初始化数据提供程序”
【发布时间】:2011-03-30 04:27:03
【问题描述】:

我在 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

谢谢。

【问题讨论】:

    标签: database vb6 sybase


    【解决方案1】:

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

    Provider=MSDataShape;Data Provider=providername
    

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

    人们经常使用暗示这个“适配器”提供者的连接字符串的快捷语法。这在这里行不通。

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

    【讨论】:

      猜你喜欢
      • 2018-03-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-02-25
      • 1970-01-01
      • 2022-08-14
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多