Newsgroup: it.comp.lang.delphi
Titolo: Delphi, Firebird e TIBDataSet

Ciao a tutti.
Ho un problema di utilizzo con Firebird e TIBDataSet (componente Interbase
standard per delphi 6 prof).
Utilizzando IBQuery e IBUpdateSQL  potevo fare riferimento alle query di
aggiornamento e delete ed impostare i parametri tipo OLD_COD nell'istruzione
SQL where.
Volevo usare TIBDataSet in quanto mi permette di non usare IBUpdateSQL (e
quindi un componente in meno da gestire).
Ma con TIBDataSet non riesco a fare riferimento alla query ad es. delete e a
impostare FieldbyParam('OLD_COD')
Come fare quindi.
Se posso impostare l'istruzione SQL per Select, insert, modify, delete
sicuramente le posso anche usare ma come ?
Ho guardato la documentazione delphi, ma non sono riuscito a trovare nulla
che mi aiuti (
ad es. per DeleteSQL dice: Use DeleteSQL to delete rows in the 
dataset.ma
non mi spiega come usarlo). devo forse utilizzare IBUpdateSQL.
ma in questo caso qual'è la differenza tra TIBDataSet  e  IBQuery.
Grazie a tutti
Guido


Ciao Guido,
dovresti ( tramite il pulsante destro del mouse ) selezionare la voce
"Edit SQL", e qui inserire la tua query es. "select * from xxx", a questo
punto ( sempre premendo il tasto destro del mouse ) selezionare la voce
"Dataset Editor", una volta indicata la "key fields" puoi selezionare il
pulsante "Generate SQL", vedrai nel tab SQL i vari statment generati in
automatico. A questo punto, dopo esserti posizionato sul record
interessato puoi invocare il metodo "Delete" per la cancellazione, e tutto
in modo trasparente, chiaramente in questo modo puoi fare anche degli
inserimenti e/o modifiche tramite i metodi "Append/Edit/Post".
Spero di essere stato abbastanza chiaro.
Ciao da Enrico Giudici
ico...@tiscali.it
--- posted by geoForum on 
http://www.delphiedintorni.it

 Ciao da Enrico Giudici
Grazie Enrico tu sei stato chiaro ,ma sono io che non mi sono spiegato:
 TIBDataSet ha la possibilità di impostare query per le diverse operazioni
(insert, update, delete).
In particolare per l'update e delete viene impostato in query (ad es.) il
parametro
WHERE COD = :OLD_COD .
Utilizzando un componente UpdateObject posso fare riferimento alla query
appropriata ed impostare il parametro se ne ho la necessità.
TIBDataSet (dice Help Delphi6) permette di lavorare anche senza utilizzare
un componente UpdateObject ma se tento di fare riferimento  a
parambyname(OLD_COD ).asstring mi torna un errore di Field OLD_COD non
trovato.
Assegnare il parametro mi dà la certezza che modifica la riga che desidero
quello
Ovvero la mia domanda è posso in qualche modo utilizzare le query che si
costruisce  TIBDataSet  o devo simularlo  io  creandomi altre query ?
Il mio scopo è quello di utilizzare il minor numero di componenti.
 Ciao, Guido

 Ciao, Guido
Ciao Guido,
come ti dicevo prima una volta che hai impostato correttamente ( tramite i
passaggi che ti ho descritto prima ) hai la possibilità di posizionarti su
un determinato record poi utilizzi edit/post o delete, non devi
appoggiarti ( se vuoi ) a nessun componente TUpdateSQL perchè viene
gestito in automatico da TIBDataSet. Nel tuo caso quando sei posizionato
su un detrminato record i vari valori OLD_XXX li gestisce in automatico il
componente TIBDataSet per cui non devi assegnare nulla a tale campo.
Eventualmente dammi qualche info in più, esempio, campi della tabella,
chiave primaria ecc. vediamo come risolvere il problema.
