python - 列 Unknown Firebird Python
问题描述
我正在尝试使用 python 和 tkinter 为 firebird 数据库制作 GUI。当我尝试将框中的输入写入数据库时,出现错误
fdb.fbcore.DatabaseError: ('Error while preparing SQL statement:\n- SQLCODE: -206\n- Dynamic SQL Error\n- SQL error code = -206\n- Column unknown\n- NUMBER\n- At line 1, column 99', -206, 335544569)
这是提交操作的代码:
simnumbber = "SIM NUMBER"
def submit():
# Database connection in the function
conn = fdb.connect(
host='localhost', database='C:/SIMCARDS.fdb', user='user', password='password')
# Cursor
cur = conn.cursor()
# Insert Into table
cur.execute("""INSERT INTO table ("NUMBER", simnumbber, "OPERATOR", "TYPE", "TARIFF", "DATA", "STATUS") VALUES (:number, :simnumber, :operator, :type, :tariff, :data, :status);""",
{
'number': simnumber.get(),
'simnumber': cardnumber.get(),
'operator': operator.get(),
'type': type.get(),
'tariff': tariff.get(),
'data': data.get(),
'status': status.get()
})
# Commit Cahanges
conn.commit()
# Close connection
conn.close()
# Clear Textboxes
simnumber.delete(0, END)
cardnumber.delete(0, END)
operator.delete(0, END)
type.delete(0, END)
tariff.delete(0, END)
data.delete(0, END)
status.delete(0, END)
解决方案
把这个留给任何必须做这样的事情的人。问题在于我在 VALUES 子句的 SQL 查询中提供的参数。Firebird 不知道 ':number' 是什么。所以固定查询是这样的:
cur.execute("""INSERT INTO cards (number,"SIM NUMBER",OPERATOR,TYPE,TARIFF,DATA,STATUS) VALUES (?,?,?,?,?,?,?);""", (simnumber.get(),cardnumber.get(),operator.get(), type.get(), tariff.get(), data.get(), status.get()))
推荐阅读
- wso2 - 通过 api 上下文将 api 列入黑名单的正确方法是什么?
- svg - Kivy:从 SVG 字符串制作内存中的 PNG 图像
- javascript - 如何根据对象的值过滤对象的属性?
- c++ - 需要在没有函数的情况下使用 3 个变量进行比较
- reactjs - 从一个 React 文件渲染一个“多”页面应用程序
- node.js - 有没有办法使用 mongo-topology-manager 创建 ReplSet
- mysql - c#我如何解决错误mysql the used command is not allowed 1148?
- python - 观察次数有限时的时间序列预测
- jakarta-ee - JEE Batch Job Specification with many optional Steps
- python - 如何在 Mac 上的 Python 中将 NEF(原始图像文件类型)转换为 JPG?