Originariamente inviato da it9qbd
Non avresti un progettino già pronto master detail di esempio tipo fattura o qualcosa di simile da analizzare per poterci studiare sopra ???
certo che ce l'ho... faccio proprio quello per vivere, da 24 anni

fermo che è fondamentale tenere la "mente aperta" (niente visioni-tunnell) direi che è assai più interessante fare il contrario, ossia scrivi cosa vuoi fare, e come secondo te andrebbe fatto.

così magari ne discutiamo, col contributo anche di idee diverse dalle mie

Fino ad ora ho lavorato principalmente senza l'utilizzo delle query se non in maniera molto superficiale.
Cominciamo dall'ABC (in generale, con riferimento particolare ad ABS)
Ci sono le query "read-only" e le query "modificabili".
Le seconde sono praticamente indistinguibili da una tabella, le prime no.

Esempio di seconde:
select * from documenti where anno=2010

(a parte che scritta così è una bestialità, la * viene usata proprio per essere sicuri della modificabilità, in generale non è bene usarla)

legge "magicamente" da qualche parte la tabella, filtra le righe, e ti ritorna nel componente (diciamo per andar brutali nel TDATASET associato al componente blablabla) le singole righe.

La cosa "buona" è che puoi scegliere tu quali righe caricarti sul client (questo è fondamentale se usi mysql e simili). Più è restrittiva -> meglio è (meno memoria utilizzi).

L'effetto "negativo-positivo" principale (ce ne sono tanti, ma questi sono quelli che IO ritengo i più "rognosi") è che NON si refreshano da soli (e questo è bene, se l'applicazione è "seria" nel senso "con molti dati")

Esempio: l'utente X esegue una query selezionando tutti i record che supponiamo siano 1000 e li mostra su una griglia (cosa questa da evitare, ma pazienza).
L'utente Y aggiunge su un altro client un record (che quindi sono 1001)

L'utente X non lo saprà mai, finquando
- non riesegue la query
- o "magicamente" qualcuno gli dice che qualcosa è cambiato (=esempio di comunicazione interprocesso, è un altro elemento per i programmi client-server "seri")

Non hai sostanzialmente automatismi.
Tieni presente, però, che gli automatismi nel mondo "reale"... non ci sono, sono un retaggio del "mondo" DB-III, Paradox etc (a filettone condiviso)

Se i dati risiedono in un server mysql (engine innodb), nessuno sa, ad esempio, quante righe abbia una tabella.
Nessuno, neanche il server mysql (!!). Lo puoi sapere solo contando le singole righe, con l'opportuno comando.

---
Questo per farti "intuire" che più ti "distacchi" dagli automatismi (che non sono altro che strati su strati) meno "automatismi" avrai ma, di conseguenza, maggiori prestazioni potrai ottenere.
---
Non bisogna però essere "fanatici", nel senso di reinventare la ruota.
Se consideri che il concetto di query SQL esiste praticamente in tutti i componenti DB (ABS e ZEOS direi i principali per i tuoi scopi) quello è un buon punto (a mio parere) da cui partire.
---
Primissima cosa: la funzione di query SQL più o meno generica