Veritabanından belirli verileri çekip o verileri listeye aktarıyorum.
Burada düzenleyip, veritabanına geri atacağım ama doğru sıra ile yerleştirmeyi beceremiyorum. (Tabi başka yollarda olabilir)
Şurada verileri çekiyorum.
sorgu = imlec.execute("SELECT * FROM kelimeler WHERE Turkce LIKE '%-%'")
Lakin nasıl verileri doğru sıra ile gireceğimi ve nasıl belirli bir sütuna gireceğimi çözemedim.
Bu konu da kaynakarda çok yetersiz (detaysız).
Klasik bir biçimde INSERT INTO kelimeler VALUES () tarzı bir şey yapsam bile sırası doğru olmayacak. Çünkü kelimeleri seçerek aldı ve aynı sıraya göre yerleştirmeli.
Belirli sütuna özel veri işleme kısmını da anlamadım zaten.
Bu konu da yardımcı olursanız çok sevinirim. Teşekkürer.
Veri tabanından birkaç satırı örnek olarak atabilir misiniz? Bu değerler var olan bir sütun üzerine mi yoksa boş bir sütuna mı yazılacak? Bir de hangi veritabanına bağlanıyorsunuz?
Sütunların kimi boş, kimi dolu farzedelim. Niyetim iyice öğrenmek çünkü.
veritabanı = Uploadgram >veri.osmanli
Aslında anlatabileceğim ya da örnekleyebileceğim pek bir şey yok, çünkü soru basit ama Ama şöyle özetleyeyim:
Veritabanı:
id,isim,soyisim,memleket
Burada bir kişinin id,isim ve soyismi kayıtlı olsun ama memleketi eksik ya da hatalı olsun.
Bu eksikliği ya da hatayı doğru sıra ile yerleştirmek. Yani Mehmed’in ki Ahmed’e, Ahmed’in ki Muhammed’e kaymadan. Ahmed’in memleketini Ahmedin, Mehmed’in memleketini Mehmed’e, Muhammed’in memleketini ise Muhammed’e yazmalıyım.
arayüz tasarlamayı yapabiliyorsan 3 entry olan bir yer treeview yada listbox ile kolayca yapılabilir.
Verileri fetchall metodu ile alıp arayüzde listelersin, satırları 3 entrye gönderip düzenleme yaparsın. Onu db ye aktarmakta sqliteda update ile oluyor.
Youtube Traversy media desktop gui app with python tkinter diye videosu var. Ben sqlite işlemlerimi bu konudan faydalanarak yapıyorum.
INSERT INTO kullanmak veri tabanına yeni satırlar eklemek için kullanılıyor. Siz, var olan satırları güncellemek istiyorsunuz. Tüm satırları çektikten sonra bunu UPDATE etmeniz gerekiyor. UPDATE kullanırken de hangi satırın güncelleneceğini bildirmek için WHERE’den yararlanıyoruz.
Toparlayacak olursak: sorgu = imlec.execute("SELECT ID, Turkce FROM kelimeler WHERE Turkce LIKE '%-%'") sorgu.fetchall()
sorguda istediğiniz işlemleri yaptınız diyelim. Şimdi for döngüsü ile UPDATE işlemine geçebiliriz. for tablo_id,Turkce in sorgu: imlec.execute("UPDATE kelimeler SET Turkce=? WHERE ID=?", (Turkce,tablo_id))
Gördüğünüz gibi veriyi çekip, gerekli düzenlemeleri yaparak tekrar geriye bastım. Burada kontrol mekanizmasını da ID sütunu üzerinden yürüttüm.