========================================================================== * Forwarded by Alexandr Kochmin * Newsgroup: epsylon.public.interbase * From: "Vladimir Kotlyarevsky" * Date: Sat, 15 Jun 2002 18:25:22 +0800 * Subj: Re: 1C и InterBase ========================================================================== >> хочу справочник людей (сотрудников) из моего софта в "Зарплату и кадры" >> закинуть, как? >> ну мне сказали что ежели у тебя дбф, то вообщем на внутреннем "бейсике" нет >> проблем, т.е. я из иба должен делать дбф, а затем уже конвертить? некрасиво >> как то.... Как уже сказали, есть два пути - обращаться к ИБ из 1С, и обращаться к 1С (через OLE) из клиента ИБ. На мой взгляд, тебе больше подходит первый способ. Итак мой собственный ответ (точнее, целая подборка) на аналогичный вопрос примерно двух-трех месячной давности пример написан на 1С Бейсике - это родной встроенный язык 1С. Для работы требует ADO - оно сейчас есть везде, и FreeIBProvider - это IB OLEDB драйвер. Через OLEDB работает ADO - это примерно как BDE & SQLLinks ================================================= Все таки лучше сначала подумать, потом поставить FreeIBProvider Коваленко, а потом написать в 1С простые слова: Перем РС; Перем a; Перем Имя; Перем Описание; РС = СоздатьОбъект("ADODB.Recordset"); РС.Open("select name, description from objects where id < 200", "Provider=LCPI.IBProvider.1;Data Source=localhost:c:\work\kelly2\db\kelly2.gdb;auto_commit=True;ctype=win1251 ;User ID=sysdba;Password=m"); a = 1; Пока a < 15 Цикл Имя = РС.Fields("Name").Value; Описание = РС.Fields("Description").Value; [................] РС.MoveNext(); a = a + 1; КонецЦикла; КонецПроцедуры Если понравится - 2 часа читать про ADO - Connection, Command, Recordset Потом сделать все по-человечески, не радуя всяких францайзи и прочих китайцев своими деньгами :)) а если хочется чего то более хитрого, чем просто отправлять запросы (любые - не только select) к БД, то пишется свой COM-компонент, он должен поддерживать IDispatch. Все. P.S. 1С я не знаю, но код, приведенный в моем предыдущем посте, написал минут за 15, запустив 1С на машине коллеги. Код работает. >> отлично. спасибо. >> только не понял послдних фраз. если понравится что? потом сделать по >> человечески, >> а разве твой приведенный код не человечен или как то криво работает? не, ну кто знает. Код работает - я только что его проверял, но вдруг что-то не понравится :))) Это ж пример всего навсего. По человечески - я имел ввиду, что recordset конечно можно открыть прямо так, передав ему connection string, но как правило, пользуются объектом Connection - примерный аналог TDatabase. А вообще при работе с FreeIBProvider через ADO (как в приведенном примере), ты можешь делать все, что можно делать с ИБ. Запросы, в том числе параметризованные, процедуры, транзакции, и тд. Данные,само собой, можно не только доставать, но и засовывать. Можно даже работать с несколькими транзакциями в одном коннекте, как здесь: http://www.ibprovider.com/eng/examples/example_09_02.html >> очень хочется не раовать франчайзеров, - для этого нужно использовать >> FIBProv как >> написано в твоем вышеприведенном коде? да Поэтому скажем еще раз хором - "спасибо Коваленко Диме за наше счастливое детство!" ====================================================================== где взять FreeIBProvider - http://www.ibprovider.com где то там ./Vlad