2015-05-04 4 views
2

Я использую pypy, pypyodbc и SQLAlchemy. У меня проблема с соединениями odbc.Стили SQLAlchemy orm, как сделать специальный диск для вашей строки подключения

Я использую:

engine = create_engine('mssql+pyodbc://dbuser:[email protected]/dbname', echo = False) 
Session = sessionmaker(bind=engine) 

стиль попробуйте подключить базу данных.

Ошибка:

C:\pypy\site-packages\sqlalchemy\connectors\pypyodbc.py:82: SAWarning: No driver 
name specified; this is expected by PyODBC when using DSN-less connections 
"No driver name specified; " 

Причина этой ошибки, я считаю соединять параметр

DRIVER={SQL Server Native Client} 

не передают на двигатель, другими словами, я хочу знать, как установите строку DRIVER для этого стиля соединений для SQLALchemy.

+0

Формат должен быть в порядке. В моем случае, «oracle», я предоставляю «oracle: // dbuser: dbpasswd @ 127.0.0.1/orcl' (хотя понятия немного отличаются в oracle). Я бы сказал, что ваша проблема связана именно с «drivername» см. [URL-адрес подключения] (http://docs.sqlalchemy.org/en/rel_0_5/reference/sqlalchemy/connections.html), это будет 'mssql + pyodbc' в твоем случае. Не могу попробовать это для MS ddbb, извините. Надеюсь, это поможет. – lrnzcig

ответ

1

Я столкнулся с той же проблемой с Sybase ASE и, посмотрев исходный код pyodbc.py, вы можете передать GET-подобные параметры в свой url. В качестве примера (работа для меня):

sybase+pyodbc://username:[email protected]:5000/dbname?driver=Adaptive Server Enterprise 

Это также своего рода документированы here с синтаксисом строки подключения будучи dialect://user:[email protected]/dbname[?key=value..]

Надежда, что помогает

+0

@https: //stackoverflow.com/users/2382554/alex - Не могли бы вы посоветовать мне, как использовать драйвер jdbc для подключения сервера sybase? – Poonam

0

Вы можете также быть страдает от обновления вашего Версия SqlAlchemy. Начиная с последней версии (v1.0) вам необходимо явно указать ваш драйвер в строке подключения для Microsoft SQL Server.

См.: Изменено в версии 1.0.0: Соединения PyODBC на основе хоста теперь требуют явно указанного имени драйвера SQL Server. SQLAlchemy не может выбирать оптимальный по умолчанию здесь, поскольку он зависит от платформы и установленных драйверов.

http://docs.sqlalchemy.org/en/latest/dialects/mssql.html#hostname-connections

См: Connecting to database using SQLAlchemy

0

Я имел это сообщение об ошибке и установил ее, добавив в конце строки подключения:

"?driver=SQL+Server+Native+Client+10.0"