Italian community of Lazarus and Free Pascal
Programmazione => Generale => Topic aperto da: tonyweb - Ottobre 29, 2013, 01:12:51 pm
-
Salve ragazzi, è da poco che mi sto avvicinando a Lazarus e nonostante si dica che c'è massima compatibilità con Delphi7 io sto trovando alcune difficoltà. Per esempio:
In Delphi7 c'era il componente TTable
In Lazarus devo crearmi l'SQL della tabella con l'oggetto SQLdb
e diciamo che ho risolto.
In SQLdb però, non riesco a trovare nell'object inspector la voce "MasterSource" e "MasterField" che in Delphi erano indispensabili per creare relazioni tra tabelle.
Come si fa con Lazarus questa cosa?
-
Salve ragazzi, è da poco che mi sto avvicinando a Lazarus e nonostante si dica che c'è massima compatibilità con Delphi7 io sto trovando alcune difficoltà. Per esempio:
In Delphi7 c'era il componente TTable
In Lazarus devo crearmi l'SQL della tabella con l'oggetto SQLdb
e diciamo che ho risolto.
In SQLdb però, non riesco a trovare nell'object inspector la voce "MasterSource" e "MasterField" che in Delphi erano indispensabili per creare relazioni tra tabelle.
Come si fa con Lazarus questa cosa?
Per il TTable le trovi installando le zeos library. Per il resto cambia leggermente. Tu esattamente cosa devi fare? Fammi un esempio semplice e io ti dico le voci
-
se quello che vuoi fare e una relazione master/detail dovrebbe funzionare come per i componenti TQuery di delphi, condiziona il codice sql della query detail "where iddetail = :idmaster", nella proprietà datasource metti quello della query master, il parametro :idmaster dovrebbe essere automaticamente associato al campo con lo stesso nome nella query master...
spero di essere stato spiegato!!!
-
Grazie xinyiman,
quello che voglio realizzare è molto semplice. Una combo box che dal menu mi filtra una TTable.
Nel database ho le seguenti tabelle:
TBMarche
> IDMarca
> marca
TBAuto
> IDAuto
> modello
> marcaID
Quello che voglio realizzare è: nella form ho sia la ComboBox, sia la TDBGrid. Scelgo dalla ComboBox la marca e subito si filtrano i risultati nella TDBGrid
con la seguente relazione IDMarca -> marcaID (uno a molti)
Grazie in anticipo
-
scrivo a memoria senza fare test,
tsqlquerymarche con codice sql: "select idmarca, marca from marche" e datasurce collegato,
tsqlqueryauto con codice sql: "select idauto, modello, marcaid from auto where marcaid = :idmarca",
la proprietà datasource del tsqlqueryauto deve puntare al datasource collegato al tsqlquerymarche,
attivando le due query quella auto mostrerà solo i record relativi al record (marca) selezionato nella query marche...
-
il suggerimento di antonello dovrebbe funzionare. vado a memoria anche io pero'! Inoltre se guardi tra gli esempi che hai installato con lazarus dovresti trovarne uno che fa al caso tuo. domani pome ti dico qualcosa di piu preciso se non lo fa nessun altro.