#sqlite #pyodbc #unixodbc
#sqlite #pyodbc #unixodbc
Вопрос:
Я не могу понять, как подключиться к базе данных sqlite с помощью pyodbc. У меня настроен DSN, и я могу подключиться к нему через isql без проблем.
isql -v TEST
работает как шарм, однако
import pyodbc
pyodbc.connect('DSN=TEST')
Выдает следующее сообщение об ошибке:
pyodbc.Error: ('IM002', '[IM002] [unixODBC][Driver Manager]Data source name not found, and no default driver specified (0) (SQLDriverConnectW)')
Я также перепробовал большое количество перестановок строк подключения в примерах на https://code.google.com/p/pyodbc/wiki/GettingStarted безрезультатно.
pyodbc.dataSources()
Указывает ли dsn, к которому я пытаюсь подключиться, значение, содержащее путь к libsqlite3odbc.so
Я предполагаю, что мне не хватает чего-то очевидного, но я не могу понять, чего…
РЕДАКТИРОВАТЬ: используя unixODBC 2.3.0, python 2.7.1, sqliteodbc 0.88 и pyodbc 2.1.8 РЕДАКТИРОВАТЬ: причина, по которой я хочу использовать pyodbc, заключается в переносимости для Windows и MS Access
Ответ №1:
Просто чтобы проверить, что передается в диспетчер драйверов, включите трассировку ODBC в вашем odbcinst,ini файл add
[ODBC]
Trace = Yes
TraceFile = /tmp/sql.log
Затем снова запустите приложение и посмотрите, что передается в вызов SQLConnect или SQLDriverConnect.