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