Получение сообщения об ошибке «Не удалось инициализировать поставщик данных» при подключении к бэкэнду - PullRequest
0 голосов
/ 30 марта 2011

Я сделал заявку в 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 голосов
/ 30 марта 2011

Вам нужна строка подключения, которая определяет как поставщика, так и поставщика данных:

Provider=MSDataShape;Data Provider=providername

OLEDB не является ODBC. Если вы настаиваете на использовании драйвера ODBC (или DSN, который является старой конструкцией ODBC), вы должны будете указать провайдера «thunk into ODBC» с именем MSDASQL в качестве провайдера данных.

Люди часто используют сокращенный синтаксис для строк подключения, который подразумевает наличие этого «адаптера». Это не сработает здесь.

Насколько я знаю, даже Sybase предлагает подходящего OLEDB-провайдера. Я понятия не имею, почему люди настаивают на использовании ODBC и DSN сегодня (уведомления о доставке были заменены на UDL давно), если они не могут получить надлежащего поставщика.

...