InterBase через OLE DB из 1С v 8.x
В статье описан пример работы с InterBase через OLE DB из 1С v 8.x
Для работы требует 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