Veritabanı gibi yoğun veri olan yerlerde, pratik çözümler genelde pek iş görmüyor.
QT mekanizması gereği, bu gibi işler için model tabanlı bir arabirim kullanıyor, Bunu öğrenmeye çalışmakta fayda var bence. Fakat bunu öğrenmenin yolu, SQL ve Tablo gibi nispeten karmaşık bir yapı yerine, daha basit bir şeyler üzerinden gitmek olacaktır. Mesela basitçe bir listview ile uğraşmak gibi. ItemDelegate vs. gibi mekanizmalara gerçekten kafa karıştırıcı oluyor. Sorunuza doğrudan cevap olmadığının farkındayım. Ama bir tavsiyede bulunmadan geçmek istemiyorum. Kullanıcı arabirimi ile veritabanını doğrudan bağlamanız, yani veritabanındaki verileri doğrudan kullanıcıya maniple ettirmeniz pek sağlıklı olmayacaktır. Araya bir "logic" katmanı eklemenizi tavsiye ederim. Yani, veritabanını okuyup yazan ve kullanıcıya -bu kullanıcı başka bir kodda olabilir- sunan bir ara katman. "Three-tier architecture" olarak ararsanız, bolca kaynak bulabilirsiniz. Sorunun özeline dönersek, qsqlrelationaltablemodel, bir tablo, yani çalışma tablosu değil, yani ekranda satır, sütunlar gösteren bir şey değil. Veri tabanını ifade eden bir model. Sizin bu modelden, inherit ederek yeni bir model geliştirmeniz mantıklı olur. Bu model, gui tablosuna, boş bir satır verir. Kullanıcı bu satırı doludurunca, o satırdaki veriler model.insertRecord(-1, qsqlrecord); Şeklinde eklenebilir. Bu genelde daha sorunsuz bir çalışma sağlar. Modele elle yeni bir satır ekleyip, bu doldurulunca setdata() çağrısı da iş görür fakat, sorun yaşatma ihtimali yüksektir. Daha somut bir şeyler söylemek için, ilgili kod akışını görmek gerekiyor.. On Thu, Aug 9, 2018 at 3:18 PM Dr. Mucibirahman İLBUĞA < [email protected]> wrote: > Merhabalar, > > SQLite tablosu ile bağlantılı (model) bir tableView var. Satırlar > şeklinde veri girişi yapmak istiyorum ama bir türlü güzel bir şey > bulamadım. Örnekler arasında "QSqlRelationalTableModel" örneği var ama > tam işin içinden çıkamadım. Satırlar geliyor da yeni satır eklerken > nasıl yapacağız? Yazdığın bilginin anında veritabanında güncellenmesini > nasıl yapacağız? Pratik bir şeyler yok mudur?... > > -- > Kolay gelsin, > Mucip:) > > _______________________________________________ > Linux-programlama mailing list > [email protected] > https://liste.linux.org.tr/mailman/listinfo/linux-programlama > Liste kurallari: http://liste.linux.org.tr/kurallar.php >
_______________________________________________ Linux-programlama mailing list [email protected] https://liste.linux.org.tr/mailman/listinfo/linux-programlama Liste kurallari: http://liste.linux.org.tr/kurallar.php
