Buenas noches,
Tengo un pequeño problema que me esta volviendo loco... os comento a ver si me podeis echar un cable ( aunque sea para colgarme con el
)
Tengo un query con el siguiente contenido:
Código SQL
[-]SELECT NNUMPRE,SUM((NPREUNIT * NCANPED)*(1-NDTO/100)) AS TOTAL FROM preclil.dbf GROUP BY NNUMPRE
NNUMPRE es Integer ( seria el numero de pedido por ejemplo.
TOTAL es el calculo de campos numeric de 17 enteros y 6 decimales.
Si muestro el query en una Grid va perfecto.
El problema es que necesito grabar ese query en una tabla DBF nueva, lo intento de la siguiente forma:
Código Delphi
[-]begin
query1.SQL.Clear; query1.SQL.Add(Edit1.text); query1.Active:=True; query2.DatabaseName:='c:\'; query2.SQL.Clear; query2.SQL.Add('INSERT INTO temp.dbf (NNUMPRE,TOTAL) VALUES(:NUMERP,:TOTAL)');
while not query1.eof do begin
query2.ParamByName('NUMERP').AsInteger:=query1.FieldByName('NNUMPRE').AsInteger;query2.ParamByName('TOTAL').AsInteger:=query1.FieldByName('TOTAL').AsInteger;
query2.ExecSQL;
query1.Next; end;
Si lo hago así me dice que los tipos de datos no coinciden
Supuestamente en el DBF son NUMERIC, y yo los puse como integer, pero vamos he probado floats para el total, y todo lo que se me ha ocurrido y nada...
Despues he probado de esta forma:
Código Delphi
[-]
begin
query1.SQL.Clear; query1.SQL.Add(Edit1.text); query1.Active:=True; query2.DatabaseName:='c:\'; while not query1.eof do begin
query2.SQL.Clear; var1:=query1.FieldByName('NNUMPRE').AsInteger;
var2:=query1.FieldByName('TOTAL').AsFloat;
query2.SQL.Add('INSERT INTO temp.dbf (NNUMPRE,TOTAL) VALUES("'+inttostr(var1)+'","'+floattostr(var2)+'")');
query2.ExecSQL;
query1.Next; end;
Y asi funciona hasta que encuentra algun decimal en la tabla, que dice que no coinciden los tipos.
Espero que me podáis ayudar, por que ya no se me ocurre nada mas...
Muchas Gracias por adelantado.