0

このコードを使用して、アクセス (.mdb) データベースに接続します。

# -*- coding: latin-1 -*-
fileMDB = 'C:\\Python27\\OptimisateurLievre\\final\\Archives_PrevisionsESP_Août_2013.mdb'
param = "Driver={Microsoft Access Driver (*.mdb)};DBQ={%s};PWD={pw}" % fileMDB
con = odbc.connect(param)

次のエラーが表示されます。

pyodbc.Error: ('HY000', '[HY000] [Microsoft][Pilote ODBC Microsoft Access] ファイル名が正しくありません。(-1044) (SQLDriverConnect); [HY000] [Microsoft][Pilote ODBC Microsoft Access] ファイル名が正しくありません。(- 1044)')

この問題は、データベース ファイル名に û 文字が含まれていることが原因のようです。文字列と Unicode についての私の理解では、fileMDB は latin-1 でエンコードされた文字列です。私のコンピューターは latin-1 エンコーディングで実行されているため、ファイル名が間違っている理由がわかりません。

Windows XP と python 2.7 を使用しています。

ご協力ありがとうございました!

4

1 に答える 1

0

pyodbc は接続文字列を に変換しようとしているように見える'ascii'ため、0x7F より上の文字は無効です。

con = pyodbc.connect(param)

UnicodeDecodeError: 'ascii' コーデックは位置 84 のバイト 0xfb をデコードできません: 序数が範囲外です (128)

ただし、 pypyodbcを使用して動作させることができました:

# -*- coding: cp1252 -*-
import pypyodbc
fileMDB = r'C:\__tmp\test\Archives_PrevisionsESP_Août_2013.mdb'
param = "Driver={Microsoft Access Driver (*.mdb)};DBQ=" + fileMDB
con = pypyodbc.connect(param)
print 'Connection established.'
于 2013-11-08T09:10:10.997 に答える