[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