среда, 24 сентября 2008 г.

Python + ODBC

Вот даже и не ожидал, что в стандартной поставке Python в (K)ubuntu 8.04 нет модуля для работы с ODBC. Немного погуглив обнаружил, что библиотек поддержки ODBC, по большому счету, всего две: mxODBC (платная) и pyodbc.
Выбрал pyodbc. Исходники можно скачать с сайта http://sourceforge.net/project/showfiles.php?group_id=162557, последняя версия pyodbc-2.0.58. Документация находится на сайте проекта http://pyodbc.sourceforge.net/docs.html. Библиотека поддерживает python DB API.
Скачанный архив распаковываем во временный каталог, переходим в него и собираем командой:

python setup.py build

И в подкаталоге build/lib.linux-i686-2.5 находим файл библиотеки - pyodbc.so.
Этот файл кладем в каталог проекта и можем работать с ODBC.

Пример:
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import pyodbc
con=pyodbc.connect("DSN=ContactOnLine;UID=user;PWD=passwd")
rows=cur.execute("select * from DOCS")
for row in rows:
print row.PP_CODE, row.PAYER.decode('cp1251'), row.GROUND.decode('cp1251')
con.close()

3 комментария:

Kawaikunee комментирует...

В целом это может пригодится для работы с удаленным MSSQL. Хотя я думаю, что pymssql намного проще и эффективнее.

mrraf комментирует...

pymssql оставил самые плохие впечатления,
1. bit (Null = 0)
2. Нет поддержки Blob
3. varchar обрезает до 255

для Hello world, его достаточно.

Konstantin Aleksandrov комментирует...

проще так:
sudo easy_install pyodbc