Select *from tabella1, tabella2where tabella1.campo = tabella2.campo
Quella che mi hai suggerito è un'istruzione SQL ed io l'ho sempre usata all'interno del codice Gambas.Codice: [Seleziona]Select *from tabella1, tabella2where tabella1.campo = tabella2.campo
DataAccess.TdataSource.DataSet = ZQuerySe ho capito bene, in questo caso, lo strumento TZQuery esegue la lettura di tutti i record delle di tabella1 e di tabella2, rispondenti alla condizione Where. Non ho capito però dove si trovano disponibili.
Zeos Access.TZQuery
.ZConnection = ZConnection
.SQL = Select *from tabella1, tabella2 where tabella1.campo1 = tabella2.campo1
Zeos Acces.TZConnection
.DataBase = '/percorso/mioDB'
.Connected =True
Ti consiglio il seguente tutorial: una volta imparate le basi saprai come muoverti.Si conosco detta guida e l'ho già consultata anche in occasione dell'installazione di Zeos, però mi pare che in proposito d'accesso a DB dica molto poco. Essa infatti indica quali oggetti attivarre, con le relative proprietà.
https://wiki.lazarus.freepascal.org/Zeos_tutorial (https://wiki.lazarus.freepascal.org/Zeos_tutorial)
Si conosco detta guida e l'ho già consultata anche in occasione dell'installazione di Zeos, però mi pare che in proposito d'accesso a DB dica molto poco. Essa infatti indica quali oggetti attivarre, con le relative proprietà.
Tornando all'uso del pacchetto Zeos, mi pare strano che, senza la combinazione Zquery + DBGrid non sia possibile disporre di una funzione che restituisca i dati interni ad una query, per selezionare solo quelli che servono, oltre la selezione impostata nel where della slelct SQL.
tutti i record letti per mezzo della select.
Il microtutorial che trovi sotto la voce Make your first Zeos application serve esattamente a spiegarti come usare le classi che servono per l'accesso ad un DB e mettere i dati letti a disposizione dei controlli dataware.Ho cercato di seguire le indicazioni trovate lì dentro inserendo nel progetto gli oggetti raccomandati, ad eccetto del DBGrid, perchè credo che a me non sia proprio indispensabile:
object contabfamDB: TDataSource
DataSet = ZQuery1
left = 308
top = 480
end
object ZConnection1: TZConnection
ControlsCodePage = cCP_UTF8
AutoEncodeStrings = True
Properties.Strings = (
'AutoEncodeStrings=ON'
)
AutoCommit = False
Connected = True
Port = 0
Database = '/media/dirdati/dativari/contabfam/ContabFamdb_prove'
Protocol = 'sqlite-3'
left = 408
top = 480
end
object ZQuery1: TZQuery
Connection = ZConnection1
Params = <>
Properties.Strings = (
'select NumVoce, NomeVoce, ContrPartSiNo, DtPrimoUso, DtUltimUso from piancont'
)
left = 504
top = 480
end
Per leggere i dati ottenuti da una SELECT senza passare per i controllo dataware, devi semplicemente scorrere i record in Zquery.::) ???
Non ho però capito lo scopo ultimo di questa domanda, dovresti spiegare meglio cosa intendi realizzare.Difficile rispondere brevemente a questa domanda. Ci provo: Con riferimento all'immagine allegata, all'interno del GroupBox Movimenti da trasferire dovrei caricare nelle 2 ComboBox più grandi le voci contabili di conto e sottoconto appartenenti all'ambito della selezione eseguita nella ComboBox piccolina, posta in alto a sinistra.
Per leggere i dati ottenuti da una SELECT senza passare per i controllo dataware, devi semplicemente scorrere i record in Zquery.::) ???
E dove posso trovare un esempio?
Query1.Top;
while not Query1.EOF do
begin
// quì si fa qualcosa con i campi
ShowMessage( Query1.FieldByName('CAMPO01').AsString );
Query1.Next;
end;
su questo forumGrazie nomorelogic.Codice: [Seleziona]Query1.Top;
while not Query1.EOF do
begin
// quì si fa qualcosa con i campi
ShowMessage( Query1.FieldByName('CAMPO01').AsString );
Query1.Next;
end;
ZConnection1 -> Connected = True ---> Error: |Requested database driver was no found
ZQuery -> Active = True ---> Error: |Requested database driver was no found
ZConnection1 -> Connected = Trueè ricomparso l'errore di prima (Requested database driver was no found)
Quell'errore se non ricordo male significa che non hai i driver installati sul pc per il DBMS che hai selezionato del "protocol".sqlite3.
Quale db stai usando?
SQL Error: SQL logic errorPerciò, non so si dipenda da questo, avviando il progettino di prova, la DBGrid si presenta sempre vuota.
Vuol dire che non hai popolato la proprietà sql della TZQuery. Tu cerchi di fare l'active a runtime. Quindi vuol dire che devi inserire la query a design time.
Mentre se tu faiQuesto tuo suggerimento è esattamente quello che dovrò applicare nel progetto concreto che sto portando avanti parallelamente allo studio.
ZQuery1.SQL.Text := 'select * from tuatabella';
ZQuery.Open;
//Quello che devi fare
ZQuery.Close;
Non c'è bisogno che premi sul check active a design time