Access字段名称包含变音符号时出现pyodbc错误

时间:2013-11-24 15:17:59

标签: python ms-access pyodbc

我正在使用pyodbc python模块。

当我使用SELECT = "SELECT k.Poznámka as poznamka from karta as k"时,我收到错误

错误:('07002','[07002] [Microsoft] [ODBC Microsoft Access驱动程序]参数太少。预期1.(-3010)(SQLExecDirectW)')

问题是名字“Poznámka”和“á”。当我使用相同的选择与字段标题没有变音符号例如k.Name一切正常。

请问这是什么?

1 个答案:

答案 0 :(得分:1)

对于它的价值,下面的代码对我没有错误:

# -*- coding: cp1252 -*-
import pyodbc
cnxn = pyodbc.connect('DRIVER={Microsoft Access Driver (*.mdb, *.accdb)};DBQ=C:\\Users\\Public\\Database1.accdb;')
cursor = cnxn.cursor()
cursor.execute("SELECT k.Poznámka as poznamka from karta as k")
while 1:
    row = cursor.fetchone()
    if not row:
        break
    print row.poznamka
cnxn.close()

修改

我的Python源文件编码为UTF-8,以下内容对我有用:

# -*- coding: UTF-8 -*-
import pyodbc
cnxn = pyodbc.connect('DRIVER={Microsoft Access Driver (*.mdb, *.accdb)};DBQ=C:\\Users\\Public\\Database1.accdb;')
cursor = cnxn.cursor()
sql = u"SELECT k.Poznámka as poznamka from karta as k"
cursor.execute(sql.encode('cp1252'))
while 1:
    row = cursor.fetchone()
    if not row:
        break
    print row.poznamka
cnxn.close()