Кто-нибудь знает, какие драйверы db-api 2.0 работают с IronPython? Если да, то кто-нибудь пробовал использовать его с SQLAlchemy, SQLObject или Django ORM?
IronPython db-api 2.0
Ответы (4)
Я знаю, что это очень поздний ответ, но я увидел вопрос только сегодня, поэтому я отвечаю на него сегодня. http://sourceforge.net/projects/adodbapi содержит полностью совместимый модуль db-api-2, который работает с АйронПитон. Его нельзя использовать в Windows, поскольку он использует классический ADO с вызовами COM, а не ADO.NET. [Я попробовал настоящую версию .NET, но она работала очень плохо. Вилка для него все еще существует, если кто-то захочет продолжить.] Вилка этого модуля была адаптирована для расширения django для MS-SQL. Я вернул эти приспособления обратно в основную вилку. Я не знаю, пытался ли кто-нибудь использовать результат в django, но он должен работать, если явно переключать paramstyle на «format».
импортировать adodbapi как базу данных
База данных.paramstyle = 'формат'
Вот несколько ответов для sqlalchemy:
http://groups.google.com/group/sqlalchemy/browse_thread/thread/ea3ee246680c9d14?pli=1
В конце темы кто-то пробовал бета-версию IronPython в сентябре прошлого года, и она работала.
Также здесь: обсуждение SqlAlchemy. а>
Поддержка jython, ironpython и других — это скорее дополнительная возможность, поскольку существующий код компиляции SQL можно использовать повторно.
Мне удалось заставить sqlalchemy работать с MSSQL 2008 на ironpython 2.7, выполнив следующие действия (с одним изменением): [https://code.google.com/p/pypyodbc/wiki/Enable_SQLAlchemy_on_IronPython][1]
Мне пришлось изменить последнюю строку ниже на шаге 4. удалив все, кроме pypyodbc
Шаг 4: Измените IronPython 2.7\Lib\site-packages\sqlalchemy\dialects\mssql__init__.py, в верхней строке импорта добавьте pypyodbc после mxodbc, например:
#from sqlalchemy.dialects.mssql import base, pyodbc, adodbapi, \
pymssql, zxjdbc, mxodbc, pypyodbc
from sqlalchemy.dialects.mssql import base, pypyodbc
Теперь вы можете использовать SQLAlchemy с кодом ниже:
import sqlalchemy
engine = sqlalchemy.create_engine('mssql+pypyodbc://MSSQL_DSN')
for row in engine.execute('select * from aTable'):
print (row)