2009-04-20 12 views

cevap

26

Zaten pyodbc'u önerdiniz ve sizinle aynı fikirdeyim.

Bana en az sorun yaşadım; pymssql ve adodbapi kullandım ve bunlar istisnalar/oluşturulan sorunları attığında, kodu değiştirdim ve pyodbc ile değiştirdim ve sorunu çözdüm veya daha hızlı hata ayıklamak için daha iyi hata iletileri verdi.

Öncelikle bunu, MSSQL Sunucusu DB'lere bağlanmak için kullandığımı belirtmek gerekir.

17

Tüm python veritabanı erişimi için SQLAlchemy kullanıyorum. SQLAlchemy'ı tavsiye ederim.

SA, SQL sunucu veritabanlarına bağlanırken, başlığın altındaki pyodbc'yi kullanır. Diğer veritabanına bağlanmak için diğer DBAPI kitaplıklarını kullanır, örneğin cx_Oracle.

import sqlalchemy 

engine = sqlalchemy.create_engine('sqlite:///database.db') 
for r in engine.execute('SELECT * FROM T'): 
    print(r.OneColumn, r.OtherColumn) 

Ama sqlalchemy gerçek değeri ORM ve SQL expression language onun yatıyor: Normalde bir dbapi modülünü kullanmak gibi SQLAlchemy kullanılarak

Basit bir örnek. Bir göz atın, kullanmayı öğrenmek için çabaya değer.

+0

SQLAlchemy, iki satırdan fazla kod değiştirmeden odbc ve adodbapi arasında geçiş yapmamı çok kolaylaştırdı. –

+0

+1 - bunun için teşekkürler! –

1

Ben işte pyodbc kullanıyorum ve bu beni asla başarısızlığa uğratmadı (varius dbs var). Sağlam ve hızlı.

Etkin olarak sürdürülür ve bir python 3 sürümü yakında gelir.

Ödemeli destek içeren "kurumsal" yazılım istiyorsanız, mxODBC'u kullanabilirsiniz.

+0

pyodbc Windows python 3.1.2 için çalışmıyor :( –

+0

python 3 için resmi bir yapı yok :(bir tane de bekliyorum. Kendinizi inşa etmek zorunda olduğunuz bir gayri resmi var – hugo24

1
Python 3 şimdi pyodbc tarafından destekleniyor!
+3

Bu nasıl bir yanıt? T OP sorusunu ele alır. – Anoyz

0

turbodbc numaralı iğneyi verebilirsiniz. 1.1.1 sürümünden bu yana, resmi olarak Windows desteklemektedir. Yaptığın şey için pyodbc'den daha hızlı bir şans var.