Пример работы с файлами *.db формата SQLite на платформе 8.2
Возникла необходимость загрузки данных из SQLite базы в 1С. Очень хотелось сделать это напрямую без посторонних программ и промежуточных файлов. Решение было найдено в ADODB. Ниже привожу несколько функций и пример их использования.
Функция SQLiteInit(ФайлБД) Экспорт
SQLiteObject = Новый COMОбъект("ADODB.Connection");
SQLiteConnectionString = "DRIVER=SQLite3 ODBC Driver;Database=" + ФайлБД + ";";
Попытка
SQLiteObject.Open(SQLiteConnectionString);
Исключение
Сообщить("Невозможно подключится к драйверу SQLite. Возможно файл [" + ФайлБД + "] открыт другим пользователем или программой!");
Возврат Ложь;
КонецПопытки;
Возврат Истина;
КонецФункции
Функция SQLiteQuery(Запрос) Экспорт
SQLiteRS = Новый COMОбъект("ADODB.Recordset");
Попытка
SQLiteRS = SQLiteObject.Execute(Запрос);
Исключение
Сообщить("Невозможно выполнить SQL запрос " + ОписаниеОшибки(), СтатусСообщения.Важное);
Возврат Ложь;
КонецПопытки;
Возврат SQLiteRS;
КонецФункции
Непосредственно пример для обработки полученных данных
МаркиАвтомобилей = SQLiteQuery("SELECT ID, Name FROM Auto ORDER BY ID");
Пока НЕ МаркиАвтомобилей.EOF Цикл
ID = МаркиАвтомобилей.Fields(0).value;
Name = МаркиАвтомобилей.Fields(1).value;
Сообщить("ID/Name: " + ID + "/" + Name);
МаркиАвтомобилей.MoveNext();
КонецЦикла;
Для того чтобы это все работало, необходимо установить «SQLite3 ODBC Driver«, если конечно он не установлен в системе (по умолчанию его нет).
Еще бы ссылочку на Sqlite ODBC драйвер.
(1) дык вродеhttp://www.ch-werner.de/sqliteodbc/
автор +
Посмотрите мою статью «Функции для хранения рисунков в отдельной базе MSSQL в varbinary с помощью ADODB», там выложены функции для работы с MSSQL. Замените строку подключения на свою и будет работа с SQLite.
Если лень искать в интернете, то драйвер прикреплен к публикации.
Есть очень хорошая ВК по работе с базами Sqlite в 1С от Александра Орефковаhttp://infostart.ru/public/15977/
Не знаю работает ли она в 8.Х
То что надо!
а то у нас стоит dameWare, а он может только импортировать данные, притом их дублируя.
а тут получил доступ к файлу, очистил, залил новые ip и имена пользователей, которые зашли в 1С.. и все! могу подключится к любому юзверю и не отслеживать смену их компов и ip
я бы даже двойной плюс поставил если бы можно было , мне это очень помогло!
(6) amyd, рад, что помогло. Мне в свое время тоже этой информации не хватало. Что угодно был готов отдать за этот пример =)
Спасибо!
Спасибо! Отличное решение для импорта из андроидных баз.
Спасибо. Теперь ещё бы создать базу SQLite format 3?
Всем привет, у меня почему то при подключение к БД, файл которой лежит на сетевой папки, выдает ошибку.
«Произошла исключительная ситуация (ADODB.Command): Для требуемой операции необходим объект OLE DB Session, не поддерживаемый текущим поставщиком.» причем если локально, то все ок, что делать?
Спасибо! Все просто и понятно!
А у меня ошибка file is encrypted or is not a database
Но файл открывается без проблем SQLiteStudio.