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

Публикация № 103371

Обмен - Обмен с другими системами

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

46

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

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

См. также

Специальные предложения

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