VB6 ADODB Строка подключения к SQL Server 2008 - PullRequest
3 голосов
/ 03 июня 2010

Я недавно перенес базу данных с 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 =" ""

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

пробовал [oledb] для опции поставщика сервера sql «Провайдер = SQLOLEDB.1; Пароль = грязный пух; Постоянная информация о безопасности = Истина; ИД пользователя = администратор; Начальный каталог = db_app; Источник данных = net-brain»

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

UPDATE2: После изоляции открытой строки подключения выясняется, что подключение открывается, и хранимая процедура, с которой я тестировал, не удалась.

1 Ответ

3 голосов
/ 03 июня 2010

После Использование 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
...