Ver Mensaje Individual
  #6  
Antiguo 22-10-2003
Giniromero Giniromero is offline
Miembro
 
Registrado: may 2003
Ubicación: Madrid
Posts: 296
Reputación: 24
Giniromero Va por buen camino
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
__________________
Sonrie al mundo, y el mundo te sonreirá :)
Responder Con Cita