Estimados Todos:
Estoy tratando de importar los datos de una hoja en Excel, a una Base de datos Firebird 3.0 , estoy usando Delphi X10, el asunto es que leo los datos de excel, si los ppongo en una listview, todo perfecto. Peeero al tratar de ponerlos en una tabla (ConceptosTable), es donde viene el problema. el codigo que tengo es :
Código Delphi
[-]Hoja:= Excel.Worksheets.Item[1] as _WorkSheet;
i:= 2;
si:= IntToStr(i);
repeat
with ConceptosTable do
begin
Close;
SQL.Clear;
SQL.Add('INSERT INTO ConceptosTable (CVE_CPTO, CONCEPTO, UD, PUBASE, PU1,PU2, PU3, CVE_CAT) VALUES (:CVE, :CPTO, :UD, :BASE, :P1, :P2, :P3, :CAT)');
ParamByNAme('CVE').AsString:= Hoja.Range['A'+si, 'A' + si].Value2; ParamByName('CPTO').AsBlob := Hoja.Range['B'+si, 'B' + si].Value2; parambyname('UD').AsString:= Hoja.Range['C'+si, 'C' + si].Value2; ppb:= Hoja.Range['D'+si, 'D' + si].Value2;
ParamByName('BASE').asfloat := strtofloat(ppb);
pp1:= Hoja.Range['E'+si, 'E' + si].Value2;
ParamByName('P1').AsFloat:= strtofloat(pp1); pp2:= Hoja.Range['F'+si, 'F' + si].Value2; ParamByName('P2').AsFloat:= strtofloat(pp2);
pp3:= Hoja.Range['G'+si, 'G' + si].Value2; ParamByName('P3').AsFloat:= strtofloat(pp3);
ParamByName('CAT').AsString:= Hoja.Range['F'+si, 'F'+si].Value2;
Prepare;
Open;
end;
inc(i);
si:= IntToStr(i);
until ( VarType ( Excel.Range['A'+si, 'A'+si].Value2) = VarEmpty);
cuando sale de la asignacion de CAT, en el Prepare, truena el programa y me marca el error:
Cita:
[FireDAC][Phys][FB]Dynamic SQL Error SQL error code = -204
|
.... De antemano agradezco su ayuda