gifts2017

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

Опубликовал Геннадий Северный (Avalanche) в раздел Обмен - Обмен с другими системами

Пример работы с файлами *.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 79
.exe 3,18Mb
28.12.11
79
.exe 3,18Mb Скачать

См. также

Подписаться Добавить вознаграждение

Комментарии

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