Ver Mensaje Individual
  #2  
Antiguo 29-06-2005
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Reputación: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
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
Responder Con Cita