Newsgroup: it.comp.lang.delphi
Titolo: Problema accesso con dbexpress

vorrei usare dbexpress, al posto di ibx
metto
- SQLConnection (configuro,l database e percorso)
- SQLQuery
  * Datasource=Datasource1
  * SQLConnection su SQLConnection1)
- Datasource collegato a SQLDataset
(non posso collegarlo a SQLQuery)
attivo la connessione, eseguo una semplice query e fin qui
sembra a posto.
ma se collego la source di DBGrid al Datasource ho errore
Operation not alloweed on a unidirectional Dataset
il problema e' perche' il datset e' unidirectional ?
come devo fare per vedere i risultati della SQLQuery.
ho cercato con Google "examples delphi dbexpress"
e su torry "dbexpress"
ma non trovo esempi .
aiutatemi a capire. Maurizio

 come devo fare per vedere i risultati della SQLQuery.
Questo spazio (e il tempo a disposizione) è molto ridotto per poter fare 
una trattativa estesa ed esauriente, ma devi sapere che i DataSet della 
libreria dbExpress sono _unidirezionali_, pertanto la loro scansione (la 
lettura dei record contenuti all'interno) può essere fatta solamente 
partendo dal primo record individuato, procedendo al successivo sino al 
raggiungimento dell'ultimo.
Questo tipo di "esplorazione" è molto performante e indicata per alcuni 
ambiti di utilizzo, come la creazione di report oppure la presentazione 
di tabelle dati attraverso pagine Internet magari prodotte usando la 
tecnologia WebBroker incorporata in Delphi.
Tuttavia, quando si tratta di navigare all'interno dei DataSet 
spostandosi avanti e indietro attraverso un Data Control quale può 
essere la DBGrid, iniziano i problemi. :-)
Per poter visualizzare i dati della query, sarebbe sufficiente adottare 
uno dei primi mezzi elencati (report o pagine HTML), ma per poter 
utilizzare dei Data Control è necessario adottare anche un componente 
*TClientDataSet*, che trovi nella pagina "Data Access" della Palette dei 
Componenti.
Tale componente è in grado di memorizzare all'interno di un'area 
interna, rappresentata dalla proprietà /Data/, un recordset di dati che 
possono provenire da un file XML esterno (o in formato binario) che 
Borland chiama MyBase, oppure da un DataSet attraverso un componente 
*TDataSetProvider* (che trovi sempre nella pagina "Data Access" della 
Palette).
Il componente *TClientDataSet* fornisce tantissime funzionalità, molte 
delle quali particolarmente interessanti come la definizione di indici 
in memoria, la possibilità di scaricare un pacchetto di dati, elaborarlo 
(tramite l'aggiunta, la modifica, la cancellazione di record) e inviare 
"in un sol colpo" le operazioni SQL al server per sincronizzarlo.
Se vuoi saperne di più su questo componente, leggi la colonna curata da 
Cary Jensen nella "SoapBox" del sito Borland Developer Network:
http://bdn.borland.com/soapbox/professionaldeveloper/
(parti dagli articoli più datati).
Sicuramente troverai qualcosa riguardo all'utilizzo del ClientDataSet 
con i componenti dbExpress, imparando anche qualcosa di più su questi 
ultimi.
Ciao! :-)
-- 
Marco «Alka» Breveglieri
(marco [@] abls [.] it )
  ABLS Team S.n.c. - Software & Web
  42019 Scandiano (Reggio Emilia)
 
http://www.abls.it

 [....]
un grazie sentito, per le tue poche ma significative righe.
pero' osservando un'esempio di Mastering Delphi  (dbxMulti) , mi sorge un
dubbio, si collega tramite IBLocal , come avveniva su BDE , ed in effetti
BDEAdministrator riesce a creare un'Alias per Interbase.
1 - dbExpress si appoggia al BDE ?
2 - le Transazioni (con IBX e Zeos sono simili e controllabili a mano 
tramite
... InTransaction , Commit e RollBack), con dbExpress non ho ancora trovato
simili possibilita'.
Devo pensare che Commit e Rollback siano gestiti automaticamente ?
dato che IBX e/o Zeos funzionano a dovere , ma che su Delphi 2005 non
dovrebbero piu' esserci , spero almeno che Borland rilasci IBX per D2005,
non e' bella l'idea di convertire un progetto da IBX a dbExpress.
Maurizio 

 non e' bella l'idea di convertire un progetto da IBX a dbExpress.
Per quanto riguarda Zeos, suppongo che sia ancora utilizzabile in 
Delphi2005 per sviluppare applicazioni VCL Win32; non si può dire lo 
stesso per 
VCL.NET
, poichè la libreria fa intenso uso di puntatori e 
quindi un "porting" è più faticoso, anche se ovviamente non impossibile 
(non so cosa intenda fare la community di Zeos, appunto).
I componenti IBX sono invece presenti sia per VCL che per 
VCL.NET
 in 
Delphi2005, quindi se stai pianificando un passaggio a dbExpress _solo_ 
per questo motivo, puoi fermarti subito. :-)
Puoi utilizzare *InterBase Express* sia per lo sviluppo su Win32 (con la 
libreria VCL), sia per il .NET Framework (con la libreria 
VCL.NET
).



ora ho capito e riesco ad utilizzare dbExpress come facevo con Ibx , in
effetti il passaggio a dbexpress era in previsione Delphi2005 , secondo le
tue indicazioni invece sembra che per nuove applicazioni (guardando anche
al futuro) sia piu' idoneo iniziare con dbExpress.
grazie ancora, Maurizio 

 al futuro) sia piu' idoneo iniziare con dbExpress.
No, non ho suggerito di passare a dbExpress; dal tuo messaggio, mi è 
sembrato che tu volessi passare da IBX a dbExpress pensando che i 
componenti IBX fossero assenti in Delphi2005...ma così non è. :-)
Ciao!
