Importação excel com falha

19/04/2020

0

Eu tenho uma tabela no excel com 75 mil registros a qual estou importando para o firebird, porém só está importando 65 mil registros. Estou usando esse código no delphi usando um clientdataset, gostaria de colocar uma rotina que me informasse os registros que não foram importados, e motivo, porém não sei como fazer o código correto, Alguém poderia me ajudar a melhorar esse código? Grato,. Segue o código que estou usando:

procedure TfrmImportaMateriais.btnImportaMateriaisClick(Sender: TObject);
Var
I: integer;

begin


if dm.cdsImpMatUnimed.recordcount <> 0 then
if MessageDlg('Já existem registros na tabela, é necessário excluí-los para continuar!!!',mtConfirmation,[mbabort],0)=mrAbort then
abort;

ProgressbarMateriais.Max := stringgridMateriais.RowCount;
progressbarMateriais.Position :=0;
for I := 1 to Pred(stringGridMateriais.RowCount) do begin


application.ProcessMessages;
progressbarMateriais.Position := progressbarMateriais.Position +1;
dm.cdsImpMatUnimed.Open;
dm.cdsImpMatUnimed.Append;


dm.cdsImpMatUnimedCODIGOTISS.AsString := stringGridMateriais.Cells[0,I]; //Coluna excel: A
dm.cdsImpMatUnimedTISSTPTABELA.AsString := stringGridMateriais.Cells[1,I]; //Coluna excel: B
dm.cdsImpMatUnimedTISSCODMATERIAL.AsString := stringGridMateriais.Cells[2,I]; //Coluna excel: C
dm.cdsImpMatUnimedNOMECOMERCIAL.AsAnsiString := stringGridMateriais.Cells[3,I]; //Coluna excel: D
dm.cdsImpMatUnimedDESCRICAODOPRODUTO.AsAnsiString := stringGridMateriais.Cells[4,I]; //Coluna excel: E
dm.cdsImpMatUnimedESPECIALIDADEPRODUTO.AsAnsiString := stringGridMateriais.Cells[5,I]; //Coluna excel: F
dm.cdsImpMatUnimedCLASSIFICACAOPRODUTO.AsAnsiString := stringGridMateriais.Cells[6,I]; //Coluna excel: G
dm.cdsImpMatUnimedNOMETECNICO.AsAnsiString := stringGridMateriais.Cells[7,I]; //Coluna excel: H
dm.cdsImpMatUnimedUNIDMINFRACAO.AsAnsiString := stringGridMateriais.Cells[8,I]; //Coluna excel: I
dm.cdsImpMatUnimedCNPJFABRICANTEIMPORTADOR.AsAnsiString := stringGridMateriais.Cells[9,I]; //Coluna excel: J
dm.cdsImpMatUnimedDETENTORREGISTROANVISA.AsAnsiString := stringGridMateriais.Cells[10,I]; //Coluna excel: K
dm.cdsImpMatUnimedREGISTROANVISA.AsAnsiString := stringGridMateriais.Cells[11,I]; //Coluna excel: L
dm.cdsImpMatUnimedTAXADECUSTOS.AsAnsiString := stringGridMateriais.Cells[12,I]; //Coluna excel: M
dm.cdsImpMatUnimedVALORMAXIMO.AsAnsiString := stringGridMateriais.Cells[13,I]; //Coluna excel: N
dm.cdsImpMatUnimedOBSERVACOES.AsAnsiString := stringGridMateriais.Cells[14,I]; //Coluna excel: O
dm.cdsImpMatUnimedTISSCODANTERIOR.AsString := stringGridMateriais.Cells[15,I]; //Coluna excel: P
dm.cdsImpMatUnimedCODANTERIOR.AsAnsiString := stringGridMateriais.Cells[16,I]; //Coluna excel: Q
dm.cdsImpMatUnimedREFTAMANHOMODELO.AsAnsiString := stringGridMateriais.Cells[17,I]; //Coluna excel: R
dm.cdsImpMatUnimedTIPODEPRODUTO.AsAnsiString := stringGridMateriais.Cells[18,I]; //Coluna excel: S
dm.cdsImpMatUnimedTIPODECODIFICACAO.AsAnsiString := stringGridMateriais.Cells[19,I]; //Coluna excel: T
dm.cdsImpMatUnimedDATAINICIOVIGENCIA.AsAnsiString := stringGridMateriais.Cells[20,I]; //Coluna excel: U
dm.cdsImpMatUnimedDATAFIMVIGENCIA.AsAnsiString := stringGridMateriais.Cells[21,I]; //Coluna excel: V
dm.cdsImpMatUnimedMOTIVODEINSERCAO.AsAnsiString := stringGridMateriais.Cells[22,I]; //Coluna excel: W
dm.cdsImpMatUnimedDATAFIMIMPLANTACAO.AsAnsiString := stringGridMateriais.Cells[23,I]; //Coluna excel: X
dm.cdsImpMatUnimedCODSIMPRO.AsAnsiString := stringGridMateriais.Cells[24,I]; //Coluna excel: Y
dm.cdsImpMatUnimedDESCRICAOPRODUTOSIMPRO.AsAnsiString := stringGridMateriais.Cells[25,I]; //Coluna excel: Z
dm.cdsImpMatUnimedEQUIVALENCIATECNICA.AsAnsiString := stringGridMateriais.Cells[26,I]; //Coluna excel: AA


dm.cdsImpMatUnimed.Post;
dm.cdsImpMatUnimed.applyupdates(0);

end;


showmessage('Tabela importada com sucesso!');


end;
Vandeir

Vandeir

Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar