Unidireccional significa básicamente que los registros que obtienes de una consulta SELECT sólo los puedes recorrer en una dirección: hacia adelante. No te puedes regresar ni filtrar los resultados ni desplegarlos en un grid ni en general nada que involucre varios registros a la vez. Esto es así porque los dataset unidireccionales no almacenan en memoria los registros que obtienen del servidor.
El porqué de esto se explica en la ayuda de Delphi:
Cita:
Unidirectional datasets are designed for quick lightweight access to database information, with minimal overhead. Like other datasets, they can send an SQL command to the database server, and if the command returns a set of records, obtain a cursor for accessing those records. However, unidirectional datasets can only retrieve a unidirectional cursor. They do not buffer data in memory, which makes them faster and less resource-intensive than other types of dataset.
|
Que esta explicación sea lógica es harina de otro costal. Puedes conectar un ClientDataSet a controles como DBEdits que manejan un sólo registro a la vez y moverte con un DBNavigator, pero tan pronto requieras visualizar varios registros simultáneamente deberás proveer el "buffer" faltante conectando un ClientDataSet entre el DataSet y el DBGrid via un DataSetProvider.
// Saludos