Используя Ubuntu 10.04 LTS, я пытаюсь подключиться к MS SQL Server, который у нас есть в другом поле, из сценария Python. Какие шаги мне нужно сделать для этого? Прямо сейчас я пытаюсь использовать модуль pyodbc, но всякий раз, когда я пытаюсь подключиться, я получаю следующую ошибку:
Имя источника данных не найдено, и драйвер по умолчанию не указан (0) (SQLDriverConnectW)
Итак, я просмотрел файл odbvcinst.ini, который был пуст, добавил запись, и теперь, когда я использую один из определенных мной элементов, я получаю следующую ошибку:
Ошибка драйвера SQLAllocHandle на SQL_HANDLE_HENV (0) (SQLDriverConnectW)
Я установил: unixodb unixodbc-dev freetds-dev freetds-bin. Я поставил это на SF, а не на SO, потому что я думаю, что это проблема конфигурации сервера. Какой драйвер у меня должен быть и как на него ссылаться, в каком файле и т. Д.? (Я новичок в Ubuntu)
Вы настроили источник данных в своем /etc/freetds.conf
файл?
Запись должна выглядеть примерно так:
# A typical Microsoft server
[egServer70]
host = ntmachine.domain.com
port = 1433
tds version = 7.0
(Хотя я обычно использую tds version = 8.0, когда работаю с MS SQL Server, и он отлично работает)
Редактировать: (Собираюсь разместить здесь свои ответы, чтобы я мог их кодировать)
Ваш /etc/odbcinst.ini должен выглядеть так:
[MSSQL]
Description = FreeTDS
Driver = /usr/lib/libtdsodbc.so
Setup = /usr/lib/libtdsS.so
CPTimeout =
CPReuse =
(Убедитесь, что пути к драйверам верны. Иногда это / usr / lib / odbc /)
Тогда строка Python должна выглядеть так:
import pyodbc
connection = pyodbc.connect("DRIVER={MSSQL};SERVER=yourserver.yourdomain.com;UID=username;PWD=password;DATABASE=databasename")