|
Создание соединения с sqlite | ☑ | ||
---|---|---|---|---|
0
mefisto666series
10.10.13
✎
20:32
|
В общем, тема такая: мне необходимо пользоваться sqlite как внешним источником данных(для бухгалтерии, т.к. там нет дока заказ, и нельзя редактировать конфу, нужно заказы хранить во внешней базе). с sql не работал, но с запросами разберусь, инфы достаточно, а, вот, по инициализации соединения все не понятно. то есть, здесь: http://infostart.ru/public/103371/ есть что-то, и тут: v8: Sqlite и 1с8, но мне мало. я уже и по liteX почитал, но ничего не ясно. вот таким образом пробовал:
|
|||
1
mefisto666series
10.10.13
✎
20:33
|
ПутьКБазе="File=C:\Users\Михаил\Downloads\sqlite.db;";
//V8 = Новый COMОбъект("V8.Application"); V8 = Новый COMОбъект("ADODB.Connection"); Попытка Открытие = V8.Connect(ПутьКБазе); Исключение Сообщить("Невозможно подключится к драйверу SQLite. Возможно файл [" + ФайлБД + "] открыт другим пользователем или программой!"); Сообщить(ОписаниеОшибки()); Возврат Ложь; КонецПопытки; но тщетно |
|||
2
shuhard
10.10.13
✎
20:34
|
(0)[для бухгалтерии, т.к. там нет дока заказ, и нельзя редактировать конфу, нужно заказы хранить во внешней базе]
не взлетит |
|||
3
NcSteel
10.10.13
✎
20:35
|
(2) При пряморукости - взлетит.
|
|||
4
mefisto666series
10.10.13
✎
20:35
|
такая ошибка вылетает: Ошибка при вызове метода контекста (Connect): Произошла исключительная ситуация (ADODB.Connection): Операция не допускается, если объект закрыт.
пытался sqlite3.dll через regsvr32 зарегать - кидает ошибку |
|||
5
mefisto666series
10.10.13
✎
20:38
|
(3) было сделано так до меня и есть база в которой это все собрано. но как там реализовано подключение - известно только тому наркоману, который это делал. логику сбора из таблиц полноценного дока я понял. а вот подключение к базе - вопрос открытый пока что.
|
|||
6
orefkov
10.10.13
✎
23:24
|
Кури http://www.connectionstrings.com/sqlite/
Там смотри SQLite3 ODBC Driver. У тебя походу не хватает строки DRIVER=SQLite3 ODBC Driver; |
|||
7
orefkov
10.10.13
✎
23:25
|
Ну и сам SQLite3 ODBC Driver должен быть на компе установлен.
|
|||
8
mefisto666series
11.10.13
✎
14:40
|
Вот сейчас попробовал вот так:
SQLiteObject = Новый COMОбъект("ADODB.Connection"); SQLiteConnectionString = "DRIVER=SQLite3 ODBC Driver;Database=\Users\Михаил\Downloads\sqlite.db;LongNames=0;Timeout=1000;NoTXN=0;SyncPragma=NORMAL;StepAPI=0;"; Попытка SQLiteObject.Open(SQLiteConnectionString); Исключение и это дело кидает такую ошибку: {Форма.ОсновноеОкно.Форма(953)}: Ошибка при вызове метода контекста (Open): Произошла исключительная ситуация (Microsoft OLE DB Provider for ODBC Drivers): [Microsoft][Диспетчер драйверов ODBC] Источник данных не найден и не указан драйвер, используемый по умолчанию драйвер я устанавливал, качал здесь: http://www.ch-werner.de/sqliteodbc/ вот это: sqliteodbc_w64.exe прбовал по-другому: СтрокаПодключения ="DRIVER=SQLite3 ODBC Driver;Database=\Users\Михаил\Downloads\sqlite.db;LongNames=0;Timeout=1000;NoTXN=0;SyncPragma=NORMAL;StepAPI=0;"; V8 = Новый COMОбъект("ADODB.Connection"); Попытка Открытие = V8.Connect(СтрокаПодключения); Исключение Сообщить("Невозможно подключится к драйверу SQLite. Возможно файл [" + ФайлБД + "] открыт другим пользователем или программой!"); Сообщить(ОписаниеОшибки()); Возврат Ложь; КонецПопытки; этот вариант кидает: {Форма.ОсновноеОкно.Форма(969)}: Ошибка при вызове метода контекста (Connect): Произошла исключительная ситуация (ADODB.Connection): Операция не допускается, если объект закрыт. |
|||
9
orefkov
11.10.13
✎
14:48
|
(8)
Что у тебя за путь к базе прописан? Может "\\Users\..." |
|||
10
mefisto666series
11.10.13
✎
15:32
|
на путь я обратил внимание сразу как запостил сообщение, исправил, но ошибки те же. путь так записан: "C:\Users\Михаил\Downloads\sqlite.db"
|
|||
11
orefkov
11.10.13
✎
15:36
|
Попробуй для начала через Администрирование/Источники Данных ODBC создать источник данных, будет ли создаваться.
|
|||
12
Kreont
11.10.13
✎
15:40
|
кирилица еще бывает плохо в путях сказывается, лучше сделай путь проще: D:\Base\sqlite.db
|
|||
13
alex74
11.10.13
✎
16:14
|
сделай пустой файл с расширением udl и открой его двойным кликом мышки. У тебя откроется окошко для настройки подключения. Когда все настроишь - нажми ОК, окошко закроется а в файле будет прописана строка подключения.
|
|||
14
mefisto666series
14.10.13
✎
15:40
|
значит так. насчод udl - не понятно. что-то делали, пробовали - неясно что там должно быть. вот последний вариант:
Попытка СтрокаПодключения = "DSN=SQLite3 Datasource;Database=C:\sqlte.db;StepAPI=0;SyncPragma=NORMAL;NoTXN=0;Timeout=100000;ShortNames=0;LongNames=0;NoCreat=0;NoWCHAR=0;FKSupport=0;JournalMode=;OEMCP=0;LoadExt=;BigInt=0;"; ADOUtils = Новый("AddIn.ADOUtils"); Connection = Новый COMОбъект("ADODB.Connection"); Connection.Open(СтрокаПодключения); Исключение Сообщить(ОписаниеОшибки()); Возврат Ложь; КонецПопытки; Описание Ошибки: "Тип не определен (AddIn.ADOUtils)" |
|||
15
orefkov
14.10.13
✎
15:45
|
GameWithFire.dll надо подключать.
|
|||
16
sm_vp
14.10.13
✎
15:46
|
(15) каким образом?
|
|||
17
Kreont
14.10.13
✎
15:47
|
"ADOUtils = Новый("AddIn.ADOUtils");"
зачем вообще здесь? удали и ошибки не будет :) |
|||
18
mefisto666series
14.10.13
✎
15:49
|
(17) ок, я пробовал, только в таком случае:
Ошибка при вызове метода контекста (Open): Произошла исключительная ситуация (Microsoft OLE DB Provider for ODBC Drivers): [Microsoft][Диспетчер драйверов ODBC] Источник данных не найден и не указан драйвер, используемый по умолчанию |
|||
19
mefisto666series
14.10.13
✎
15:50
|
(15) странное название))
|
|||
20
Kreont
14.10.13
✎
15:53
|
(18) вот эту ошибку и лечи, а не создавай новую
|
|||
21
Kreont
14.10.13
✎
15:57
|
Панель управления -> Администрирование -> Источники данных (ODBC)
на закладке системный DSN есть строка/драйвера sqlite? |
|||
22
sm_vp
14.10.13
✎
15:58
|
(20) а в чем может быть причина этой ошибки? драйвера устанавливали
|
|||
23
sm_vp
14.10.13
✎
15:58
|
(21)есть
|
|||
24
Kreont
14.10.13
✎
16:00
|
(22) если 100% устанавливали драйвера, значит строка СтрокаПодключения не соответсвуем им.
см.(6) |
|||
25
mefisto666series
14.10.13
✎
16:06
|
(24) ну вот как так: Ошибка при вызове метода контекста (Open): Произошла исключительная ситуация (Microsoft OLE DB Provider for ODBC Drivers): [Microsoft][Диспетчер драйверов ODBC] Источник данных не найден и не указан драйвер, используемый по умолчанию. тут: (21) указано что SQlite3 odbc driver есть
|
|||
26
Kreont
14.10.13
✎
16:16
|
я хз что у тебя не так, запустил у себя для теста такой код без ошибок отработал:
БД_ODBC = Новый ComObject("ADODB.Connection"); ШляхБД = "D:\sqlite\test.db"; БД_ODBC.Open("Driver={SQLite3 ODBC Driver};Database=" + ШляхБД + ";LongNames=0;Timeout=1000;NoTXN=0;SyncPragma=NORMAL;StepAPI=0;") |
|||
27
mefisto666series
14.10.13
✎
16:31
|
может такое быть что дрова хоть и установил, но не регистрировал через regsvr32? у меня винда восьмерка и ругается на исполнение regsvr32 sqlite3.dll
|
|||
28
Kreont
14.10.13
✎
16:33
|
установщик сам их регистрирует.
сравни строки в (26) и (14) там есть разница все таки |
|||
29
sm_vp
14.10.13
✎
16:39
|
(28) все равно такая же ошибка
|
|||
30
Серго62
14.10.13
✎
16:50
|
Все таки попробуй создать udl-файл и проверить подключение.
1. Создаешь пустой файл с расширением udl 2. Два раза на нем щелкаешь - откроется окно Свойства связи с данными 3. В этом окне выбираешь - Использовать строку подключения и вставляешь вот эту строку: Driver={SQLite3 ODBC Driver};Database=C:\sqlite.db;StepAPI=0;SyncPragma=NORMAL;NoTXN=0;Timeout=;ShortNames=0;LongNames=0;NoCreat=0;NoWCHAR=0;FKSupport=0;JournalMode=;OEMCP=0;LoadExt=;BigInt=0; 4. Вместо C:\sqlite.db напишешь свой путь 5. Жмешь - проверить подключение |
|||
31
Kreont
14.10.13
✎
16:52
|
(29) неверю (с)
ну как вариант на винХП/7-ке попробуй уст.драйвер и выполнить код. а точно из (26) скопировал к себе строку подключения? |
|||
32
sm_vp
14.10.13
✎
17:01
|
(31) да он точно также делал
|
|||
33
mefisto666series
14.10.13
✎
17:23
|
в общем, не могу понять в чем дело, но, о, сенсей, спасибо. такой вариант работает:
Попытка БД_ODBC = Новый ComObject("ADODB.Connection"); БД_ODBC.Open("Driver={SQLite3 ODBC Driver};Database=C:\sqlite.db;StepAPI=0;SyncPragma=NORMAL;NoTXN=0;Timeout=;ShortNames=0;LongNames=0;NoCreat=0;NoWCHAR=0;FKSupport=0;JournalMode=;OEMCP=0;LoadExt=;BigInt=0;") Исключение Сообщить(ОписаниеОшибки()); Возврат ЛожЬ; КонецПопытки; |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |