OLEDB драйвер для подключения к ms sql 2000 c 64 х разрядной винды
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
Connection = Новый COMОбъект("ADODB.Connection");
Command = Новый COMОбъект("ADODB.Command");
RecordSet = Новый COMОбъект("ADODB.RecordSet");
Connection.ConnectionTimeout = 30;
Connection.CommandTimeout = 600;
Connection.ConnectionString = "driver={SQL Server};" +
"server="+Параметры.АдресСервера+";"+
"uid="+Параметры.Пользователь+";"+
"pwd="+Параметры.Пароль+";"+
"database="+Параметры.ИмяБазы+";";
Попытка
Connection.Open();
Command.ActiveConnection = Connection;
Command.CommandText = ТекстКоманды;
RecordSet = Command.Execute();
Исключение
Сообщение = Новый СообщениеПользователю();
Сообщение.Текст = СтрШаблон(НСтр("ru = 'Не возможно выполнить команду %1, ошибка %2'"), ТекстКоманды ,ОписаниеОшибки());
Сообщение.Сообщить();
КонецПопытки;
ПолученнаяТаблица = Новый ТаблицаЗначений;
Если RecordSet.EOF = Ложь Тогда
Для Каждого СтрокаСтруктуры Из RecordSet.Fields Цикл
ПолученнаяТаблица.Колонки.Добавить(СтрокаСтруктуры.Name, ?(СтрокаСтруктуры.Name = "Date",Новый ОписаниеТипов("Дата"), Новый ОписаниеТипов("Строка")));
КонецЦикла;
RecordSet.MoveFirst();
КонецЕсли;
Пока RecordSet.EOF = Ложь Цикл
СтрокаТаблицы = ПолученнаяТаблица.Добавить();
Для Каждого СтрокаСтруктуры Из RecordSet.Fields Цикл
СтрокаТаблицы[СтрокаСтруктуры.Name] = СтрокаСтруктуры.Value;
КонецЦикла;
RecordSet.MoveNext();
КонецЦикла;
Connection.Close();
Возврат ПолученнаяТаблица
Показать
(4)В общем-то, запрос выполняется на sql сервере. Вот для подключения к нему на машине, с которой вы подключаетесь к sql серверу, должен быть соответствующий софт. Но для ms sql 2000 ничего делать не надо ибо этот софт уже давно идет в составе винды. Правда, если клиент, в данном случае это 1с, 32-разрядный. Если клиент 64-разрядный, то надо брать более поздние Native clients от более поздних версий ms sql. И, соответственно, менять строку коннекта.
(9)Проверила на 32 разрядном клиенте та же ошибка что в сообщении 6. Не могу понять в чем дело
Еще пишет вот что
Ошибка при вызове метода контекста (Open): Произошла исключительная ситуация (Microsoft OLE DB Provider for ODBC Drivers): [Microsoft][ODBC SQL Server Driver][DBNETLIB]SQL Server не существует, или доступ запрещен.
Еще пишет вот что
Ошибка при вызове метода контекста (Open): Произошла исключительная ситуация (Microsoft OLE DB Provider for ODBC Drivers): [Microsoft][ODBC SQL Server Driver][DBNETLIB]SQL Server не существует, или доступ запрещен.
(5)
При выполнении у меня ошибка:
Ошибка при установке значения атрибута контекста (ActiveConnection)
Command.ActiveConnection = СоединениеSQL;
по причине:
Произошла исключительная ситуация (ADODB.Command): Для требуемой операции необходим объект OLE DB Session, не поддерживаемый текущим поставщиком.
Строка подключения: driver={SQL Server};SERVER=192.168.1.128\server;UID=логин;PWD=пароль;DATABASE=baze;LANGUAGE=русский;
ЗапросSQL = ПолучитьТекстЗапроса(ЗапросSQL);
СоединениеSQL = Новый ComObject("ADODB.Connection");
СоединениеSQL.ConnectionString = СтрокаСоединения;
СоединениеSQL.CursorLocation = 3;
//СоединениеSQL.CommandTimeout = 18000;
//СоединениеSQL.ConnectionTimeout = 18000;
СоединениеSQL.CommandTimeout = 18000;
Попытка
СоединениеSQL.Open(СтрокаСоединения);
Сообщить("соединилось")
Исключение
Сообщить("Не удалось соединиться с базой данных! " +ОписаниеОшибки());
КонецПопытки;
Command = Новый COMОбъект("ADODB.Command");
Command.ActiveConnection = СоединениеSQL;
ПоказатьПри выполнении у меня ошибка:
Ошибка при установке значения атрибута контекста (ActiveConnection)
Command.ActiveConnection = СоединениеSQL;
по причине:
Произошла исключительная ситуация (ADODB.Command): Для требуемой операции необходим объект OLE DB Session, не поддерживаемый текущим поставщиком.
Строка подключения: driver={SQL Server};SERVER=192.168.1.128\server;UID=логин;PWD=пароль;DATABASE=baze;LANGUAGE=русский;
для xp потом перезагрузите
и попробуйте подключиться
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот