Ciao a tutti!
Vorrei visualizzare in una DBGrid il contenuto di una tabella MySql ma mi dà l'errore "Cannot perform on an unidirectional dataset"
Io sto usando una TSQLQuery, un TDataSource e una TDBGrid... come posso fare?
grazieeeeee!
Ciao a tutti!
Vorrei visualizzare in una DBGrid il contenuto di una tabella MySql ma mi dà l'errore "Cannot perform on an unidirectional dataset"
Io sto usando una TSQLQuery, un TDataSource e una TDBGrid... come posso fare?
grazieeeeee!
Stai usando i componenti dbExpress che sono, per loro natura, unidirezionali: per ottenere il massimo delle performance, mantengono un cursore aperto lato server e restituiscono un record alla volta, partendo dal primo sino ad arrivare all'ultimo.
Non possono essere utilizzati con "data control" poichè i controlli visuali hanno bisogno di un DataSet che possa essere navigato in entrambe le direzioni, in sostanza c'è bisogno di un buffer lato client dei record.
Per ottenere questa funzionalità, i componenti dbExpress devono essere utilizzati in congiunzione con i componenti TClientDataSet e TDataSetProvider.
Il componente TClientDataSet, come dice il nome stesso, rappresenta un DataSet lato client ed è adatto al mantenimento in memoria di una tabella di dati con i relativi campi, ottenuta creando direttamente nel componente la struttura della tabella stessa o sincronizzandosi con un server SQL, quindi un DataSet del dbExpress, attraverso il componente TDataSetProvider che funge da tramite e permette di configurare le opzioni di aggiornamento, inserimento, modifica e rimozione.
La trattazione di questo problema è molto lunga e presuppone buona conoscenza dei componenti dbExpress e del funzionamento della tecnologia che vi sta dietro.
Prova a leggere questo articolo a riguardo (in lingua inglese).
Ho utilizzato la libreria dbExpress in diversi progetti e mi sono trovato molto bene, oltre ad avere ottime performance.
Ciao!
MARCO BREVEGLIERI
Software and Web Developer, Teacher and Consultant
Home | Blog | Delphi Podcast | Twitch | Altro...
Grazie Alka, ho seguito il tuo consiglio e il tutto funziona!
Perfetto come al solito!
Grazie mille!
Ciaoooo!
Ho un problemino...il campo che voglio visualizzare è un varchar(300) che automaticamente diventa di tipo 'text'.
Nella griglia mi viene visualizzato solo (MEMO) e non il contenuto del campo...come posso fare?