FoxBin2Prg v1.19.47

- Allow importing DBF Data (Walter Nicholls)
This commit is contained in:
fdbozzo
2016-06-08 23:39:27 +02:00
10 changed files with 797 additions and 185 deletions

View File

@@ -3,7 +3,7 @@ Lparameters toUpdateInfo
Local lcNote Local lcNote
With toUpdateInfo With toUpdateInfo
.VersionNumber = 'v1.19.47' .VersionNumber = 'v1.19.47'
.VersionDate = Date(2016,05,24) .VersionDate = Date(2016,05,28)
.SourceFileUrl = 'http://vfpxrepository.com/dl/thorupdate/Projects/FoxBin2Prg/FoxBin2Prg.Zip' .SourceFileUrl = 'http://vfpxrepository.com/dl/thorupdate/Projects/FoxBin2Prg/FoxBin2Prg.Zip'
.Link = 'http://vfpx.codeplex.com/wikipage?title=FoxBin2PRG' .Link = 'http://vfpx.codeplex.com/wikipage?title=FoxBin2PRG'
@@ -17,13 +17,14 @@ Demo video using FoxBin2Prg with PlasticSCM: http://youtu.be/sE4wQ50Itqg
Change History ------------------------------------------------------------- Change History -------------------------------------------------------------
2016/05/24 v1.19.47 2016/05/28 v1.19.47
- Bug Fix: When a filename "*" is specified with a type "*", an automatic regeneration of all binary files is made from text files (Alejandro Sosa) - Bug Fix: When a filename "*" is specified with a type "*", an automatic regeneration of all binary files is made from text files (Alejandro Sosa)
- BugFix: Added variable declaration (Doug Hennig) - BugFix: Added variable declaration (Doug Hennig)
- BugFix: Fixed incorrectly named variable (Doug Hennig) - BugFix: Fixed incorrectly named variable (Doug Hennig)
- BugFix: Added missing assignment (Doug Hennig) - BugFix: Added missing assignment (Doug Hennig)
- Enhancement: Put double quotes around path in case in contains single quote (Doug Hennig) - Enhancement: Put double quotes around path in case in contains single quote (Doug Hennig)
- BugFix: Added "+16" to Debug flags to maintain internal defaults to not generate timestamps on xx2 files - BugFix: Added "+16" to Debug flags to maintain internal defaults to not generate timestamps on xx2 files
- Feature: Added support for appending data from DB2 to DBF with the new value DBF_Conversion_Support=8. All datatypes except General. (Walter Nicholls)
2016/02/06 v1.19.46 2016/02/06 v1.19.46
- Bug Fix: set_UserValue() method causes error when trying to get information about another error and the VFP binary table can not be opened (ie, because corrupted memo) - Bug Fix: set_UserValue() method causes error when trying to get information about another error and the VFP binary table can not be opened (ie, because corrupted memo)

Binary file not shown.

View File

