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.