Имя: Пароль:
1C
1С v8
Чтение данных из DB (SQLite)
,
0 newbling
 
05.12.18
16:59
Здравствуйте. Есть программка, которая читает ddd файлы и создаёт на их основе простенькую локальную SQLite базу. Мне надо из 1с читать данные с этой базы.
Посмотрел структуру с помощью SqliteBrowser. Скачал SQLiteODBCv3 драйвер, установил.

Пытаюсь прочитать и получаю ошибку подключения на этапе
SQLiteObject.Open(SQLiteConnectionString);


Есть форма с адресом.
Вот листинг:


Процедура КнопкаВыполнитьНажатие(Кнопка)
    
    МаркиАвтомобилей = SQLiteQuery("SELECT * FROM units"); //units - есть такая табличка с нужными нам данными, видно через SQLiteBrowser
    Пока НЕ МаркиАвтомобилей.EOF Цикл
        ID = МаркиАвтомобилей.Fields(0).value;
        Name = МаркиАвтомобилей.Fields(1).value;
        Сообщить("ID/Name: " + ID + "/" + Name);
        МаркиАвтомобилей.MoveNext();
    КонецЦикла;

КонецПроцедуры

Функция SQLiteInit(ФайлБД) Экспорт
    SQLiteObject = Новый COMОбъект("ADODB.Connection");
    SQLiteConnectionString = "DRIVER=SQLite3 ODBC Driver;Database=" + ФайлБД + ";";
    Попытка
        SQLiteObject.Open(SQLiteConnectionString); // уже тут не удаётся
        Возврат Истина;
    Исключение
        Сообщить("Невозможно подключится к драйверу SQLite. Возможно файл [" + ФайлБД + "] открыт другим пользователем или программой!");
    КонецПопытки;
КонецФункции

Функция SQLiteQuery(Запрос) Экспорт
    SQLiteRS = Новый COMОбъект("ADODB.Recordset");
    Попытка
        SQLiteObject = SQLiteInit(ПутьКБД);
        SQLiteRS = SQLiteObject.Execute(Запрос);
       Возврат SQLiteRS;
    Исключение
        Сообщить("Невозможно выполнить SQL запрос " + ОписаниеОшибки(), СтатусСообщения.Важное);
    КонецПопытки;
    
КонецФункции


Может я как-то не так подключиться пытаюсь и SQLite3 ODBC Driver для этого не пригоден? Если кто успешно подключался к локальной sqlite базе, посоветуйте как.
1 Вафель
 
05.12.18
17:15
какой текст ошибки?
2 Ёпрст
 
05.12.18
17:21
ПутьКБд - реквизит формы ? хотя бы пробелы отрежь от него
3 newbling
 
06.12.18
08:06
(1) Ошибка при вызове метода контекста (Open): Произошла исключительная ситуация (Microsoft OLE DB Provider for ODBC Drivers): [Microsoft][Диспетчер драйверов ODBC] Источник данных не найден и не указан драйвер, используемый по умолчанию

(2) Ну это просто адрес к файлу, там и так нет пробелов уже.
4 newbling
 
06.12.18
08:43
Нашёл на мисте ещё ветку, где подключаются через
Новый ComОбъект("LiteX.LiteConnection")

Но где его взять не понятно.
5 Salimbek
 
06.12.18
08:54
(4) Дык, в поиск, а там уже: https://sourceforge.net/projects/litex/
6 Salimbek
 
06.12.18
09:01
+(5) Еще для VB есть такое: http://www.vbrichclient.com/#/en/Downloads.htm
7 newbling
 
06.12.18
09:02
(5) (6) Не, ну он-то читает, всё хорошо, а из 1с как =)
8 Sserj
 
06.12.18
09:03
Используй 1Sqlite.dll
http://www.1cpp.ru/forum/YaBB.pl?num=1214205575
9 Sserj
 
06.12.18
09:05
+(8) Тут последние версии
https://cloud.mail.ru/public/9znr/ZJ6ULE9aR
10 Salimbek
 
06.12.18
09:05
(8) Так-то в теме из (4) v8: SQLite (LiteX) и 1Cv8.2
сам Орефков и советует использовать dhRichClient3, только оно уже ушло на 5-ю версию (на сколько я понял). Вот ссылку на нее я и скинул в (6)
11 newbling
 
06.12.18
09:07
(9) А юзать-то это как? Не регается дллка
12 newbling
 
06.12.18
09:13
О, что-то взлетело. Не понял как, правда.
Это проблема =)
13 newbling
 
06.12.18
09:23
Понаставил дллок теперь поди разберись на какой из них заработало. Буду на другом компе пробовать, всем спасибо!
14 Salimbek
 
06.12.18
09:59
(13) Если 1SQlite то не надо ее регистрировать, вроде бы.
15 newbling
 
17.12.18
12:00
На всякий случай уточню, может пригодится кому.
Помогла установка sqliteodbc.exe
Т.е. 32-х битный. Я сначала х64 поставил, оно не взлетело.
Я не хочу быть самым богатым человеком на кладбище. Засыпать с чувством, что за день я сделал какую-нибудь потрясающую вещь — вот что меня интересует. Стив Джобс