Cecilio
02-04-2008, 18:44:25
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:
// 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
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.
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:
// 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
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.