@@ -8,7 +8,7 @@
<TABLE> <TABLE>
<MemoFile></MemoFile> <MemoFile></MemoFile>
<CodePage>1252</CodePage> <CodePage>1252</CodePage>
<LastUpdate>2013/12/12</LastUpdate> <LastUpdate></LastUpdate>
<Database></Database> <Database></Database>
<FileType>0x00000032</FileType> <FileType>0x00000032</FileType>
<FileType_Descrip>Visual FoxPro, Varchar, Varbinary, or Blob-enabled</FileType_Descrip> <FileType_Descrip>Visual FoxPro, Varchar, Varbinary, or Blob-enabled</FileType_Descrip>
@@ -371,7 +371,7 @@
<Upd_Trig_Exp></Upd_Trig_Exp> <Upd_Trig_Exp></Upd_Trig_Exp>
<Del_Trig_Exp></Del_Trig_Exp> <Del_Trig_Exp></Del_Trig_Exp>
<TableComment></TableComment> <TableComment></TableComment>
<Autoinc_Nextval>30</Autoinc_Nextval> <Autoinc_Nextval>50</Autoinc_Nextval>
<Autoinc_Step>5</Autoinc_Step> <Autoinc_Step>5</Autoinc_Step>
</FIELD> </FIELD>
</FIELDS> </FIELDS>
@@ -381,12 +381,12 @@
<INDEXES> <INDEXES>
<INDEX> <INDEX>
<TagName>LOGICO</TagName> <TagName>CARACTER</TagName>
<TagType>BINARY</TagType> <TagType>CANDIDATE</TagType>
<Key>LOGICO</Key> <Key>CARACTER</Key>
<Filter></Filter> <Filter>.NOT.EMPTY(caracter)</Filter>
<Order>ASCENDING</Order> <Order>ASCENDING</Order>
<Collate>MACHINE</Collate> <Collate>GENERAL</Collate>
</INDEX> </INDEX>
<INDEX> <INDEX>
<TagName>ENTERO</TagName> <TagName>ENTERO</TagName>
@@ -397,13 +397,93 @@
<Collate>MACHINE</Collate> <Collate>MACHINE</Collate>
</INDEX> </INDEX>
<INDEX> <INDEX>
<TagName>CARACTER</TagName> <TagName>LOGICO</TagName>
<TagType>CANDIDATE</TagType> <TagType>BINARY</TagType>
<Key>CARACTER</Key> <Key>LOGICO</Key>
<Filter>.NOT.EMPTY(caracter)</Filter> <Filter></Filter>
<Order>ASCENDING</Order> <Order>ASCENDING</Order>
<Collate>GENERAL</Collate> <Collate>MACHINE</Collate>
</INDEX> </INDEX>
</INDEXES> </INDEXES>
<RECORDS>
<RECORD num="4">
<CARACTER></CARACTER>
<FECHA>/ / </FECHA>
<FECHORA>/ / : : </FECHORA>
<LOGICO>.F.</LOGICO>
<DOBLE>0.00000</DOBLE>
<FLOTANTE>0.000000</FLOTANTE>
<NUMERICO>0.000</NUMERICO>
<BLOB></BLOB>
<MONEDA>0.0000</MONEDA>
<ENTERO>0</ENTERO>
<NOTAS></NOTAS>
<VAR_BINARY></VAR_BINARY>
<VAR_CHAR></VAR_CHAR>
<NOTASBIN></NOTASBIN>
<CARC_BIN>ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg</CARC_BIN>
<VARCHARBIN></VARCHARBIN>
<ID_AUTOINC>45</ID_AUTOINC>
</RECORD>
<RECORD num="2">
<CARACTER>axaxaxaxaXAXA</CARACTER>
<FECHA>1969/11/26</FECHA>
<FECHORA>1969/11/26 22:10:06</FECHORA>
<LOGICO>.T.</LOGICO>
<DOBLE>123.45676</DOBLE>
<FLOTANTE>123.456786</FLOTANTE>
<NUMERICO>123.456</NUMERICO>
<BLOB>NgAuAEUAcwB0AGEAIABlAHMAIAB1AG4AYQAgAGYAcgBhAHMAZQAgAGMAbwBkAGkAZgBpAGMAYQBkAGEAIABlAG4AIABoAGUAeABhACAAeQAgAGMAbwBuACAAYwBhAHIAYQBjAHQAZQByAGUAcwAgAGUAcwBwAGUAYwBpAGEAbABlAHMALgAgAOEA6QDtAPMA+gDBAMkAzQDTANoAxADLAM8A1gDcAOQA6wDvAPYA/ADgAOgA7ADyAPkA8QDRAMcA5wBeAA==</BLOB>
<MONEDA>12345.6786</MONEDA>
<ENTERO>1234567896</ENTERO>
<NOTAS>6.notas TXT.&#13;&#10;áéíóúÄËÏÖÜÑñäëïöü.&#13;&#10;^FinÇç</NOTAS>
<VAR_BINARY>Ni5GcmFzZSBVVEYtOC4gw6HDqcOtw7PDusOEw4vDj8OWw5w=</VAR_BINARY>
<VAR_CHAR>var char 6.áéíóúÜÑ</VAR_CHAR>
<NOTASBIN>yQBzAHQAYQAgAGUAcwAgAGwAYQAgAHMAZQDxAGEAbAAhAA==</NOTASBIN>
<CARC_BIN>Q2hhckJpbi02LsOhw6nDrcOzw7rDnMORICAgICAg</CARC_BIN>
<VARCHARBIN>VkNoYXJCaW4tNi7DocOpw63Ds8O6w5zDkQ==</VARCHARBIN>
<ID_AUTOINC>35</ID_AUTOINC>
</RECORD>
<RECORD num="1">
<CARACTER>lalal.áéíóúÜÑ</CARACTER>
<FECHA>1969/11/27</FECHA>
<FECHORA>1969/11/27 22:10:07</FECHORA>
<LOGICO>.T.</LOGICO>
<DOBLE>123.45677</DOBLE>
<FLOTANTE>123.456787</FLOTANTE>
<NUMERICO>123.457</NUMERICO>
<BLOB>NwAuAEUAcwB0AGEAIABlAHMAIAB1AG4AYQAgAGYAcgBhAHMAZQAgAGMAbwBkAGkAZgBpAGMAYQBkAGEAIABlAG4AIABoAGUAeABhACAAeQAgAGMAbwBuACAAYwBhAHIAYQBjAHQAZQByAGUAcwAgAGUAcwBwAGUAYwBpAGEAbABlAHMALgAgAOEA6QDtAPMA+gDBAMkAzQDTANoAxADLAM8A1gDcAOQA6wDvAPYA/ADgAOgA7ADyAPkA8QDRAMcA5wBeAA==</BLOB>
<MONEDA>12345.6787</MONEDA>
<ENTERO>1234567897</ENTERO>
<NOTAS>7.notas TXT.&#13;&#10;áéíóúÄËÏÖÜÑñäëïöü.&#13;&#10;^FinÇç</NOTAS>
<VAR_BINARY>Ny5GcmFzZSBVVEYtOC4gw6HDqcOtw7PDusOEw4vDj8OWw5w=</VAR_BINARY>
<VAR_CHAR>var char 7.áéíóúÜÑ</VAR_CHAR>
<NOTASBIN>yQB4AGkAdABvAHMAIADaAG4AaQBjAG8AcwAhACAAOgApAA==</NOTASBIN>
<CARC_BIN>Q2hhckJpbi03LsOhw6nDrcOzw7rDnMORICAgICAg</CARC_BIN>
<VARCHARBIN>VkNoYXJCaW4tNy7DocOpw63Ds8O6w5zDkQ==</VARCHARBIN>
<ID_AUTOINC>30</ID_AUTOINC>
</RECORD>
<RECORD num="3">
<CARACTER>pepepepepEPE</CARACTER>
<FECHA>1969/11/25</FECHA>
<FECHORA>1969/11/25 22:10:05</FECHORA>
<LOGICO>.T.</LOGICO>
<DOBLE>123.45675</DOBLE>
<FLOTANTE>123.456785</FLOTANTE>
<NUMERICO>123.455</NUMERICO>
<BLOB>NQAuAEUAcwB0AGEAIABlAHMAIAB1AG4AYQAgAGYAcgBhAHMAZQAgAGMAbwBkAGkAZgBpAGMAYQBkAGEAIABlAG4AIABoAGUAeABhACAAeQAgAGMAbwBuACAAYwBhAHIAYQBjAHQAZQByAGUAcwAgAGUAcwBwAGUAYwBpAGEAbABlAHMALgAgAOEA6QDtAPMA+gDBAMkAzQDTANoAxADLAM8A1gDcAOQA6wDvAPYA/ADgAOgA7ADyAPkA8QDRAMcA5wBeAA==</BLOB>
<MONEDA>12345.6785</MONEDA>
<ENTERO>1234567895</ENTERO>
<NOTAS>5.notas TXT.&#13;&#10;áéíóúÄËÏÖÜÑñäëïöü.&#13;&#10;^FinÇç</NOTAS>
<VAR_BINARY>NS5GcmFzZSBVVEYtOC4gw6HDqcOtw7PDusOEw4vDj8OWw5w=</VAR_BINARY>
<VAR_CHAR>var char 5.áéíóúÜÑ</VAR_CHAR>
<NOTASBIN>yQBzAHQAYQAgAGUAcwAgAGwAYQAgAHMAZQDxAGEAbAAhAA==</NOTASBIN>
<CARC_BIN>Q2hhckJpbi01LsOhw6nDrcOzw7rDnMORICAgICAg</CARC_BIN>
<VARCHARBIN>VkNoYXJCaW4tNS7DocOpw63Ds8O6w5zDkQ==</VARCHARBIN>
<ID_AUTOINC>40</ID_AUTOINC>
</RECORD>
</RECORDS>
</TABLE> </TABLE>

