Соединение Sybase IQ в Python - PullRequest
       99

Соединение Sybase IQ в Python

0 голосов
/ 11 декабря 2018

Я провел несколько дней, пытаясь определить, как подключиться к базе данных Sybase IQ через Python 3.6.Я пробовал pyodbc и pymssql, но безрезультатно.Ниже приведены два фрагмента кода, над которыми я работал, которые, похоже, не работают, независимо от того, что я пытаюсь.

pyodbc:

conn = pyodbc.connect(driver='{SQL Server Native Client 11.0}',
                          server=server,
                          database=database,
                          port=port,
                          uid=user,
                          pwd=pwd)

pymssql:

conn = pymssql.connect(server=server,
                        port=port,
                        user=user,
                        password=pwd,
                        database=database)

Я также читал, что FreeTds может быть решением для подключения к базе данных Sybase IQ;Я думал, что он был установлен как часть базы данных pymssql, но я не могу понять, как его использовать.Любая помощь будет принята с благодарностью!

РЕДАКТИРОВАТЬ: Я знаю, что sqlanydb существует;тем не менее, этот пакет заставляет меня перейти на Python 2.7.Мой стек равен 3,6, и я бы не хотел уходить от этого.

1 Ответ

0 голосов
/ 19 декабря 2018

Через некоторое время мне удалось решить эту проблему (в Windows).Сначала установите драйвер SQL Anywhere 17.После установки в окне Источники данных ODBC для Windows настройте соединение с помощью SQL Anywhere 17 и учетных данных Sybase IQ.После того, как это было настроено и успешно протестировано, вы можете использовать приведенный ниже фрагмент кода для подключения:

from sqlalchemy import create_engine

sybase_connection_string = "sqlalchemy_sqlany://{user}:{pwd}@{host}:{port}/{db}".\
        format(user=user, pwd=pwd, host=host, port=port, db=database)
engine = create_engine(sybase_connection_string)
return engine.connect()

Я полагаю, вам понадобится модуль sqlalchemy_sqlany, установленный через pip, а также sqlalchemy.

...