Ver Mensaje Individual
  #1  
Antiguo 21-05-2014
Avatar de jafera
jafera jafera is offline
Miembro
 
Registrado: may 2007
Ubicación: Llagostera (Girona)
Posts: 582
Reputación: 18
jafera Va por buen camino
Error al importar fichero txt

Buenas de nuevo a todos.

Al final he conseguido que delphi XE5 funcione al 100% con todos los componentes instalados.
He realizado las migraciones del antiguo código D6 ajustandolo al nuevo XE5.
Recientemente he pasado mi máquina Win XP 32 bits a W-7 64 bits.

El problema que tengo es que un proceso de importación de un archivo txt se reallizaba correctamente en el formato antiguo y ahora me lanza una excepción sin haber tocado nada del código en esta parte, no se si algun parámetro se debe ajustar a XE5, os pongo el código usado:

Código Delphi [-]
if RadioGroup1.ItemIndex = 1 then
        begin
                OpenDialog1.Filename:='';
                OpenDialog1.InitialDir:='C:\Rebuts_1.0\Fitxers\Rebuts\Capçalera';
                F_Confirmacio := TF_Confirmacio.Create(self);
                F_Confirmacio.Label1.Caption := 'Importem arxiu capçalera';
                try
                        if F_Confirmacio.ShowModal = mrok then
                        begin
                                with BorraTemp do
                                begin
                                        Close;
                                        UnPrepare;
                                        Sql.Text := 'DELETE FROM RE0006TOTALTEMP';
                                        Prepare;
                                        Open;
                                end;

                                F_ModulDades.Rebut_Total_Temp.Close;
                                F_ModulDades.Rebut_Total_Temp.Open;
                                F_ModulDades.Rebut_Total_Temp.Append;
                                F_Importa.IBSQLImporta.SQL.Text := 'Insert into RE0006TOTALTEMP values(:ID_REBUT, :ID_USUARI, ATA, :TITOL, :C_POSTAL, :CODI_CLUB, :ARBITRES, :MATERIAL, :I1, :I2, :I3, :I4, :I5, :TI1, :TI2, :TI3, :TI4, :TI5, :TOTAL_REBUT, :IMPORT, :TEXTE, :SUSPENSIO, :KM_TOTALS, :ASPIRANT'+
                                                                   ', :HORA_CONST, :HORA_SORT,:NUM_CORREDORS,:ID_ARBITRE, :ID_METGE, IR_CURSA, :CATEGORIA, :ZONA, :KM_CURSA, :TRANSP, :GRAVAT, :PREU_FIX, :IMPORT_2, :FEINER, OS_SECTORS, :CAMPIONAT, :I10, :CODI_BARRES, :CREA_REBUT, :BICIXIPS, :TI6, :NUM_FIX'+
                                                                   ', :PAGAT, :EXTRES, :REPART, :PAGADOR)';
                                F := TIBInputDelimitedFile.Create;
                                try
                                        F.ColDelimiter := ';';
                                        if OpenDialog1.Execute then
                                        begin
                                                F.Filename := OpenDialog1.FileName;
                                        end;
                                        F_Importa.IBSQLImporta.BatchInput(F);  //aqui es donde se para y da el mensaje de error.
                                finally
                                        F.Free;
                                end;

                                F_ModulDades.Rebut_Total.Close;
                                F_ModulDades.Rebut_Total.Open;
                                F_ModulDades.Rebut_Total_Temp.Close;
                                F_ModulDades.Rebut_Total_Temp.Open;
                                F_ModulDades.Rebut_Total_Temp.First;
                                while not F_ModulDades.Rebut_Total_Temp.Eof do
                                begin
                                        if F_ModulDades.Rebut_Total.Locate('ID_REBUT; ID_USUARI; DATA', VarArrayof([F_ModulDades.Rebut_Total_TempID_REBUT.Value, F_ModulDades.Rebut_Total_TempID_USUARI.Value, F_ModulDades.Rebut_Total_TempDATA.Value]), []) then
                                        begin
                                                F_ModulDades.Rebut_Total.Edit;
                                                F_ModulDades.Rebut_TotalID_REBUT.Value := F_ModulDades.Rebut_Total_TempID_REBUT.Value;
                                                F_ModulDades.Rebut_TotalID_USUARI.Value := F_ModulDades.Rebut_Total_TempID_USUARI.Value;
                                                F_ModulDades.Rebut_TotalDATA.Value := F_ModulDades.Rebut_Total_TempDATA.Value;
                                                F_ModulDades.Rebut_TotalTITOL.Value := F_ModulDades.Rebut_Total_TempTITOL.Value;
                                                F_ModulDades.Rebut_TotalC_POSTAL.Value := F_ModulDades.Rebut_Total_TempC_POSTAL.Value;
                                                F_ModulDades.Rebut_TotalCODI_CLUB.Value := F_ModulDades.Rebut_Total_TempCODI_CLUB.Value;
                                                F_ModulDades.Rebut_TotalARBITRES.Value := F_ModulDades.Rebut_Total_TempARBITRES.Value;
                                                F_ModulDades.Rebut_TotalMATERIAL.Value := F_ModulDades.Rebut_Total_TempMATERIAL.Value;
                                                F_ModulDades.Rebut_TotalI1.Value := F_ModulDades.Rebut_Total_TempI1.Value;
                                                F_ModulDades.Rebut_TotalI2.Value := F_ModulDades.Rebut_Total_TempI2.Value;
                                                F_ModulDades.Rebut_TotalI3.Value := F_ModulDades.Rebut_Total_TempI3.Value;
                                                F_ModulDades.Rebut_TotalI4.Value := F_ModulDades.Rebut_Total_TempI4.Value;
                                                F_ModulDades.Rebut_TotalI5.Value := F_ModulDades.Rebut_Total_TempI5.Value;
                                                F_ModulDades.Rebut_TotalTI1.Value := F_ModulDades.Rebut_Total_TempTI1.Value;
                                                F_ModulDades.Rebut_TotalTI2.Value := F_ModulDades.Rebut_Total_TempTI2.Value;
                                                F_ModulDades.Rebut_TotalTI3.Value := F_ModulDades.Rebut_Total_TempTI3.Value;
                                                F_ModulDades.Rebut_TotalTI4.Value := F_ModulDades.Rebut_Total_TempTI4.Value;
                                                F_ModulDades.Rebut_TotalTI5.Value := F_ModulDades.Rebut_Total_TempTI5.Value;
                                                F_ModulDades.Rebut_TotalTOTAL_REBUT.Value := F_ModulDades.Rebut_Total_TempTOTAL_REBUT.Value;
                                                F_ModulDades.Rebut_TotalIMPORT.Value := F_ModulDades.Rebut_Total_TempIMPORT.Value;
                                                F_ModulDades.Rebut_TotalTEXTE.Value := F_ModulDades.Rebut_Total_TempTEXTE.Value;
                                                F_ModulDades.Rebut_TotalSUSPENSIO.Value := F_ModulDades.Rebut_Total_TempSUSPENSIO.Value;
                                                F_ModulDades.Rebut_TotalKM_TOTALS.Value := F_ModulDades.Rebut_Total_TempKM_TOTALS.Value;
                                                F_ModulDades.Rebut_TotalASPIRANT.Value := F_ModulDades.Rebut_Total_TempASPIRANT.Value;
                                                F_ModulDades.Rebut_TotalHORA_CONS.Value := F_ModulDades.Rebut_Total_TempHORA_CONS.Value;
                                                F_ModulDades.Rebut_TotalHORA_SORT.Value := F_ModulDades.Rebut_Total_TempHORA_SORT.Value;
                                                F_ModulDades.Rebut_TotalNUM_CORREDORS.Value := F_ModulDades.Rebut_Total_TempNUM_CORREDORS.Value;
                                                F_ModulDades.Rebut_TotalID_ARBITRE.Value := F_ModulDades.Rebut_Total_TempID_ARBITRE.Value;
                                                F_ModulDades.Rebut_TotalID_METGE.Value := F_ModulDades.Rebut_Total_TempID_METGE.Value;
                                                F_ModulDades.Rebut_TotalDIR_CURSA.Value := F_ModulDades.Rebut_Total_TempDIR_CURSA.Value;
                                                F_ModulDades.Rebut_TotalCATEGORIA.Value := F_ModulDades.Rebut_Total_TempCATEGORIA.Value;
                                                F_ModulDades.Rebut_TotalZONA.Value := F_ModulDades.Rebut_Total_TempZONA.Value;
                                                F_ModulDades.Rebut_TotalKM_CURSA.Value := F_ModulDades.Rebut_Total_TempKM_CURSA.Value;
                                                F_ModulDades.Rebut_TotalTRANSP.Value := F_ModulDades.Rebut_Total_TempTRANSP.Value;
                                                F_ModulDades.Rebut_TotalGRAVAT.Value := F_ModulDades.Rebut_Total_TempGRAVAT.Value;
                                                F_ModulDades.Rebut_TotalPREU_FIX.Value := F_ModulDades.Rebut_Total_TempPREU_FIX.Value;
                                                F_ModulDades.Rebut_TotalIMPORT_2.Value := F_ModulDades.Rebut_Total_TempIMPORT_2.Value;
                                                F_ModulDades.Rebut_TotalFEINER.Value := F_ModulDades.Rebut_Total_TempFEINER.Value;
                                                F_ModulDades.Rebut_TotalDOS_SECTORS.Value := F_ModulDades.Rebut_Total_TempDOS_SECTORS.Value;
                                                F_ModulDades.Rebut_TotalCAMPIONAT.Value := F_ModulDades.Rebut_Total_TempCAMPIONAT.Value;
                                                F_ModulDades.Rebut_TotalI10.Value := F_ModulDades.Rebut_Total_TempI10.Value;
                                                F_ModulDades.Rebut_TotalCODI_BARRES.Value := F_ModulDades.Rebut_Total_TempCODI_BARRES.Value;
                                                F_ModulDades.Rebut_TotalCREA_REBUT.Value := F_ModulDades.Rebut_Total_TempCREA_REBUT.Value;
                                                F_ModulDades.Rebut_TotalBICIXIPS.Value := F_ModulDades.Rebut_Total_TempBICIXIPS.Value;
                                                F_ModulDades.Rebut_TotalTI6.Value := F_ModulDades.Rebut_Total_TempTI6.Value;
                                                F_ModulDades.Rebut_TotalNUM_FIX.Value := F_ModulDades.Rebut_Total_TempNUM_FIX.Value;
                                                F_ModulDades.Rebut_TotalPAGAT.Value := F_ModulDades.Rebut_Total_TempPAGAT.Value;
                                                F_ModulDades.Rebut_TotalEXTRES.Value := F_ModulDades.Rebut_Total_TempEXTRES.Value;
                                                F_ModulDades.Rebut_TotalREPART.Value := F_ModulDades.Rebut_Total_TempREPART.Value;
                                                F_ModulDades.Rebut_TotalPAGADOR.Value := F_ModulDades.Rebut_Total_TempPAGADOR.Value;
                                                F_ModulDades.Rebut_Total.Post;
                                                F_ModulDades.Rebut_Total_Temp.Next;
                                        end
                                        else
                                        begin
                                                F_ModulDades.Rebut_Total.Last;
                                                i := F_ModulDades.Rebut_TotalID.Value + 1;
                                                F_ModulDades.Rebut_Total.Append;
                                                F_ModulDades.Rebut_TotalID.Value := i;
                                                F_ModulDades.Rebut_TotalID_REBUT.Value := F_ModulDades.Rebut_Total_TempID_REBUT.Value;
                                                F_ModulDades.Rebut_TotalID_USUARI.Value := F_ModulDades.Rebut_Total_TempID_USUARI.Value;
                                                F_ModulDades.Rebut_TotalDATA.Value := F_ModulDades.Rebut_Total_TempDATA.Value;
                                                F_ModulDades.Rebut_TotalTITOL.Value := F_ModulDades.Rebut_Total_TempTITOL.Value;
                                                F_ModulDades.Rebut_TotalC_POSTAL.Value := F_ModulDades.Rebut_Total_TempC_POSTAL.Value;
                                                F_ModulDades.Rebut_TotalCODI_CLUB.Value := F_ModulDades.Rebut_Total_TempCODI_CLUB.Value;
                                                F_ModulDades.Rebut_TotalARBITRES.Value := F_ModulDades.Rebut_Total_TempARBITRES.Value;
                                                F_ModulDades.Rebut_TotalMATERIAL.Value := F_ModulDades.Rebut_Total_TempMATERIAL.Value;
                                                F_ModulDades.Rebut_TotalI1.Value := F_ModulDades.Rebut_Total_TempI1.Value;
                                                F_ModulDades.Rebut_TotalI2.Value := F_ModulDades.Rebut_Total_TempI2.Value;
                                                F_ModulDades.Rebut_TotalI3.Value := F_ModulDades.Rebut_Total_TempI3.Value;
                                                F_ModulDades.Rebut_TotalI4.Value := F_ModulDades.Rebut_Total_TempI4.Value;
                                                F_ModulDades.Rebut_TotalI5.Value := F_ModulDades.Rebut_Total_TempI5.Value;
                                                F_ModulDades.Rebut_TotalTI1.Value := F_ModulDades.Rebut_Total_TempTI1.Value;
                                                F_ModulDades.Rebut_TotalTI2.Value := F_ModulDades.Rebut_Total_TempTI2.Value;
                                                F_ModulDades.Rebut_TotalTI3.Value := F_ModulDades.Rebut_Total_TempTI3.Value;
                                                F_ModulDades.Rebut_TotalTI4.Value := F_ModulDades.Rebut_Total_TempTI4.Value;
                                                F_ModulDades.Rebut_TotalTI5.Value := F_ModulDades.Rebut_Total_TempTI5.Value;
                                                F_ModulDades.Rebut_TotalTOTAL_REBUT.Value := F_ModulDades.Rebut_Total_TempTOTAL_REBUT.Value;
                                                F_ModulDades.Rebut_TotalIMPORT.Value := F_ModulDades.Rebut_Total_TempIMPORT.Value;
                                                F_ModulDades.Rebut_TotalTEXTE.Value := F_ModulDades.Rebut_Total_TempTEXTE.Value;
                                                F_ModulDades.Rebut_TotalSUSPENSIO.Value := F_ModulDades.Rebut_Total_TempSUSPENSIO.Value;
                                                F_ModulDades.Rebut_TotalKM_TOTALS.Value := F_ModulDades.Rebut_Total_TempKM_TOTALS.Value;
                                                F_ModulDades.Rebut_TotalASPIRANT.Value := F_ModulDades.Rebut_Total_TempASPIRANT.Value;
                                                F_ModulDades.Rebut_TotalHORA_CONS.Value := F_ModulDades.Rebut_Total_TempHORA_CONS.Value;
                                                F_ModulDades.Rebut_TotalHORA_SORT.Value := F_ModulDades.Rebut_Total_TempHORA_SORT.Value;
                                                F_ModulDades.Rebut_TotalNUM_CORREDORS.Value := F_ModulDades.Rebut_Total_TempNUM_CORREDORS.Value;
                                                F_ModulDades.Rebut_TotalID_ARBITRE.Value := F_ModulDades.Rebut_Total_TempID_ARBITRE.Value;
                                                F_ModulDades.Rebut_TotalID_METGE.Value := F_ModulDades.Rebut_Total_TempID_METGE.Value;
                                                F_ModulDades.Rebut_TotalDIR_CURSA.Value := F_ModulDades.Rebut_Total_TempDIR_CURSA.Value;
                                                F_ModulDades.Rebut_TotalCATEGORIA.Value := F_ModulDades.Rebut_Total_TempCATEGORIA.Value;
                                                F_ModulDades.Rebut_TotalZONA.Value := F_ModulDades.Rebut_Total_TempZONA.Value;
                                                F_ModulDades.Rebut_TotalKM_CURSA.Value := F_ModulDades.Rebut_Total_TempKM_CURSA.Value;
                                                F_ModulDades.Rebut_TotalTRANSP.Value := F_ModulDades.Rebut_Total_TempTRANSP.Value;
                                                F_ModulDades.Rebut_TotalGRAVAT.Value := F_ModulDades.Rebut_Total_TempGRAVAT.Value;
                                                F_ModulDades.Rebut_TotalPREU_FIX.Value := F_ModulDades.Rebut_Total_TempPREU_FIX.Value;
                                                F_ModulDades.Rebut_TotalIMPORT_2.Value := F_ModulDades.Rebut_Total_TempIMPORT_2.Value;
                                                F_ModulDades.Rebut_TotalFEINER.Value := F_ModulDades.Rebut_Total_TempFEINER.Value;
                                                F_ModulDades.Rebut_TotalDOS_SECTORS.Value := F_ModulDades.Rebut_Total_TempDOS_SECTORS.Value;
                                                F_ModulDades.Rebut_TotalCAMPIONAT.Value := F_ModulDades.Rebut_Total_TempCAMPIONAT.Value;
                                                F_ModulDades.Rebut_TotalI10.Value := F_ModulDades.Rebut_Total_TempI10.Value;
                                                F_ModulDades.Rebut_TotalCODI_BARRES.Value := F_ModulDades.Rebut_Total_TempCODI_BARRES.Value;
                                                F_ModulDades.Rebut_TotalCREA_REBUT.Value := F_ModulDades.Rebut_Total_TempCREA_REBUT.Value;
                                                F_ModulDades.Rebut_TotalBICIXIPS.Value := F_ModulDades.Rebut_Total_TempBICIXIPS.Value;
                                                F_ModulDades.Rebut_TotalTI6.Value := F_ModulDades.Rebut_Total_TempTI6.Value;
                                                F_ModulDades.Rebut_TotalNUM_FIX.Value := F_ModulDades.Rebut_Total_TempNUM_FIX.Value;
                                                F_ModulDades.Rebut_TotalPAGAT.Value := F_ModulDades.Rebut_Total_TempPAGAT.Value;
                                                F_ModulDades.Rebut_TotalEXTRES.Value := F_ModulDades.Rebut_Total_TempEXTRES.Value;
                                                F_ModulDades.Rebut_TotalREPART.Value := F_ModulDades.Rebut_Total_TempREPART.Value;
                                                F_ModulDades.Rebut_TotalPAGADOR.Value := F_ModulDades.Rebut_Total_TempPAGADOR.Value;
                                                F_ModulDades.Rebut_Total.Post;
                                                F_ModulDades.Rebut_Total_Temp.Next;
                                        end;
                                end;

                                Showmessage('Fitxer Importat');
                        end
                        else
                        begin
                                ShowMessage('Fitxer NO importat');
                        end;
                finally
                        with BorraTemp do
                        begin
                                Close;
                                UnPrepare;
                                Sql.Text := 'DELETE FROM RE0006TOTALTEMP';
                                Prepare;
                                Open;
                        end;
                        F_Confirmacio.Free;
                end;

y este es el mensaje de error que se produce:

First chance exception at $75CEC42D. Exception class EIBInterBaseError with message
'Dynamic SQL Error
SQL error code = -303
arithmetic exception, numeric overflow, or string truncation'.
Process Rebuts.exe (1932)

Si alguien tiene alguna idea del porque me puede pasar pues será muy bienvenida su respuesta.

Saludos

Josep
Responder Con Cita