Binary file not shown.

View File

@@ -0,0 +1,3 @@
DBF_Conversion_Support: 8
DBF_Conversion_Order: caracter
DBF_Conversion_Condition: .T.

Binary file not shown.

View File

@@ -286,9 +286,16 @@ DEFINE CLASS ft__foxbin2prg__c_conversor_prg_a_dbf AS FxuTestCase OF FxuTestCase
this.assertequals( lnFields_OUT, lnFields_IN, '[Cantidad de campos IN y OUT]' ) this.assertequals( lnFields_OUT, lnFields_IN, '[Cantidad de campos IN y OUT]' )
FOR I = 1 TO lnFields_IN FOR I = 1 TO lnFields_IN
IF laCampos_IN(I,18) > 0 && Autoinc_Step
*-- Para los campos AutoInc solo se comparan los primeros 4 datos de estructura
FOR X = 1 TO 4
THIS.assertequals( laCampos_IN(I,X), laCampos_OUT(I,X), '[Comparando estructura del campo ' + laCampos_IN(I,1) + ']' )
ENDFOR
ELSE
FOR X = 1 TO 18 FOR X = 1 TO 18
THIS.assertequals( laCampos_IN(I,X), laCampos_OUT(I,X), '[Comparando estructura del campo ' + laCampos_IN(I,1) + ']' ) THIS.assertequals( laCampos_IN(I,X), laCampos_OUT(I,X), '[Comparando estructura del campo ' + laCampos_IN(I,1) + ']' )
ENDFOR ENDFOR
ENDIF
ENDFOR ENDFOR
CATCH TO loEx CATCH TO loEx

