veri = sqlite3.connect('IBCKayıt')
v = veri.cursor()
v.execute("SELECT numsıra FROM kayıtlar WHERE EXISTS(SELECT * FROM kayıtlar WHERE numsıra)")
record = v.fetchall()
if numaraentry.get() in record:
messagebox.showinfo("UYARI","Bu IBC Zaten Var")
if numaraentry.get() not in record:
v.execute("INSERT INTO kayıtlar VALUES (:numsıra, :koruyucutarih, :numunedurumm, :kullandurumm)",
{'numsıra':numaraentry.get(),
'koruyucutarih':tarıhgırıs,
'numunedurumm':secılmıs1.get(),
'kullandurumm':secılmıs.get()
})
messagebox.showinfo("UYARI","Kayıt İşlemi Başarılı.")
veri.commit()
veri.close()
I want it to give a warning when the same data is entered, but when I enter the same data, it does not give a warning. What do you think is the solution?
-I'm new to the form, I guess I don't know how to open a topic, sorry.
CodePudding user response:
Your first query doesn't make much sense; you'll want to use WHERE
there.
Something like
veri = sqlite3.connect("IBCKayıt")
num = numaraentry.num()
v = veri.cursor()
v.execute("SELECT numsıra FROM kayıtlar WHERE numsıra = ? LIMIT 1", (num,))
records = v.fetchall()
if records: # had a matching row, show error
messagebox.showinfo("UYARI", "Bu IBC Zaten Var")
else:
v.execute(
"INSERT INTO kayıtlar VALUES (:numsıra, :koruyucutarih, :numunedurumm, :kullandurumm)",
{
"numsıra": num,
"koruyucutarih": tarıhgırıs,
"numunedurumm": secılmıs1.num(),
"kullandurumm": secılmıs.num(),
},
)
veri.commit()
messagebox.showinfo("UYARI", "Kayıt İşlemi Başarılı.")
veri.close()
should do the trick.