Python,tkinter проблема в работе приложения

Здравствуйте уважаемые программисты. Возникла ошибка при которой программа перестала работать Описываю изменения после которых перестала работать программа.. Подключил библиотеку SQLLite 3, расписал код при котором введенные данные(данные вводяться в окно ввода данных("Добавить") заносяться в таблицу и базу данных). После этих изменений программа перестала запускаться(выдает в консоли ошибку) Я полный профан в программировании по этому не могу сказать точно в чем ошибка,просто скопируйте мой код и посмотрите что не так,я уже просто второй день не могу понять что тут не так.. а сроки уже поджимают,буду очень благодарен за помощь) Очень сильно прошу вам помочь,желательно было бы проверить так же(если ошибку сможете устранить) вносяться ли данные в базу данных.

Так же вот выводимая информация из консоли:

        Exception in Tkinter callback
Traceback (most recent call last):
  File "C:\Users\XX10\AppData\Local\Programs\Python\Python39\lib\tkinter\__init__.py", line 1885, in __call__
    return self.func(*args)
  File "C:\Users\XX10\PycharmProjects\untitled7\venv\kuhk.py", line 251, in <lambda>
    btn_open_dialog4 = tk.Button(toolbar1, text="Протокол эвакуации", command=lambda: self.open_dialog4(), bg="#d7d8e0", bd=0,
  File "C:\Users\XX10\PycharmProjects\untitled7\venv\kuhk.py", line 239, in open_dialog4
    Protocol()
  File "C:\Users\XX10\PycharmProjects\untitled7\venv\kuhk.py", line 132, in __init__
    self.init_Protocol()
  File "C:\Users\XX10\PycharmProjects\untitled7\venv\kuhk.py", line 141, in init_Protocol
    db = DB()
  File "C:\Users\XX10\PycharmProjects\untitled7\venv\kuhk.py", line 436, in __init__
    self.v.execute(
sqlite3.OperationalError: near ")": syntax error

Я немного потестировал свой код и понял что ошибку выдает даже на рабочую версию приложения(сделал откат кода до того момента когда он запускался), и на консоли указывается все те же самые ошибки,я создал новый проект перенес работающий раньше код и все тоже самое.. Новый код(на который ожидается помощь с починкой окон):

   import sqlite3
import tkinter as tk
from tkinter import ttk



class Main(tk.Frame):
    def __init__(self, root):
        super().__init__(root)
        self.init_main()

    def init_main(self):
        toolbar = tk.Frame(self, bg="#d7d8e0", bd=10)
        toolbar.pack(side=tk.TOP, fill=tk.X)

        btn_open_dialog1 = tk.Button(toolbar, text="Заявка", command=lambda:self.open_dialog1(), bg="#d7d8e0", bd=0,
                                      compound=tk.LEFT)
        btn_open_dialog1.pack(side=tk.LEFT)

        btn_open_dialog2 = tk.Button(toolbar, text="ЗаявкаГАИ", command=lambda:self.open_dialog2(), bg="#d7d8e0", bd=0,
                                     compound=tk.LEFT)
        btn_open_dialog2.pack(side=tk.LEFT)

        btn_open_dialog3 = tk.Button(toolbar, text="Администратор", command=lambda: self.open_dialog3(), bg="#d7d8e0",
                                     bd=0, compound=tk.LEFT)
        btn_open_dialog3.pack(side=tk.LEFT)

    def open_dialog2(self):
        ZaiavkaGAI()

    def open_dialog1(self):
        Zaiavka()

    def open_dialog3(self):
        Admin()



class Sotrudniki(tk.Toplevel):
    def __init__(self):
        super().__init__(root)
        self.init_Sotrudniki()

    def open_dialog8(self):
        Dobavlenie_Sotrudnika()

    def init_Sotrudniki(self):
        self.title("Сотрудники")
        self.geometry("600x420+400+300")
        self.resizable(False, False)
        db = DB()
        self.db = db

        toolbar2 = tk.Frame(self, bg='#d8d9e9', bd=0)
        toolbar2.pack(side=tk.TOP, fill=tk.X)
        btn_open_dialog8 = tk.Button(toolbar2, text="Добавить сотрудника", command=lambda: self.open_dialog8(),
                                     bg="#d7d8e0", bd=0,
                                     compound=tk.LEFT)
        btn_open_dialog8.pack(side=tk.LEFT)

        self.grab_set()
        self.focus_set()

        self.tree = ttk.Treeview(self, columns=("ID", "FIO driver", "nomber ud", "nomber pass", "age jods", ), height=15,
                                 show="headings")
        self.tree.column("ID", width=20, anchor=tk.CENTER)
        self.tree.column("FIO driver", width=150, anchor=tk.CENTER)
        self.tree.column("nomber ud", width=150, anchor=tk.CENTER)
        self.tree.column("nomber pass", width=120, anchor=tk.CENTER)
        self.tree.column("age jods", width=170, anchor=tk.CENTER)

        self.tree.heading("ID", text = "ID")
        self.tree.heading("FIO driver", text="ФИО водителя эвак.")
        self.tree.heading("nomber ud", text="Номер удостоверения")
        self.tree.heading("nomber pass", text="Номер паспорта")
        self.tree.heading("age jods", text="Трудовой стаж")
        self.tree.pack()

    def records2(self,FIO_driver,entry_nomber_ud,entry_nomber_pass,entry_entry_age_jobs):
        self.db.insert_Protocol(FIO_driver,entry_nomber_ud,entry_nomber_pass,entry_entry_age_jobs)

    def viev_records2(self):
        self.db.c.execute("""SELECT * FROM ivacuator""")
        [self.tree.delete(i) for i in self.tree.get_children()]
        [self.tree.insert("","end",)]


class ZaiavkiADM(tk.Toplevel):
    def __init__(self):
         super().__init__(root)
         self.init_ZaiavkiADM()

    def init_ZaiavkiADM(self):
        self.title("Заявления на эвакуацию")
        self.geometry("797x420+400+300")
        self.resizable(False, False)
        db = DB()
        self.db = db

        self.grab_set()
        self.focus_set()

        self.tree = ttk.Treeview(self, columns=("ID", "FIO driver", "nomber ud", "nomber pass", "nomber car","Data",
                                                "Vid"),
                                 height=15,show="headings")
        self.tree.column("ID", width=25, anchor=tk.CENTER)
        self.tree.column("FIO driver", width=120, anchor=tk.CENTER)
        self.tree.column("nomber ud", width=135, anchor=tk.CENTER)
        self.tree.column("nomber pass", width=120, anchor=tk.CENTER)
        self.tree.column("nomber car", width=120, anchor=tk.CENTER)
        self.tree.column("Data", width=150, anchor=tk.CENTER)
        self.tree.column("Vid", width=150, anchor=tk.CENTER)

        self.tree.heading("ID", text="ID")
        self.tree.heading("FIO driver", text="ФИО водителя")
        self.tree.heading("nomber ud", text="Номер удостоверения")
        self.tree.heading("nomber pass", text="Номер паспорта")
        self.tree.heading("nomber car", text="Номер машины")
        self.tree.heading("Data", text="Дата подачи заявления")
        self.tree.heading("Vid", text="Вид заявления")
        self.tree.pack()
    def records3(self,FIO_driver,entry_ud,entry_pass,entry_nomder_car):
        self.db.insert_Zaiavki(FIO_driver,entry_ud,entry_pass,entry_nomder_car)

    def records4(self,FIO_driver,entry_ud,entry_pass,entry_nomder_car):
        self.db.insert_Zaiavki(FIO_driver,entry_ud,entry_pass,entry_nomder_car)


class Protocol(tk.Toplevel):
    def __init__(self):
        super().__init__()
        self.init_Protocol()

    def open_dialog7(self):
        Dobavlenie_Protocol()

    def init_Protocol(self):
        self.title("Протокол")
        self.geometry("900x420+400+300")
        self.resizable(True, True)
        db = DB()
        self.db = db

        '''self.entry_description = ttk.Entry(self)
        self.entry_description.place(x=400, y=50)''' "Добавление записи"

        self.grab_set()
        self.focus_set()
        toolbar2 = tk.Frame(self, bg='#d8d9e9', bd=0)
        toolbar2.pack(side=tk.TOP, fill=tk.X)
        btn_open_dialog7 = tk.Button(toolbar2, text="Заполнить протокол эвакуации", command=lambda: self.open_dialog7(),
                                     bg="#d7d8e0", bd=0,
                                     compound=tk.LEFT)
        btn_open_dialog7.pack(side=tk.LEFT)
        self.tree = ttk.Treeview(self, columns =("ID", "nomber car arrest", "FIO driver", "nomber car","adress arest",
                                                 "adres stop", "Data arrest"), height = 15,
                                 show="headings")
        self.tree.column("ID", width=20, anchor=tk.CENTER)
        self.tree.column("nomber car arrest", width=150, anchor=tk.CENTER)
        self.tree.column("FIO driver", width=150, anchor=tk.CENTER)
        self.tree.column("nomber car", width=120, anchor=tk.CENTER)
        self.tree.column("adress arest", width=170, anchor=tk.CENTER)
        self.tree.column("adres stop", width=170, anchor=tk.CENTER)
        self.tree.column("Data arrest", width=150, anchor=tk.CENTER)

        self.tree.heading("ID", text = "ID")
        self.tree.heading("nomber car arrest", text="Номер эвак. машины")
        self.tree.heading("FIO driver", text="ФИО водителя")
        self.tree.heading("nomber car", text="Номер эвакуатора")
        self.tree.heading("adress arest", text="Место эвакуации")
        self.tree.heading("adres stop", text="Место доставки")
        self.tree.heading("Data arrest", text="Дата эвакуации")
        self.tree.pack()

    def records1(self,nomber_car_driver,entry_FIO,entry_nomber_car_arrest,entry_adress_arest,entry_jail_adress):
        self.db.insert_Protocol(nomber_car_driver,entry_FIO,entry_nomber_car_arrest,entry_adress_arest,entry_jail_adress)



class ZaiavkaGAI(tk.Toplevel):
    def __init__(self):
        super().__init__(root)
        self.init_ZaiavkaGAI()

    def init_ZaiavkaGAI(self):
        self.title("Заполнить заявку ГАИ")
        self.geometry("400x320+400+300")
        self.resizable(False, False)
        self.view = app

        label1 = tk.Label(self,text="Сотрудник ГАИ", fg="#eee", bg="#333")
        label1.pack()

        label_FIO_driver = tk.Label(self, text = "ФИО водителя")
        label_FIO_driver.place(x=80, y=30)

        label_entry_ud = tk.Label(self, text = "Номер удостоверения")
        label_entry_ud.place(x=60, y=60)

        label_entry_pass = tk.Label(self, text = "Номер паспорта")
        label_entry_pass.place(x=80, y=90)

        label_entry_nomder_car = tk.Label(self, text = "Номер машины")
        label_entry_nomder_car.place(x=80, y=120)


        self.entry_FIO_driver = ttk.Entry(self)
        self.entry_FIO_driver.place(x=190, y=30)

        self.entry_ud = ttk.Entry(self)
        self.entry_ud.place(x=190, y=60)

        self.entry_pass = ttk.Entry(self)
        self.entry_pass.place(x=190, y=90)

        self.entry_nomder_car = ttk.Entry(self)
        self.entry_nomder_car.place(x=190, y=120)


        btn_cansel = ttk.Button(self, text="Закрыть", command=self.destroy)
        btn_cansel.place(x=240, y=250)

        btn_add = ttk.Button(self, text="Добавить")
        btn_add.place(x=70, y=250)
        btn_add.bind("<button-1>", lambda event: self.view.records3(self.FIO_driver,self.entry_ud,self.entry_pass,
                                                                    self.entry_nomder_car))

        self.grab_set()
        self.focus_set()



class Admin(tk.Toplevel):
    def __init__(self):
        super().__init__()
        self.init_Admin()

    def open_dialog4(self):
        Protocol()

    def open_dialog5(self):
        Sotrudniki()

    def open_dialog6(self):
        ZaiavkiADM()


    def init_Admin(self):
        toolbar1 = tk.Frame(self, bg='#d8d9e9', bd=0)
        toolbar1.pack(side=tk.TOP, fill=tk.X)
        btn_open_dialog4 = tk.Button(toolbar1, text="Протокол эвакуации", command=lambda: self.open_dialog4(), bg="#d7d8e0", bd=0,
                                     compound=tk.LEFT)
        btn_open_dialog4.pack(side=tk.TOP)
        btn_open_dialog5 = tk.Button(toolbar1, text="Сотрудники", command=lambda: self.open_dialog5(), bg="#d7d8e0", bd=0,
                                     compound=tk.LEFT)
        btn_open_dialog5.pack(side=tk.TOP)

        btn_open_dialog6 = tk.Button(toolbar1, text="Заявления на эвакуацию", command=lambda: self.open_dialog6(),
                                     bg="#d7d8e0", bd=0,
                                     compound=tk.LEFT)
        btn_open_dialog6.pack(side=tk.TOP)

class Zaiavka(tk.Toplevel):
    def __init__(self):
        super().__init__()
        self.init_Zaiavka()

    def init_Zaiavka(self):
        self.title("Заполнить заявку")
        self.geometry("400x320+400+300")
        self.resizable(False, False)
        self.view = app
        label1 = tk.Label(self,text="Частное лицо", fg="#eee", bg="#333")
        label1.pack()

        label_FIO_driver = tk.Label(self, text="ФИО водителя")
        label_FIO_driver.place(x=80, y=30)

        label_entry_ud = tk.Label(self, text="Номер удостоверения")
        label_entry_ud.place(x=50, y=60)

        label_entry_pass = tk.Label(self, text="Номер паспорта")
        label_entry_pass.place(x=80, y=90)

        label_entry_nomder_car = tk.Label(self, text="Номер машины")
        label_entry_nomder_car.place(x=80, y=120)


        self.FIO_driver = ttk.Entry(self)
        self.FIO_driver.place(x=180, y=30)

        self.entry_ud = ttk.Entry(self)
        self.entry_ud.place(x=180, y=60)

        self.entry_pass = ttk.Entry(self)
        self.entry_pass.place(x=180, y=90)

        self.entry_nomder_car = ttk.Entry(self)
        self.entry_nomder_car.place(x=180, y=120)


        self.grab_set()
        self.focus_set()

        btn_cansel = ttk.Button(self, text = "Закрыть", command =self.destroy)
        btn_cansel.place(x=240, y=250)

        btn_add = ttk.Button(self, text="Добавить")
        btn_add.place(x=70, y=250)
        btn_add.bind("<button-1>", lambda event: self.view.records4(self.entry_FIO_driver,self.entry_ud,self.entry_pass,
                                                                    self.entry_nomder_car))

class Dobavlenie_Protocol(tk.Toplevel):
    def __init__(self):
        super().__init__()
        self.init_Dobavlenie_Protocol()

    def init_Dobavlenie_Protocol(self):
        self.title("Заполнить протокол")
        self.geometry("400x320+400+300")
        self.resizable(False, False)
        self.view = app

        label_nomber_car_driver = tk.Label(self, text="Номер машины")
        label_nomber_car_driver.place(x=80, y=30)

        label_entry_FIO = tk.Label(self, text="ФИО водителя")
        label_entry_FIO.place(x=80, y=60)

        label_entry_nomber_car_arrest = tk.Label(self, text="Номер эвак. машины")
        label_entry_nomber_car_arrest.place(x=55, y=90)

        label_entry_adress_arest = tk.Label(self, text="Место эвакуации")
        label_entry_adress_arest.place(x=80, y=120)

        label_entry_jail_adress = tk.Label(self, text="Место доставки")
        label_entry_jail_adress.place(x=80, y=150)

        label_entry_Data = tk.Label(self, text="Дата эвакуации")
        label_entry_Data.place(x=80, y=180)

        self.entry_nomber_car_driver = ttk.Entry(self)
        self.entry_nomber_car_driver.place(x=180, y=30)

        self.entry_FIO = ttk.Entry(self)
        self.entry_FIO.place(x=180, y=60)

        self.entry_nomber_car_arrest = ttk.Entry(self)
        self.entry_nomber_car_arrest.place(x=180, y=90)

        self.entry_adress_arest = ttk.Entry(self)
        self.entry_adress_arest.place(x=180, y=120)

        self.entry_jail_adress = ttk.Entry(self)
        self.entry_jail_adress.place(x=180, y=150)

        self.entry_Data = ttk.Entry(self)
        self.entry_Data.place(x=180, y=180)

        btn_cansel = ttk.Button(self, text="Закрыть", command=self.destroy)
        btn_cansel.place(x=240, y=250)

        btn_add = ttk.Button(self, text="Добавить")
        btn_add.place(x=70, y=250)
        btn_add.bind("<button-1>",lambda event: self.view.records1(self.entry_nomber_car_driver,self.entry_FIO,
                                                                  self.entry_nomber_car_arrest,self.entry_adress_arest,
                                                                  self.entry_jail_adress,self.entry_Data))

        self.grab_set()
        self.focus_set()


class Dobavlenie_Sotrudnika(tk.Toplevel):
    def __init__(self):
        super().__init__()
        self.init_Dobavlenie_Sotrudnika()




    def init_Dobavlenie_Sotrudnika(self):
        self.title("Добавить сотрудника")
        self.geometry("400x320+400+300")
        self.resizable(False, False)
        self.view = app

        label_FIO_driver = tk.Label(self, text="ФИО сотрудника")
        label_FIO_driver.place(x=80, y=30)

        label_entry_nomber_ud = tk.Label(self, text="Номер удостоверения")
        label_entry_nomber_ud.place(x=50, y=60)

        label_entry_nomber_pass = tk.Label(self, text="Номер паспорта")
        label_entry_nomber_pass.place(x=80, y=90)

        label_entry_age_jobs = tk.Label(self, text="Трудовой стаж")
        label_entry_age_jobs.place(x=90, y=120)


        self.FIO_driver = ttk.Entry(self)
        self.FIO_driver.place(x=180, y=30)

        self.entry_nomber_ud = ttk.Entry(self)
        self.entry_nomber_ud.place(x=180, y=60)

        self.entry_nomber_pass = ttk.Entry(self)
        self.entry_nomber_pass.place(x=180, y=90)

        self.entry_entry_age_jobs = ttk.Entry(self)
        self.entry_entry_age_jobs.place(x=180, y=120)


        btn_cansel = ttk.Button(self, text="Закрыть", command=self.destroy)
        btn_cansel.place(x=240, y=250)

        btn_add = ttk.Button(self, text="Добавить")
        btn_add.place(x=70, y=250)
        btn_add.bind("<button-1>", lambda event: self.view.records1(self.FIO_driver,self.entry_nomber_ud,
                                                                    self.entry_nomber_pass,
                                                                    self.entry_entry_age_jobs))

        self.grab_set()
        self.focus_set()



class DB:
    def __init__(self):
        self.conn = sqlite3.connect("ivacuator.db")
        self.c =  self.conn.cursor()
        self.c.execute(
            """CREATE TABLE IF NOT EXISTS Sotrudniki (id integer  primary key,FIO_driver text,entry_nomber_ud blob,
            entry_nomber_pass blob,entry_entry_age_jobs integer)""")
        self.conn.commit()
        self.v = self.conn.cursor()
        self.v.execute(
            """CREATE TABLE IF NOT EXISTS Protocol (id integer  primary key,entry_FIO text,
            entry_nomber_car_arrest blob,entry_adress_arest blob, entry_jail_adress blob,)""")
        self.conn.commit()
        self.b = self.conn.cursor()
        self.b.execute(
            """CREATE TABLE IF NOT EXISTS Zaiavki (id integer  primary key,FIO_driver text,entry_ud blob,
            entry_pass blob, entry_nomder_car blob)""")
        self.conn.commit()

    def insert_Protocol(self,nomber_car_driver,entry_FIO,entry_nomber_car_arrest,entry_adress_arest,entry_jail_adress):
        self.v.execute("""INSERT INTO ivacuator(nomber_car_driver,entry_FIO,entry_nomber_car_arrest,entry_adress_arest
                        entry_jail_adress) VALUES (?,?,?,?,?)""",(nomber_car_driver,entry_FIO,entry_nomber_car_arrest,
                                                                  entry_adress_arest,entry_jail_adress))
        self.conn.commit()

    def insert_Sotrudniki(self,FIO_driver,entry_nomber_ud,entry_nomber_pass,entry_entry_age_jobs):
        self.c.execute("""INSERT INTO ivacuator(FIO_driver,entry_nomber_ud,entry_nomber_pass,entry_entry_age_jobs)VALUES(?,?,?,?)""",
                       (FIO_driver,entry_nomber_ud,entry_nomber_pass,entry_entry_age_jobs))
        self.conn.commit()

    def insert_Zaiavki(self,FIO_driver,entry_ud,entry_pass,entry_nomder_car):
        self.b.execute("""INSERT INTO ivacuator(FIO_driver,entry_ud,entry_pass,entry_nomder_car)VALUES(?,?,?,?)""",
                       (FIO_driver,entry_ud,entry_pass,entry_nomder_car))
        self.conn.commit()



if __name__ == "__main__":
    root = tk.Tk()
    app = Main(root)
    app.pack(side=tk.TOP, fill=tk.X)
    root.title("Эвакуаторное агенство")
    root.geometry("450x250+100+200")
    root.resizable(False, False)
    root.mainloop()

Ответы (0 шт):