VB6 ADODB Строка подключения к SQL Server 2008

Недавно я перенес базу данных с sql server 2005 на 2008 на windows server 2008. Клиенты нормально подключаются со своих компьютеров XP, как и SQL Management Studio 2008. Я также протестировал удаленное соединение с помощью LINQPad, которое работало нормально.

Однако в моем приложении VB6, строка подключения, кажется, доставляет мне проблемы. Есть идеи, что я делаю не так?

    Dim strUserName As String
     Dim strPassword As String
     Dim sProc As String

     sProc = "Class_clsAdoFnx_Initialize"

        Me.DatabaseName = "db_app"




 'Connect to SQL Server

    strUserName = "admin"
    strPassword = "mudslinger"

    Set cSQLConn = New ADODB.Connection
    '**Original connection String
    'cSQLConn.CommandTimeout = 0
    'cSQLConn.ConnectionString = " PROVIDER=SQLOLEDB" & _
    '    ";SERVER=NET-BRAIN" & _
    '    ";UID=" & strUserName & _
    '    ";PWD=" & strPassword & _
    '    ";DATABASE=" & Me.DatabaseName

    '***First attempt, no dice
    'cSQLConn.ConnectionString = "Provider=sqloledb;" & _
    '       "Data Source=NET-BRAIN;" & _
    '       "Initial Catalog=DB_APP;" & _
    '       "User Id=admin;" & _
    '       "Password=mudslinger"
    'cSQLConn.Open

    '***3rd attempt, no dice 
    cSQLConn.Open "Provider=sqloledb;" & _
           "Data Source=NET-BRAIN;" & _
           "Initial Catalog=db_app;" & _
           "User Id=admin;" & _
           "Password=mudslinger", "admin", "mudslinger"

заранее спасибо.

ОБНОВЛЕНИЕ: Вот строка, которую я сгенерировал, используя мой файл test.UL

[ODBC] Провайдер

Провайдер =MSDASQL.1; Пароль = логин; Постоянная информация о безопасности = Истина; Идентификатор пользователя = sa; Расширенные свойства ="DSN=NET-BRAIN;UID=admin;PWD= грязный пехотинец; APP = Операционная система Microsoft® Windows®;WSID=BPOOR-16D68FBC7D;DATABASE=DB_App; Сеть =DBMSSOCN"; Начальный каталог = DB_App

Вот тот же файл UL, использующий собственный поставщик SQL:

"Provider = SQLNCLI10.1; Integrated Security =""; Persist Security Info = False; ID пользователя = admin; Начальный каталог =DB_APP; Источник данных = NET-BRAIN; Исходное имя файла =""; Имя сервера SPN =" ""

--rerected the error: Ошибка в Ado Call... Произошла ошибка в Class_clasAdoFnx_initialize 3001 Аргументы имеют неправильный тип, находятся вне допустимого диапазона или конфликтуют друг с другом. --Error: Class_clsAdoFnx_Initialize 3709 Запрошенная операция требует объект сеанса OLE DB, который не поддерживается текущим поставщиком.

попробовал [oledb] для опции поставщика сервера sql "Provider=SQLOLEDB.1;Password=mudslinger;Persist Security Info=True; ID пользователя = admin; Начальный каталог =db_app; Источник данных =net-brain"

ошибка: -2147217900 Ошибка входа пользователя 'admin'

ОБНОВЛЕНИЕ 2: После изоляции открытой строки подключения выясняется, что подключение открывается, и хранимая процедура, с которой я тестировал, не удалась.

1 ответ

Решение

После использования ADO с собственным клиентом SQL Server для включения использования собственного клиента SQL Server приложения ADO должны будут включить в свои строки подключения следующие ключевые слова:

Provider = SQLNCLI10
DataTypeCompatibility = 80

Dim con As New ADODB.Connection

con.ConnectionString = "Provider=SQLNCLI10;" _
         & "SERVER=NET-BRAIN;" _
         & "Database=DB_APP;" _ 
         & "DataTypeCompatibility=80;" _
         & "User Id=admin;" _
         & "Password=mudslinger;"

con.Open
Другие вопросы по тегам