строка подключения 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"

Заранее благодарю.

UPDATE: вот строка, сгенерированная с помощью моего теста.УЛ файл

[ODBC] Provider

Provider=MSDASQL.1;Password=пароль пользователя;сохранять сведения о безопасности=true;в идентификатор пользователя=СА;дополнительные свойства="ДСН=нетто-мозг;uid=администратора;ФРД=злопыхатель;приложение=приложение Microsoft® операционная система Windows®; WSID=бедны-16D68FBC7D;базы данных=DB_App;сети=DBMSSOCN";начальный каталог=DB_App

Вот тот же файл UL, использующий SQL Native provider :

"поставщик=файлом sqlncli10.1;Комплексная безопасность="";сохранять сведения о безопасности=false;как идентификатор пользователя=администратор;начальная Каталог=DB_APP; источник данных=NET-BRAIN;начальное имя файла=""; SPN сервера= """

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

Пробовал [oledb] для SQL server provider option "Provider=SQLOLEDB.1;пароль=злопыхатель;сохранять сведения о безопасности=true;в идентификатор пользователя=администратор;начальный каталог=db_app;источник данных=нет-мозг"

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

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

1 3

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