PDA

Ver la Versión Completa : Como Clonar un ibDataset????


AGAG4
18-10-2004, 22:52:46
Alguien sabe como Clonar un ibDataset, esto lo quiero con la finalidad de hacer busquedas a un ibDataset sin mover el Cursor.

Agradezco cualquier sugerencia.

Neftali [Germán.Estévez]
19-10-2004, 10:26:39
Alguien sabe como Clonar un ibDataset, esto lo quiero con la finalidad de hacer busquedas a un ibDataset sin mover el Cursor.
No hay que clonarlo, simplemente crea un nuevo componente de la misma clase que el primero y asignale las mismas propiedades (conexión, nombre de tabla/consulta SQL,...) con ésto obtendrás otro DataSet sobre los mismos datos que el primero.

AGAG4
19-10-2004, 16:24:30
ok. Gracias Neftali.

gendelphi
20-10-2004, 07:34:35
Buen dia.

Otra forma de hacer busquedas, o mover el cursor, sinque los controles visuales lo reflejen es asi:

IBDataSet1.DisableControls;

y se regresan con:

IBDataset1.EnableControls;

frudolph
28-10-2004, 17:21:36
Otra opción es utilizando un Componente TDatalink (es mucho más rápido ya que se mueve por el Buffer del DataSet y sin estar conectado a control alguno):


procedure Tform1.Recorrer(DataSet: TDataSet);
var
D: TDataLink;
n: Integer;
begin
D := TDataLink.Create; // No recuerdo si hacía falta algún parámetro
D.DataSource := TDataSource.Create(nil);
try
D.DataSource.DataSet := DataSet;
D.BufferCount := DataSet.RecordCount; // Esto es necesario para poder recorrer todos los registros
for n := 0 to D.BufferCount - 1 do
begin
ActiveRecord := n; // Funciona como el DataSet.Next;
// Para ver los valores de los campos utiliza
// D.DataSet['nombre_del_campo'] ó
// D.DataSet.FieldByName('nombre_del_campo').As..., etc.
end;
finally
D.DataSource.Free;
D.Free;
end;
end;


(Disculpá la demora en constestar, pero recién volví a l foro la semana pasada. Espero que te sirva...) ;)