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

Cevap