строка подключения 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 ответ:
После Использование ADO с собственным клиентом SQL Server чтобы включить использование собственного клиента SQL Server, приложения ADO должны будут реализовать следующие ключевые слова в своих строках подключения:
Provider=SQLNCLI10
DataTypeCompatibility=80Dim con As New ADODB.Connection con.ConnectionString = "Provider=SQLNCLI10;" _ & "SERVER=NET-BRAIN;" _ & "Database=DB_APP;" _ & "DataTypeCompatibility=80;" _ & "User Id=admin;" _ & "Password=mudslinger;" con.Open