[gl-como] [OT] Programmazione Qt C++

~redShadow~ redshadow@hackzine.org
Dom 20 Mar 2011 23:20:36 CET


On Sun, 2011-03-20 at 22:50 +0100, Riccardo Penco (SCASI) wrote: 
> ciao a tutti,
> 
> scusate lo spam ma mi risulta che qualcuno in lista utilizzi le Qt, ergo
> provo a chiedere e magari avrò risposta.
> 
> La faccio molto breve. Il problema è la gestione dei campi foreign key
> nelle schede legate a tabelle di database.
> 
> [cut]

Uso le Qt con Python, ma bene o male non dovrebbe esserci differenza in
questo caso..

Non mi é mai capitato di usare roba QSql* perché in genere preferisco
crearmi i miei modelli e gestire il db con roba "fatta apposta", tipo
SQLAlchemy.. quindi alla fine sono io che scrivo le query.

Anyways:

Dalla doc, leggo esplicitamente: "If a relational table contains keys
that refer to non-existent rows in the referenced table, the rows
containing the invalid keys will not be exposed through the model. The
user or the database is responsible for keeping referential integrity."

..immagino che lo stesso valga, appunto, anche per il caso di campo
nullo (e se veramente genera query brutte come "select .. from table,
table2, table3" ció conferma la mia tesi che é meglio farsi da se i
modelli :))

Comunque, i metodi che mi vengono in mente sono:

1. Crea un nuovo modello, magari sub-classando QSqlTableModel (o forse
anche con un po' di monkeypatching direttamente su
QSqlRelationalTableModel ma non so quanto sia buona cosa..)

2. Aggiungi un comune tipo (idcomune=NULL,comune='') (ma se idcomune é
NOT NULL mi sa che non si puó fare, a meno di dargli un id tipo 0 /
-1 / ... e fare un update persone set idpersona=0 where idpersona=NULL)

3. Conosci http://stackoverflow.com/ ? Farei una prova a chiedere anche
li, magari a qualcun altro é capitato lo stesso problema e ha una
soluzione sottomano..

Ciao

-- 
Samuele ~redShadow~ Santi
----------------------------------------------------------------
     redshadow[at]hackzine.org - redshadowhack[at]gmail.com

  Blog: http://hackzine.org

  GPG Key signature:
       050D 3E9F 6E0B 44CE C008 D1FC 166C 3C7E EB26 4933
----------------------------------------------------------------
/me recommends:
    Squadra Informatica - http://www.squadrainformatica.com
----------------------------------------------------------------
 - Proud ThinkPad T-Series owner
 - Registered Linux-User: #440008
      * GENTOO User since 1199142000 (2008-01-01)
      * former DEBIAN SID user
----------------------------------------------------------------
      "Software is like sex: it's better when it's free!"
                              -- Linus Torvalds

-------------- parte successiva --------------
Un allegato non testuale è stato rimosso....
Nome:        non disponibile
Tipo:        application/pgp-signature
Dimensione:  198 bytes
Descrizione: This is a digitally signed message part
URL:         <http://lists.linux.it/pipermail/gl-como/attachments/20110320/0eab59df/attachment-0001.pgp>


Maggiori informazioni sulla lista gl-como