2015-02-25 28 views
6

Bir veritabanına pyodbc ile erişimde sorun yaşıyorum. Ben özdeş yakın görünen diğer örnek kodları bu işin maden gördüm:Pyodbc kullanarak Python'a MS Access nasıl bağlanır

import pyodbc 
cnxn = pyodbc.connect('DRIVER={SQL Server};SERVER=localhost;DATABASE=PYODBC.accdb;UID=me;PWD=pass') 
cursor = cnxn.cursor() 

cursor.execute("SELECT Forename FROM Student") 
row = cursor.fetchone() 
if row: 
    print(row) 

Makinem pencereler 7 home premium 64 bit çalışıyor. Microsoft ofisim 2010 var; 32-bit Python 3.3 çalıştırıyorum; 32-bit

Neyin yanlış olduğuna dair bir fikrim yok, bir hata mesajı bile almadım, kabuk açılır, ancak hiçbir şey olmaz. Herhangi bir yardım,

+0

ODBC Sürücüsü SQL Server neden bir Access veritabanı belirtiyorsunuz? Ve PYODBC.accdb adlı veritabanı nedir? Not: Access bir dosya sunucusu veritabanı iken SQL Server bir istemci sunucu veritabanıdır. Farklı sürücüler ve bağlantı parametreleri kullanıyorlar. – Parfait

+0

Lütfen daha fazla ayrıntı ile sorunuz [değiştir]. Makinenizde Microsoft Office (veya belki de sadece Microsoft Access) yüklü mü? Eğer öyleyse, lütfen sürümü (2013 ?, 2010 ?, ...?) Ve 32-bit mi, yoksa 64-bit mi olduğunu belirtiniz. Ayrıca 32 bit veya 64 bit Python çalıştırıp çalıştırmadığınızı da bize bildirin. –

+0

@GordThompson Soruya daha fazla ayrıntı ekledim, üzgünüm başlangıçta koymam gerekirdi. – Michael

cevap

8

için büyük bir memnuniyetle karşılandı. Hem Microsoft Office hem de Python'un 32 bit sürümlerini kullandığınızdan, doğru bağlantı dizesine sahip olduğunuzda gitmekte fayda var. Aşağıdaki gibi olmalıdır:

connStr = (
    r"DRIVER={Microsoft Access Driver (*.mdb, *.accdb)};" 
    r"DBQ=C:\full\path\to\your\PYODBC.accdb;" 
    ) 
cnxn = pyodbc.connect(connStr) 
+0

Bu benim sorunumu çözdü, çok teşekkür ederim! – Michael

İlgili konular