View File

@@ -1,5 +1,5 @@
**************************************************************************************************** ****************************************************************************************************
* FOXBIN2PRG v1.19.43 * FOXBIN2PRG v1.19.47
* CONFIGURATION FILE / ARCHIVO DE CONFIGURACI<43>N * CONFIGURATION FILE / ARCHIVO DE CONFIGURACI<43>N
**************************************************************************************************** ****************************************************************************************************
@@ -34,7 +34,7 @@
* LBX_Conversion_Support: 2 && 0=No support, 1=Generate TXT only (Diff), 2=Generate TXT and BIN (Merge) * LBX_Conversion_Support: 2 && 0=No support, 1=Generate TXT only (Diff), 2=Generate TXT and BIN (Merge)
* MNX_Conversion_Support: 2 && 0=No support, 1=Generate TXT only (Diff), 2=Generate TXT and BIN (Merge) * MNX_Conversion_Support: 2 && 0=No support, 1=Generate TXT only (Diff), 2=Generate TXT and BIN (Merge)
* DBC_Conversion_Support: 2 && 0=No support, 1=Generate TXT only (Diff), 2=Generate TXT and BIN (Merge) * DBC_Conversion_Support: 2 && 0=No support, 1=Generate TXT only (Diff), 2=Generate TXT and BIN (Merge)
* DBF_Conversion_Support: 1 && 0=No support, 1=Generate TXT only (Diff), 2=Generate TXT and BIN (Merge), 4=Generate TXT with DATA for DIFF (No Bidirectional!) * DBF_Conversion_Support: 1 && 0=No support, 1=Generate TXT only (Diff), 2=Generate TXT and BIN (Merge/Only Structure!), 4=Generate TXT with DATA (Diff), 8=Export and Import DATA (Merge/Structure & Data)
* >>DBF_Conversion_Support NOTE: >> EN: FoxBin2Prg support bi-directional convertion of DBFs, but does not keep data. Use with care. * >>DBF_Conversion_Support NOTE: >> EN: FoxBin2Prg support bi-directional convertion of DBFs, but does not keep data. Use with care.
* >> ES: FoxBin2Prg tiene soporte bi-direccional para convertir DBF, pero no mantiene los datos. Usar con cuidado. * >> ES: FoxBin2Prg tiene soporte bi-direccional para convertir DBF, pero no mantiene los datos. Usar con cuidado.
* DBF_Conversion_Included: * && If DBF_Conversion_Support:4, you can specify multiple filemasks: www,fb2p_free.dbf / Si DBF_Conversion_Support:4, se pueden indicar m<>ltiples m<>scaras de archivo: www,fb2p_free.dbf * DBF_Conversion_Included: * && If DBF_Conversion_Support:4, you can specify multiple filemasks: www,fb2p_free.dbf / Si DBF_Conversion_Support:4, se pueden indicar m<>ltiples m<>scaras de archivo: www,fb2p_free.dbf

Binary file not shown.

File diff suppressed because it is too large Load Diff