Помощь - Поиск - Пользователи - Календарь
Полная версия: Чтение из SQL-базы
1C-PRO - Форум по 1С > Форумы по платформе "1С:Предприятие 8.x" > (8.х) Конфигурирование на платформе "1С:Предприятие 8.x"
DDRON
Добрый вечер.
Пытаюсь приконнектиться так:

Код
Соединение = Новый COMОбъект("ADODB.Connection");
СтрокаСоединения = "Driver={SQL Server};server=***;dataBase=***;uid=***;pwd=***";
Попытка
СтрокаПодключения = СтрокаСоединения;
Соединение.Open(СТрокаПодключения);
Исключение
Сообщить(ОписаниеОшибки());
Возврат;
КонецПопытки;
Сообщить("Успешно");

НаборЗаписей = Новый COMОбъект("ADODB.Recordset");
ИмяТаблицыБазыДанных = "Categories";
ВыборкаДанные = НаборЗаписей.Open(ИмяТаблицыБазыДанных,
Соединение.ActiveConnection);
ПолеТаблицы = Новый COMОбъект("ADODB.Field");
Для Каждого ПолеТаблицы Из ВыборкаДанные Цикл
Сообщить(ПолеТаблицы.Name + " " + ПолеТаблицы.Value);
КонецЦикла;
НаборЗаписей.Close();





Надпись "успешно" выводится. А далее выводится следующее сообщение об ошибке:

Код
{Форма.Форма(17)}: Ошибка при получении значения атрибута контекста (ActiveConnection): 
Произошла исключительная ситуация (ADODB.Connection): Arguments are of the wrong type, are out of acceptable range,
or are in conflict with one another. ВыборкаДанные = НаборЗаписей.Open(ИмяТаблицыБазыДанных, Соединение.ActiveConnection);
по причине:
Произошла исключительная ситуация (ADODB.Connection): Arguments are of the wrong type,
are out of acceptable range, or are in conflict with one another.




Почему появляется эта ошибка?
Как будет правильно произвести чтение из таблицы SQL-базы?
DDRON
Никто не знает?
lazy
Надпись "Успешно" выводится потому, что она за пределами возникающего исключения. Код на самом деле должен быть примерно таким:
Код

Попытка
СтрокаПодключения = СтрокаСоединения;
Соединение.Open(СТрокаПодключения);
Сообщить("Успешно");
Исключение
Сообщить(ОписаниеОшибки());
Возврат;
КонецПопытки;


Соединение не происходит из за того, что Вы забыли указать какой тип сервера используете
Код

СтрокаСоединения = "Driver={SQL Server};server=***;dataBase=***;uid=***;pwd=***";

Видите надпись в фигурных скобочках? Они(скобочки) там отнюдь не спроста ;)
Пример подключения для 8.1 в прилагаемом файле :)
DDRON
Да, эту обработку я смотрел ещё до создания данной темы.
Собственно из неё я и взял эту строку подключения.

Я всё-таки не очень понимаю что подразумеваеся под словами "тип сервера".

У меня установлен SQL Server 2005.
Название сервера и базы я вбиваю такие:
server=DATACENTER\РОГАИКОПЫТА;
dataBase=ЗаборInfo;
"Рогаикоыта" и "забор" - названия вымышленные.

Что в тип сервера то вбить?
SQL Server 2005 ?

Спасибо.
BuHunyx
у мну sql 2003 , строка соединения выглидит так :("Provider=SQLOLEDB;Data Source=" + СокрЛП(Константы.СерверБазы77.Получить()) + ";Persist Security Info=True;User ID=" + СокрЛП(Константы.ЛогинДляПодключенияКБазе77.Получить()) + ";Password=" + СокрЛП(Константы.ПарольДляПодключенияКБазе77.Получить()) + ";Initial Catalog=" + СокрЛП(Константы.ИмяБазы77.Получить()));
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.
Русская версия Invision Power Board © 2001-2009 Invision Power Services, Inc.