首页 > 解决方案 > Pyodbc 错误 07002 - 计数字段不正确或语法错误 - 从表单插入数据

问题描述

我一直在为人力资源部门构建一个网络应用程序,它将(希望)包括员工提交时间表的能力,我在尝试提交时间表时遇到了困难。连接字符串正在工作,因为我可以看到数据库中的其他数据。我一直在解决错误,但是这个 07002 错误是我无法弄清楚是什么原因造成的。

我尝试了两种不同的方法来使其正常工作。这是我的 app.py 文件中的第一次尝试-

@app.route('/timesheet', methods=['GET', 'POST'])
def employee_timesheet():
    if request.method == "POST":
        employee_id = request.form['employee_id']
        department = request.form['department']
        mondaystart = request.form['mondaystart']
        mondayend = request.form['mondayend']
        tuesdaystart = request.form['tuesdaystart']
        tuesdayend = request.form['tuesdayend']
        wednesdaystart = request.form['wednesdaystart']
        wednesdayend = request.form['wednesdayend']
        thursdaystart = request.form['thursdaystart']
        thursdayend = request.form['thursdayend']
        fridaystart = request.form['fridaystart']
        fridayend = request.form['fridayend']
        saturdaystart = request.form['saturdaystart']
        saturdayend = request.form['saturdayend']        
        result = request.form
        cursor = cnxn.cursor()          
        cursor.execute('''INSERT INTO dbo.submitted_timesheet (employee_id, department, mondaystart, mondayend, tuesdaystart, tuesdayend, wednesdaystart, wednesdayend, thursdaystart, thursdayend, fridaystart, fridayend, saturdaystart, saturdayend,) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?)''')                
        cnxn.commit()
        flash("Your form was successfully submitted")
        print("Form data submitted")
        return redirect (url_for('success.html', result=result))
        
    return render_template("staff_timesheets.html")

那么另一种方式是——

@app.route('/timesheet', methods=['GET', 'POST'])
def employee_timesheet():
    if request.method == "POST":
        employee_id = request.form['employee_id']
        department = request.form['department']
        mondaystart = request.form['mondaystart']
        mondayend = request.form['mondayend']
        tuesdaystart = request.form['tuesdaystart']
        tuesdayend = request.form['tuesdayend']
        wednesdaystart = request.form['wednesdaystart']
        wednesdayend = request.form['wednesdayend']
        thursdaystart = request.form['thursdaystart']
        thursdayend = request.form['thursdayend']
        fridaystart = request.form['fridaystart']
        fridayend = request.form['fridayend']
        saturdaystart = request.form['saturdaystart']
        saturdayend = request.form['saturdayend']
        insert_query = '''INSERT INTO submitted_timesheet (employee_id, department, mondaystart, mondayend, tuesdaystart, tuesdayend, wednesdaystart, wednesdayend, thursdaystart, thursdayend, fridaystart, fridayend, saturdaystart, saturdayend,) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?)'''        
        result = request.form
        cursor = cnxn.cursor()           
        cursor.execute(insert_query, values)                
        cnxn.commit()
        flash("Your form was successfully submitted")
        print("Form data submitted")
        return redirect (url_for('success.html', result=result))
        
    return render_template("staff_timesheets.html")

如果我提交时间表,我会在标题中看到 Pyodbc 错误。一切都在列名和类型方面匹配。HTML 表单也应该没问题,但如果需要上下文,可以发布它。

有什么想法我哪里出错了吗?

谢谢!

标签: pythonsql-serverformsflaskpyodbc

解决方案


推荐阅读