v8: Пример работы с InterBase через OLE DB из 1С v 8.x Ключевые слова: ADO, COM, OLEDB, ActiveX, выгрузка, загрузка, InterBase
Для работы требует ADO - оно сейчас есть везде, и FreeIBProvider - это IB OLEDB драйвер.
=================================================
Итак... хорошо сначала подумали, потом поставили FreeIBProvider Коваленко, а потом написали в 1С v 8.х такую процедуру:
// Процедура ЧтениеБДInterBase - производит чтение данных из таблицы InterBase
//
// Параметры:
// Сервер - Строка с именем сервера на котором находится база InterBase (например: "ServerBD")
// МестоНахождениеБД - Строка с полным именем базы InterBase (например: "d:\database\myBase.gdb")
// ПараметрыПодключения - Строка с требуемыми если нужно параметрами подключения (например: "auto_commit=True;ctype=win1251")
// ИмяПользователя - Имя пользователя имеющего право на работу с InterBase (например: "SYSDBA")
// ПарольПользователя - пароль доступа к InterBase (например: "password")
Процедура ЧтениеБДInterBase (Сервер, МестоНахождениеБД, ПараметрыПодключения, ИмяПользователя, ПарольПользователя)
стрПодключения = "data source=" + Сервер + ":" + МестоНахождениеБД + ";" + ПараметрыПодключения + ";user ID=" +
| ИмяПользователя + ";password=" + ПарольПользователя
Connection = Новый COMОбъект("ADODB.Connection");
Connection.Provider = "LCPI.IBProvider";
Connection.ConnectionString = стрПодключения;
попытка
Connection.Open();
исключение
Сообщить ("Проблемы с подключением к InterBase" );
Возврат;
КонецПопытки;
RS = Новый COMОбъект("ADODB.Recordset");
//Запрос к базе данных на языке SQL запросов
попытка
RS.Open("Select * From name", Connection );
исключение
Сообщить ("Проблемы с выполнением запроса к InterBase");
Возврат;
КонецПопытки;
// Пример обработки полученного recordset
Пока RS.EOF() = 0 Цикл
Имя = RS.Fields("Name").Value;
Описание = RS.Fields("Description").Value;
// Обработка других полей
RS.MoveNext();
КонецЦикла;
// Завершение работы с InterBase
RS.Close();
Connection.Close();
КонецПроцедуры;
Если понравится - "курить букварь" ADO, OLE DB, Connection, Command, Recordset, и т.д....
Потом сделать наконец "все по-человечески" :-)
А вообще при работе с InterBase через OLE DB (как в приведенном примере), можно делать все, что можно делать с базами данных.... Запросы, в том числе параметризованные, процедуры, транзакции, и т.д.
Данные, само собой, можно не только "доставать", но и "записывать". Можно даже работать с несколькими транзакциями в одном коннекте, как здесь: http://www.ibprovider.com/eng/examples/example_09_02.html
другой на мой взгляд очень полезный материал с примерами доступа к SQL-таблицам базы данных 1С:Предприятие с помощью методов ADO я рекомендую (с поправкой что примеры приведены для 1С v 7.7) почитать тут - http://melan.gazinter.net/ADO&SQL&1C/index.html
Кстати взять FreeIBProvider можно на сайте разработчиков - http://www.ibprovider.com
Удачи |