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

Скачать файлы

Наименование Файл Версия Размер
SQLite3 ODBC Driver
.exe 3,18Mb
28.12.11
84
.exe 3,18Mb 84 Скачать

См. также

Комментарии
1. Александр Орефков (orefkov) 1462 28.12.11 21:55 Сейчас в теме
Еще бы ссылочку на Sqlite ODBC драйвер.
2. Ийон Тихий (cool.vlad4) 41 28.12.11 22:14 Сейчас в теме
3. Ivan Kuznietsov (Ivon) 610 29.12.11 11:08 Сейчас в теме
Посмотрите мою статью "Функции для хранения рисунков в отдельной базе MSSQL в varbinary с помощью ADODB", там выложены функции для работы с MSSQL. Замените строку подключения на свою и будет работа с SQLite.
4. Геннадий Северный (Avalanche) 174 29.12.11 23:46 Сейчас в теме
Если лень искать в интернете, то драйвер прикреплен к публикации.
5. Евгений Мартыненков (JohnyDeath) 290 05.01.12 13:17 Сейчас в теме
Есть очень хорошая ВК по работе с базами Sqlite в 1С от Александра Орефкова http://infostart.ru/public/15977/
Не знаю работает ли она в 8.Х
6. Денис (amyd) 82 01.02.12 15:10 Сейчас в теме
То что надо!
а то у нас стоит dameWare, а он может только импортировать данные, притом их дублируя.
а тут получил доступ к файлу, очистил, залил новые ip и имена пользователей, которые зашли в 1С.. и все! могу подключится к любому юзверю и не отслеживать смену их компов и ip
я бы даже двойной плюс поставил если бы можно было , мне это очень помогло!
7. Геннадий Северный (Avalanche) 174 02.02.12 17:46 Сейчас в теме
(6) amyd, рад, что помогло. Мне в свое время тоже этой информации не хватало. Что угодно был готов отдать за этот пример =)
8. muha muhaha (fr.myha) 27.03.12 12:15 Сейчас в теме
9. Eugene Korshkov (ekors) 7 15.04.12 23:32 Сейчас в теме
Спасибо! Отличное решение для импорта из андроидных баз.
10. Юрий Зайцев (Yury1001) 1422 14.07.12 21:39 Сейчас в теме
Спасибо. Теперь ещё бы создать базу SQLite format 3?
11. Стас Стас (glime) 41 18.07.13 12:38 Сейчас в теме
Всем привет, у меня почему то при подключение к БД, файл которой лежит на сетевой папки, выдает ошибку.
"Произошла исключительная ситуация (ADODB.Command): Для требуемой операции необходим объект OLE DB Session, не поддерживаемый текущим поставщиком." причем если локально, то все ок, что делать?
12. Деева Светлана (Dinara78) 10.06.16 15:49 Сейчас в теме
Спасибо! Все просто и понятно!
13. ROM ROM (ROM_1C) 663 09.10.16 19:19 Сейчас в теме
А у меня ошибка file is encrypted or is not a database
Но файл открывается без проблем SQLiteStudio.
Оставьте свое сообщение