Merhaba ben bir araç kiralama otoamasyonu yazıyorum fakat şöyle bir işin içinden çıkamıyorum.Kullanıcı bir araç plakası girdiğinde eğer o benim veri tabanımda var ise kayıt olmasını istemiyorum. Bu konuda yardımlarınızı bekliyorum
Veritabanı olarak ne kullandığınızı belirtmemişsiniz. Belki MySQL belki Microsoft Access. INSERT IGNORE INTO table anahtar sözcükleri ile arama yapmanızı öneririm.
DBSQL kullanıyorum basit bir sistem zaten.
INSERT INTO yerine INSERT OR IGNORE INTO sorgusu ile çalışmak
bunu sağlayabilir.
nasıl sağlayabilir internette baktığımda pek anlayamadım durumu
mesela yazdığım metot bu
def sorgula(self):
etiket.execute(“SELECT TC FROM musteri WHERE TC =?”,(self.tcgirdi,))
for i in etiket.fetchall():
if self.tcgirdi == i[0]:
QMessageBox.information(self,“Bilgi”,“Kullanıcı kayıt edilemez”)
baglanti.commit()
Daha sonra benim bunu if içinde çağırdığımda metotun çalışmasını istiyorum bunu nasıl sağlarım
Benim demek istediğim şey, "eğer kayıt mevcutsa tekrar oluşturmama işi"ni Python’ın içinde
eğer veritabani.kayitlari[0] == yeni_kayit:
mesaj("Kullanıcı kayıt edilemez")
gibi bir şekilde yapmak yerine, veritabanına bir sorgu gönderip kaydı oluşturacağınız INSERT INTO tablo_adi (ad, soyad, tc) VALUES ('Ali', 'Veli', 1111111111); aşamasında halletmek. Bununla ilgili olarak da INSERT OR REPLACE INTO veya INSERT OR IGNORE INTO komutları işe yarayacaktır.
sec = self.plakagirdi
fetch = etiket.execute(“Select Plaka From araclar WHERE Plaka = ?”,(sec,))
data = fetch.fetchall()
elif len(data) != 0:
QMessageBox.information(self,"Bilgilendirme","Bu Araç Zaten Sistemde Mevcut !")
Böyle bir çözüm buldum işe yaradı.En azından iş görüyor.