Ver Mensaje Individual
  #1  
Antiguo 02-04-2008
Cecilio Cecilio is offline
Miembro
 
Registrado: ago 2007
Posts: 140
Reputación: 17
Cecilio Va por buen camino
Copias de DataSet

Hola.
Tengo un problema y lo llevo arrastrando algun tiempo y no se como solventarlo.

Tengo un DataModule con una IBdatabase, etc.
Entre estos componentes hay un IBdataset que es el que nos interesa para mi problema.

En un procedimiento tengo:
Código:
 // Procedimiento principal.
var
  cv: TdataSet;
  s,a: string;
 begin

s:='select * from articulos';

dm.IBDataSet1.SelectSQL.Text:=s;
dm.IBDataSet1.Active:=true;;
cv:= dm.IBDataSet1; 
// copio el dataset del DataModule a uno locar. (AQUI LA MADRE DEL CORDERO)

cv.First;

while not cv.Eof do
begin
   s:=cv.FieldByName('Codigo').AsString;
   a:=cv.FieldByName('Almacen').AsString;

  getcv(s,a,c,v); // LA SEGUNDA MADRE DEL CORDERO
Segundo Procecimiento

Código:
procedure GetCV(cod: string; al: string; var C: Double; var V: Double);
var
  cv: TdataSet;
  s: string;
begin

s:='select entrada, salida from existencias';
s:=s+' where codigo='+quotedstr(cod)+' and almacen='+quotedstr(al);

dm.IBDataSet1.SelectSQL.Text:=s;
dm.IBDataSet1.Active:=true;
cv:=dm.IBDataSet1;
c:=cv.FieldByName('entrada').AsFloat;
v:=cv.FieldByName('salida').AsFloat;

end;
¿ cual es el problema ?

En el procedimiento principal, tengo un DataSet que es una copia del DataModule.IBDataSet1

Cuando invoco al segundo procecimiento ( GetCV )

El dataset del primer procedimiento es como si contuviese los datos del segundo, perdiento lo que tenía.

Algo estoy haciendo mal, o quizá no sea la forma de manejar estos componentes.

No quiero tener en DataModule un montón de IBdataset para cada procedimiento.

¿ Como lo resuelvo ?

Gracias.
__________________
Saludos Cordiales.
------------------

Responder Con Cita