Hola,
Cita:
|
Por lo que entiendo de tu explicación, este TIBDataSet tiene campos persistentes declarados
|
Efectivamente, ese es "el mio problema".
He probado el código que me comentas,
code:--------------------------------------------------------------------------------
procedure ElQueSea;
var
Q : TIBQuery;
begin
Q := TIBQuery.Create(Self);
Q.Database := MyDataBase;
try
// lanzo la consulta SQL que necesite
finally
FreeAndNil(Q);
end;
end;
--------------------------------------------------------------------------------
Lo tengo de la siguiente forma en mi procedure,
Cita:
Procedure TFrmFxMain.CalculaSaldo;
var nAux2: integer;
var Q : TIBQuery;
begin
nAux2:=0;
Q := TIBQuery.Create(Self);
Q.Database := FrmDmodule.TbEcono.Database;
TRY
Q.Disablecontrols;
Q.Close;
//borramos el contenido de la propiedad SelectSQL
Q.SQL.Clear;
//le asignamos el SQL que tenía al inicio la tabla
Q.SQL.Add('select NUMALU, SUM(0 - econo.impdebe + econo.imphaber) IMPORTE');
Q.SQL.Add('from econo');
Q.SQL.Add('where NUMALU =:NUMALU ');
Q.SQL.Add('GROUP BY NUMALU ');
Q.SQL.Add('ORDER BY NUMALU ');
Q.Open;
nAux2 := Q.FieldByName('IMPORTE').Value;
lblSaldo1.Caption := formatFloat('#,##0.00 €',nAux2);
FINALLY
Q.EnableControls;
FreeAndNil(Q);
END;
end;
|
Pero me devuelve el siguiente mensaje de error:
Cita:
|
Invalid variant type conversion
|
Por lo que he podido ver, es algo relativo al paso del valor del campo importe, a la variable nAux2, pues si pongo un breakpoint, me da el error tras ejecutar:
nAux2 := Q.FieldByName('IMPORTE').Value;
Si en vez de poner .Value, pongo .asvariant, o .asinteger también me da error.
¿Podría ser que necesita que el campo "IMPORTE" sea un campo persistente?
Gracias por la ayuda.
Virginia