Пример работы с SQL Server посредством ADO Ключевые слова: ADO, SQL Server, ADODBConnection, Recordset, прямой запрос
//******************************************************************************
// Создает экземпляр АДОДБКоннекшн
//
Функция АДОКоннекшн_СоздатьОбъект()
Возврат СоздатьОбъект("ADODB.Connection");
КонецФункции // АДОКоннекшн_СоздатьОбъект
//******************************************************************************
// Создает экземпляр ADODB.Recordset и, если передано соединение, - ассоциирует
// рекордсет с этим соединением
//
Функция АДОРекордсет_СоздатьОбъект(Соединение = "")
rs = CreateObject("ADODB.Recordset");
Если ПустоеЗначение(Соединение) = 0 Тогда
rs.ActiveConnection = Соединение;
КонецЕсли;
Возврат rs;
КонецФункции // АДОРекордсет_СоздатьОбъект
//*******************************************
// Устанавливает соединение с SQL Server'ом
// [inout]
// Соединение - экземпляр ADODB.Connection
// [in]
// сИмяБазы - имя базы
// сИмяКомпьютера - имя копмьютера, на котором установлен скуль, к которому мы подключаемся
// сЛогин - логин (возможно sa)
// сПароль - пароль от логина ^
// ---
// Возврат: 0 - не установлено соединение, все остальное - соединение успешно установлено
//
Функция АДОДБ_УстановитьСоединение(Соединение, сИмяБазы, сИмяКомпьютера, сЛогин, сПароль) Экспорт
СтрокаСоединения = "Provider=SQLOLEDB.1;
|User ID="+сЛогин+";
|Pwd="+сПароль+";
|Data Source=" + сИмяКомпьютера + ";
|Initial Catalog=" + сИмяБазы + "";
Возврат Соединение.Open(СтрокаСоединения);
КонецФункции // АДОДБ_УстановитьСоединение()
//**************************************************
//
Процедура Сформировать()
Соединение = АДОКоннекшн_СоздатьОбъект();
Если 0 = АДОДБ_УстановитьСоединение(Соединение, "база", "сервер", "логин", "пассворд") Тогда
Предупреждение("Не струится ни струя...", 30);
Возврат;
КонецЕсли;
Рекордсет = АДОРекордсет_СоздатьОбъект(Соединение);
Рекордсет.Source = "SELECT * FROM таблица";
Рекордсет.Open();
Пока Рекордсет.EOF = 0 Цикл
Сообщить("Поле1: " + Рекордсет.Fields("Поле1").Value);
Сообщить("Поле2: " + Рекордсет.Fields("Поле2").Value);
// ...
Сообщить("ПолеN: " + Рекордсет.Fields("ПолеN").Value);
Рекордсет.MoveNext();
КонецЦикла;
КонецПроцедуры // Сформировать
|