微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

使用 pyodbc 添加到 MS Access 数据库

如何解决使用 pyodbc 添加到 MS Access 数据库

我正在尝试添加到我创建的 Access 数据库中名为 Users 的表中。我正在使用以下代码来执行此操作(已从 here 复制):

import pyodbc
def createAccount():
    conn = pyodbc.connect(r"Driver={Microsoft Access Driver (*.mdb,*.accdb)};DBQ=myPath\User Database.accdb;")
    cursor = conn.cursor()
    cursor.execute("""
            INSERT INTO Users(Username,Password,Chips)
            VALUES("User 5","Pass 5",7800)""")
    conn.commit()

但我收到此错误

pyodbc.Error: ('07002','[07002] [Microsoft][ODBC Microsoft Access Driver] Too few parameters.
Expected 2. (-3010) (sqlExecDirectW)')

我看到其他帖子说要检查所有使用名称的拼写,那里没有任何问题。那么为什么这段代码不起作用?

解决方法

从 Access 应用程序本身 (MSACCESS.EXE) 中执行的 Access SQL 查询与通过 Access ODBC 驱动程序或 Access OLEDB 提供程序从外部应用程序执行的查询之间的默认行为存在一些细微差别。

在 Microsoft Access 内部,双引号 (") 和单引号 (') 均可用于分隔字符串文字。自 Access 的最早版本以来,情况一直如此。

但是,ODBC 驱动程序和 OLEDB 提供程序至少尝试更紧密地符合 ANSI SQL,因此使用单引号 (') 来分隔字符串文字,而使用双引号 (")用于分隔表名和列名。因此,"User 5" 将被解释为列名或参数名,具体取决于此类列是否实际存在。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。