Changeset: 493 fdbozzo - 19/11/2014 19:13:33:

- Arreglo "Error 1903, String is too long to fit."
This commit is contained in:
fdbozzo
2014-11-19 21:33:22 +01:00
parent 2663ce163d
commit 32dd640de2

View File

@@ -107,6 +107,7 @@
* 19/09/2014 FDBOZZO v1.19.34 Arreglo bug: Si se ejecuta FoxBin2Prg desde ventana de comandos FoxPro para un proyecto y hay alg<6C>n archivo abierto o cacheado, se produce un error al intentar capitalizar el archivo de entrada (Jim Nelson) * 19/09/2014 FDBOZZO v1.19.34 Arreglo bug: Si se ejecuta FoxBin2Prg desde ventana de comandos FoxPro para un proyecto y hay alg<6C>n archivo abierto o cacheado, se produce un error al intentar capitalizar el archivo de entrada (Jim Nelson)
* 26/09/2014 FDBOZZO v1.19.35 Mejora: Generar siempre el mismo Timestamp y UniqueID para los binarios minimizar<61>a los cambios al regenerarlos (Marcio Gomez G.) * 26/09/2014 FDBOZZO v1.19.35 Mejora: Generar siempre el mismo Timestamp y UniqueID para los binarios minimizar<61>a los cambios al regenerarlos (Marcio Gomez G.)
* 08/10/2014 FDBOZZO v1.19.36 Arreglo bug: Al generar el mn2 el identificador queda vac<61>o (bug introducido en v1.19.35) * 08/10/2014 FDBOZZO v1.19.36 Arreglo bug: Al generar el mn2 el identificador queda vac<61>o (bug introducido en v1.19.35)
* 19/11/2014 FDBOZZO v1.19.37 Arreglo bug: String is too long to fit (edyshor)
* </HISTORIAL DE CAMBIOS Y NOTAS IMPORTANTES> * </HISTORIAL DE CAMBIOS Y NOTAS IMPORTANTES>
* *
*--------------------------------------------------------------------------------------------------- *---------------------------------------------------------------------------------------------------
@@ -153,6 +154,7 @@
* 28/08/2014 Peter Hipp REPORTE BUG mnx v1.19.32: Si una opci<63>n tiene asociado un Procedure de 1 l<>nea, no se mantiene como Procedure y se convierte a Command (solucionado en v1.19.33) * 28/08/2014 Peter Hipp REPORTE BUG mnx v1.19.32: Si una opci<63>n tiene asociado un Procedure de 1 l<>nea, no se mantiene como Procedure y se convierte a Command (solucionado en v1.19.33)
* 19/09/2014 Jim Nelson REPORTE BUG v1.19.33: Si se ejecuta FoxBin2Prg desde ventana de comandos FoxPro para un proyecto y hay alg<6C>n archivo abierto o cacheado, se produce un error (solucionado en v1.19.34) * 19/09/2014 Jim Nelson REPORTE BUG v1.19.33: Si se ejecuta FoxBin2Prg desde ventana de comandos FoxPro para un proyecto y hay alg<6C>n archivo abierto o cacheado, se produce un error (solucionado en v1.19.34)
* 26/09/2014 Marcio Gomez G. MEJORA v1.19.34: Generar siempre el mismo Timestamp y UniqueID para los binarios minimizar<61>a los cambios al regenerarlos (Agregado en v1.19.35) * 26/09/2014 Marcio Gomez G. MEJORA v1.19.34: Generar siempre el mismo Timestamp y UniqueID para los binarios minimizar<61>a los cambios al regenerarlos (Agregado en v1.19.35)
* 19/11/2014 edyshor REPORTE BUG dbf v1.19.36:
* </TESTEO Y REPORTE DE BUGS (AGRADECIMIENTOS)> * </TESTEO Y REPORTE DE BUGS (AGRADECIMIENTOS)>
* *
*--------------------------------------------------------------------------------------------------- *---------------------------------------------------------------------------------------------------
@@ -530,6 +532,7 @@ DEFINE CLASS c_foxbin2prg AS CUSTOM
+ [<memberdata name="n_existecapitalizacion" display="n_ExisteCapitalizacion"/>] ; + [<memberdata name="n_existecapitalizacion" display="n_ExisteCapitalizacion"/>] ;
+ [<memberdata name="n_extrabackuplevels" display="n_ExtraBackupLevels"/>] ; + [<memberdata name="n_extrabackuplevels" display="n_ExtraBackupLevels"/>] ;
+ [<memberdata name="n_fb2prg_version" display="n_FB2PRG_Version"/>] ; + [<memberdata name="n_fb2prg_version" display="n_FB2PRG_Version"/>] ;
+ [<memberdata name="n_filehandle" display="n_FileHandle"/>] ;
+ [<memberdata name="o_conversor" display="o_Conversor"/>] ; + [<memberdata name="o_conversor" display="o_Conversor"/>] ;
+ [<memberdata name="o_frm_avance" display="o_Frm_Avance"/>] ; + [<memberdata name="o_frm_avance" display="o_Frm_Avance"/>] ;
+ [<memberdata name="o_fso" display="o_FSO"/>] ; + [<memberdata name="o_fso" display="o_FSO"/>] ;
@@ -598,6 +601,7 @@ DEFINE CLASS c_foxbin2prg AS CUSTOM
n_ClassTimeStamp = 1130668032 && 2013/11/04 20:00:00 n_ClassTimeStamp = 1130668032 && 2013/11/04 20:00:00
n_CFG_Actual = 0 n_CFG_Actual = 0
n_ID = 0 n_ID = 0
n_FileHandle = 0
o_Conversor = NULL o_Conversor = NULL
o_Frm_Avance = NULL o_Frm_Avance = NULL
o_FSO = NULL o_FSO = NULL
@@ -11465,24 +11469,59 @@ DEFINE CLASS c_conversor_dbf_a_prg AS c_conversor_bin_a_prg
*-- Header *-- Header
loTable = CREATEOBJECT('CL_DBF_TABLE') loTable = CREATEOBJECT('CL_DBF_TABLE')
C_FB2PRG_CODE = C_FB2PRG_CODE + loTable.toText( ln_HexFileType, ll_FileHasCDX, ll_FileHasMemo, ll_FileIsDBC, lc_DBC_Name, .c_InputFile, lc_FileTypeDesc, @toFoxBin2Prg )
IF toFoxBin2Prg.DBF_Conversion_Support = 4
*-- Exportaci<63>n de estructura y datos (para Diff solamente)
ERASE (.c_OutputFile + '.TMP' )
toFoxBin2Prg.n_FileHandle = FCREATE( .c_OutputFile + '.TMP' )
IF toFoxBin2Prg.n_FileHandle = -1 THEN
ERROR 102, (.c_OutputFile)
ENDIF
FWRITE( toFoxBin2Prg.n_FileHandle, C_FB2PRG_CODE )
loTable.toText( ln_HexFileType, ll_FileHasCDX, ll_FileHasMemo, ll_FileIsDBC, lc_DBC_Name, .c_InputFile, lc_FileTypeDesc, @toFoxBin2Prg )
FCLOSE( toFoxBin2Prg.n_FileHandle )
*fdb*
*-- Genero el DB2
IF .l_Test
toModulo = C_FB2PRG_CODE
ELSE
lnLen = 1 &&LEN( toFoxBin2Prg.get_PROGRAM_HEADER() )
DO CASE
CASE FILE(.c_OutputFile) AND SUBSTR( FILETOSTR( .c_OutputFile ), lnLen ) == SUBSTR( C_FB2PRG_CODE, lnLen )
*.writeLog( 'El archivo de salida [' + .c_OutputFile + '] no se sobreescribe por ser igual al generado.' )
.writeLog( TEXTMERGE(C_OUTPUT_FILE_IS_NOT_OVERWRITEN_LOC) )
CASE toFoxBin2Prg.doBackup( .F., .T., '', '', '' ) ;
AND toFoxBin2Prg.ChangeFileAttribute( .c_OutputFile, '-R' ) ;
AND STRTOFILE( C_FB2PRG_CODE, .c_OutputFile ) = 0
*ERROR 'No se puede generar el archivo [' + .c_OutputFile + '] porque es ReadOnly'
ERROR (TEXTMERGE(C_CANT_GENERATE_FILE_BECAUSE_IT_IS_READONLY_LOC))
ENDCASE
ENDIF
*-- Genero el DB2
IF .l_Test
toModulo = C_FB2PRG_CODE
ELSE ELSE
lnLen = 1 &&LEN( toFoxBin2Prg.get_PROGRAM_HEADER() ) C_FB2PRG_CODE = C_FB2PRG_CODE + loTable.toText( ln_HexFileType, ll_FileHasCDX, ll_FileHasMemo, ll_FileIsDBC, lc_DBC_Name, .c_InputFile, lc_FileTypeDesc, @toFoxBin2Prg )
DO CASE
CASE FILE(.c_OutputFile) AND SUBSTR( FILETOSTR( .c_OutputFile ), lnLen ) == SUBSTR( C_FB2PRG_CODE, lnLen )
*.writeLog( 'El archivo de salida [' + .c_OutputFile + '] no se sobreescribe por ser igual al generado.' ) *-- Genero el DB2
.writeLog( TEXTMERGE(C_OUTPUT_FILE_IS_NOT_OVERWRITEN_LOC) ) IF .l_Test
CASE toFoxBin2Prg.doBackup( .F., .T., '', '', '' ) ; toModulo = C_FB2PRG_CODE
AND toFoxBin2Prg.ChangeFileAttribute( .c_OutputFile, '-R' ) ; ELSE
AND STRTOFILE( C_FB2PRG_CODE, .c_OutputFile ) = 0 lnLen = 1 &&LEN( toFoxBin2Prg.get_PROGRAM_HEADER() )
*ERROR 'No se puede generar el archivo [' + .c_OutputFile + '] porque es ReadOnly' DO CASE
ERROR (TEXTMERGE(C_CANT_GENERATE_FILE_BECAUSE_IT_IS_READONLY_LOC)) CASE FILE(.c_OutputFile) AND SUBSTR( FILETOSTR( .c_OutputFile ), lnLen ) == SUBSTR( C_FB2PRG_CODE, lnLen )
ENDCASE *.writeLog( 'El archivo de salida [' + .c_OutputFile + '] no se sobreescribe por ser igual al generado.' )
.writeLog( TEXTMERGE(C_OUTPUT_FILE_IS_NOT_OVERWRITEN_LOC) )
CASE toFoxBin2Prg.doBackup( .F., .T., '', '', '' ) ;
AND toFoxBin2Prg.ChangeFileAttribute( .c_OutputFile, '-R' ) ;
AND STRTOFILE( C_FB2PRG_CODE, .c_OutputFile ) = 0
*ERROR 'No se puede generar el archivo [' + .c_OutputFile + '] porque es ReadOnly'
ERROR (TEXTMERGE(C_CANT_GENERATE_FILE_BECAUSE_IT_IS_READONLY_LOC))
ENDCASE
ENDIF
ENDIF ENDIF
*-- Hook para permitir ejecuci<63>n externa (por ejemplo, para exportar datos) *-- Hook para permitir ejecuci<63>n externa (por ejemplo, para exportar datos)
@@ -16284,8 +16323,10 @@ DEFINE CLASS CL_DBF_TABLE AS CL_CUS_BASE
*** DH 06/02/2014: added _Records *** DH 06/02/2014: added _Records
loRecords = THIS._Records loRecords = THIS._Records
lcText = lcText + loRecords.toText(@laFields, lnFieldCount, lc_DBF_Conversion_Condition) *lcText = lcText + loRecords.toText(@laFields, lnFieldCount, lc_DBF_Conversion_Condition)
FWRITE( toFoxBin2Prg.n_FileHandle, lcText )
loRecords.toText(@laFields, lnFieldCount, lc_DBF_Conversion_Condition, @toFoxBin2Prg)
lcText = ''
ENDIF ENDIF
TEXT TO lcText ADDITIVE TEXTMERGE NOSHOW FLAGS 1+2 PRETEXT 1+2 TEXT TO lcText ADDITIVE TEXTMERGE NOSHOW FLAGS 1+2 PRETEXT 1+2
@@ -16293,6 +16334,11 @@ DEFINE CLASS CL_DBF_TABLE AS CL_CUS_BASE
<<>> <<>>
ENDTEXT ENDTEXT
IF toFoxBin2Prg.DBF_Conversion_Support = 4 && BIN2PRG (DATA EXPORT FOR DIFF)
FWRITE( toFoxBin2Prg.n_FileHandle, lcText )
lcText = ''
ENDIF
CATCH TO loEx CATCH TO loEx
IF THIS.l_Debug AND _VFP.STARTMODE = 0 IF THIS.l_Debug AND _VFP.STARTMODE = 0
@@ -16887,21 +16933,29 @@ DEFINE CLASS CL_DBF_RECORDS AS CL_COL_BASE
* taFields (@! IN ) Array de informaci<63>n de campos * taFields (@! IN ) Array de informaci<63>n de campos
* tnField_Count (v! IN ) Cantidad de campos * tnField_Count (v! IN ) Cantidad de campos
* tc_DBF_Conversion_Condition (v? IN ) Condici<63>n de filtro para la conversi<73>n. Solo se exporta lo que la cumpla. * tc_DBF_Conversion_Condition (v? IN ) Condici<63>n de filtro para la conversi<73>n. Solo se exporta lo que la cumpla.
* toFoxBin2Prg (@! IN ) Referencia de toFoxBin2Prg
*--------------------------------------------------------------------------------------------------- *---------------------------------------------------------------------------------------------------
LPARAMETERS taFields, tnField_Count, tc_DBF_Conversion_Condition LPARAMETERS taFields, tnField_Count, tc_DBF_Conversion_Condition, toFoxBin2Prg
EXTERNAL ARRAY taFields EXTERNAL ARRAY taFields
#IF .F.
LOCAL toFoxBin2Prg AS c_foxbin2prg OF 'FOXBIN2PRG.PRG'
#ENDIF
TRY TRY
LOCAL lcText, loEx AS EXCEPTION ; LOCAL lcText, loEx AS EXCEPTION, I ;
, loRecord AS CL_DBF_RECORD OF 'FOXBIN2PRG.PRG' , loRecord AS CL_DBF_RECORD OF 'FOXBIN2PRG.PRG'
lcText = '' lcText = ''
I = 0
TEXT TO lcText ADDITIVE TEXTMERGE NOSHOW FLAGS 1+2 PRETEXT 1+2 TEXT TO lcText ADDITIVE TEXTMERGE NOSHOW FLAGS 1+2 PRETEXT 1+2
<<>> <<>>
<<>> <<C_RECORDS_I>> <<>> <<C_RECORDS_I>>
ENDTEXT ENDTEXT
FWRITE( toFoxBin2Prg.n_FileHandle, lcText )
lcText = ''
loRecord = CREATEOBJECT('CL_DBF_RECORD') loRecord = CREATEOBJECT('CL_DBF_RECORD')
IF EMPTY(tc_DBF_Conversion_Condition) IF EMPTY(tc_DBF_Conversion_Condition)
@@ -16909,14 +16963,24 @@ DEFINE CLASS CL_DBF_RECORDS AS CL_COL_BASE
ENDIF ENDIF
SCAN FOR &tc_DBF_Conversion_Condition. SCAN FOR &tc_DBF_Conversion_Condition.
lcText = lcText + loRecord.toText(@taFields, tnField_Count) I = I + 1
lcText = loRecord.toText(@taFields, tnField_Count)
FWRITE( toFoxBin2Prg.n_FileHandle, lcText )
IF MOD(I,10000) = 0 THEN
FFLUSH( toFoxBin2Prg.n_FileHandle, .T. )
ENDIF
ENDSCAN ENDSCAN
lcText = ''
TEXT TO lcText ADDITIVE TEXTMERGE NOSHOW FLAGS 1+2 PRETEXT 1+2 TEXT TO lcText ADDITIVE TEXTMERGE NOSHOW FLAGS 1+2 PRETEXT 1+2
<<>> <<C_RECORDS_F>> <<>> <<C_RECORDS_F>>
<<>> <<>>
ENDTEXT ENDTEXT
FWRITE( toFoxBin2Prg.n_FileHandle, lcText )
lcText = ''
CATCH TO loEx CATCH TO loEx
loEx.UserValue = loEx.UserValue + 'tc_DBF_Conversion_Condition = [' + TRANSFORM(tc_DBF_Conversion_Condition) + ']' + CR_LF loEx.UserValue = loEx.UserValue + 'tc_DBF_Conversion_Condition = [' + TRANSFORM(tc_DBF_Conversion_Condition) + ']' + CR_LF