Работа с файлами SQLite (*.db) через ADODB

Пример работы с файлами *.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«, если конечно он не установлен в системе (по умолчанию его нет).

13 Comments

  1. orefkov

    Еще бы ссылочку на Sqlite ODBC драйвер.

    Reply
  2. cool.vlad4

    (1) дык вроде http://www.ch-werner.de/sqliteodbc/

    автор +

    Reply
  3. Ivon

    Посмотрите мою статью «Функции для хранения рисунков в отдельной базе MSSQL в varbinary с помощью ADODB», там выложены функции для работы с MSSQL. Замените строку подключения на свою и будет работа с SQLite.

    Reply
  4. Avalanche

    Если лень искать в интернете, то драйвер прикреплен к публикации.

    Reply
  5. JohnyDeath

    Есть очень хорошая ВК по работе с базами Sqlite в 1С от Александра Орефкова http://infostart.ru/public/15977/

    Не знаю работает ли она в 8.Х

    Reply
  6. amyd

    То что надо!

    а то у нас стоит dameWare, а он может только импортировать данные, притом их дублируя.

    а тут получил доступ к файлу, очистил, залил новые ip и имена пользователей, которые зашли в 1С.. и все! могу подключится к любому юзверю и не отслеживать смену их компов и ip

    я бы даже двойной плюс поставил если бы можно было , мне это очень помогло!

    Reply
  7. Avalanche

    (6) amyd, рад, что помогло. Мне в свое время тоже этой информации не хватало. Что угодно был готов отдать за этот пример =)

    Reply
  8. fr.myha

    Спасибо!

    Reply
  9. ekors

    Спасибо! Отличное решение для импорта из андроидных баз.

    Reply
  10. Yury1001

    Спасибо. Теперь ещё бы создать базу SQLite format 3?

    Reply
  11. glime

    Всем привет, у меня почему то при подключение к БД, файл которой лежит на сетевой папки, выдает ошибку.

    «Произошла исключительная ситуация (ADODB.Command): Для требуемой операции необходим объект OLE DB Session, не поддерживаемый текущим поставщиком.» причем если локально, то все ок, что делать?

    Reply
  12. Dinara78

    Спасибо! Все просто и понятно!

    Reply
  13. ROM_1C

    А у меня ошибка file is encrypted or is not a database

    Но файл открывается без проблем SQLiteStudio.

    Reply

Leave a Comment

Ваш адрес email не будет опубликован. Обязательные поля помечены *