Changeset: 95 Fin desarrollo conversión DBFs y DBCs con Unit Testing
This commit is contained in:
1013
TESTS/DATOS_READONLY/FB2P_DBC.DC2
Normal file
1013
TESTS/DATOS_READONLY/FB2P_DBC.DC2
Normal file
File diff suppressed because it is too large
Load Diff
145
TESTS/DATOS_READONLY/FB2P_DBF.DB2
Normal file
145
TESTS/DATOS_READONLY/FB2P_DBF.DB2
Normal file
@@ -0,0 +1,145 @@
|
||||
*--------------------------------------------------------------------------------------------------------------------------------------------------------
|
||||
* (ES) AUTOGENERADO - <20><>ATENCI<43>N!! - <20><>NO PENSADO PARA EJECUTAR!! USAR SOLAMENTE PARA INTEGRAR CAMBIOS Y ALMACENAR CON HERRAMIENTAS SCM!!
|
||||
* (EN) AUTOGENERATED - ATTENTION!! - NOT INTENDED FOR EXECUTION!! USE ONLY FOR MERGING CHANGES AND STORING WITH SCM TOOLS!!
|
||||
*--------------------------------------------------------------------------------------------------------------------------------------------------------
|
||||
*< FOXBIN2PRG: Version="1.14" SourceFile="C:\DESA\FOXBIN2PRG\TESTS\DATOS_READONLY\FB2P_DBF.DBF" Generated="2013/12/11 19:43:58" /> (Para uso con Visual FoxPro 9.0)
|
||||
*
|
||||
|
||||
<TABLE>
|
||||
<memofile>C:\DESA\FOXBIN2PRG\TESTS\DATOS_READONLY\FB2P_DBF.FPT</memofile>
|
||||
<codepage>1252</codepage>
|
||||
<database>fb2p_dbc.dbc</database>
|
||||
<filetype>0x00000031</filetype>
|
||||
<filetype_descrip>Visual FoxPro, autoincrement enabled</filetype_descrip>
|
||||
|
||||
<FIELDS>
|
||||
<FIELD>
|
||||
<name>NOMBRE</name>
|
||||
<type>C</type>
|
||||
<width>30</width>
|
||||
<decimals>0</decimals>
|
||||
<null>.F.</null>
|
||||
<nocptran>.F.</nocptran>
|
||||
<field_valid_exp>.NOT.EMPTY(nombre)</field_valid_exp>
|
||||
<field_valid_text>"El nombre est<73> vac<61>o"</field_valid_text>
|
||||
<field_default_value>"."</field_default_value>
|
||||
<table_valid_exp>edad>10</table_valid_exp>
|
||||
<table_valid_text>"Mensaje de error de la regla edad > 10"</table_valid_text>
|
||||
<longtablename>NOMBRELARGODELDBF</longtablename>
|
||||
<ins_trig_exp>__ri_insert_nombrelargodeldbf().AND.(ins_trg())</ins_trig_exp>
|
||||
<upd_trig_exp>__ri_update_nombrelargodeldbf().AND.(upd_trg())</upd_trig_exp>
|
||||
<del_trig_exp>del_trg()</del_trig_exp>
|
||||
<tablecomment>Comentario de la tabla "fb2p_dbf"</tablecomment>
|
||||
<autoinc_nextval>0</autoinc_nextval>
|
||||
<autoinc_step>0</autoinc_step>
|
||||
</FIELD>
|
||||
<FIELD>
|
||||
<name>EDAD</name>
|
||||
<type>N</type>
|
||||
<width>3</width>
|
||||
<decimals>0</decimals>
|
||||
<null>.F.</null>
|
||||
<nocptran>.F.</nocptran>
|
||||
<field_valid_exp></field_valid_exp>
|
||||
<field_valid_text></field_valid_text>
|
||||
<field_default_value></field_default_value>
|
||||
<table_valid_exp></table_valid_exp>
|
||||
<table_valid_text></table_valid_text>
|
||||
<longtablename></longtablename>
|
||||
<ins_trig_exp></ins_trig_exp>
|
||||
<upd_trig_exp></upd_trig_exp>
|
||||
<del_trig_exp></del_trig_exp>
|
||||
<tablecomment></tablecomment>
|
||||
<autoinc_nextval>0</autoinc_nextval>
|
||||
<autoinc_step>0</autoinc_step>
|
||||
</FIELD>
|
||||
<FIELD>
|
||||
<name>ID</name>
|
||||
<type>I</type>
|
||||
<width>4</width>
|
||||
<decimals>0</decimals>
|
||||
<null>.F.</null>
|
||||
<nocptran>.F.</nocptran>
|
||||
<field_valid_exp></field_valid_exp>
|
||||
<field_valid_text></field_valid_text>
|
||||
<field_default_value></field_default_value>
|
||||
<table_valid_exp></table_valid_exp>
|
||||
<table_valid_text></table_valid_text>
|
||||
<longtablename></longtablename>
|
||||
<ins_trig_exp></ins_trig_exp>
|
||||
<upd_trig_exp></upd_trig_exp>
|
||||
<del_trig_exp></del_trig_exp>
|
||||
<tablecomment></tablecomment>
|
||||
<autoinc_nextval>10</autoinc_nextval>
|
||||
<autoinc_step>2</autoinc_step>
|
||||
</FIELD>
|
||||
<FIELD>
|
||||
<name>BIGTEXT</name>
|
||||
<type>M</type>
|
||||
<width>4</width>
|
||||
<decimals>0</decimals>
|
||||
<null>.F.</null>
|
||||
<nocptran>.F.</nocptran>
|
||||
<field_valid_exp></field_valid_exp>
|
||||
<field_valid_text></field_valid_text>
|
||||
<field_default_value></field_default_value>
|
||||
<table_valid_exp></table_valid_exp>
|
||||
<table_valid_text></table_valid_text>
|
||||
<longtablename></longtablename>
|
||||
<ins_trig_exp></ins_trig_exp>
|
||||
<upd_trig_exp></upd_trig_exp>
|
||||
<del_trig_exp></del_trig_exp>
|
||||
<tablecomment></tablecomment>
|
||||
<autoinc_nextval>0</autoinc_nextval>
|
||||
<autoinc_step>0</autoinc_step>
|
||||
</FIELD>
|
||||
<FIELD>
|
||||
<name>DEPTO</name>
|
||||
<type>C</type>
|
||||
<width>10</width>
|
||||
<decimals>0</decimals>
|
||||
<null>.F.</null>
|
||||
<nocptran>.F.</nocptran>
|
||||
<field_valid_exp></field_valid_exp>
|
||||
<field_valid_text></field_valid_text>
|
||||
<field_default_value></field_default_value>
|
||||
<table_valid_exp></table_valid_exp>
|
||||
<table_valid_text></table_valid_text>
|
||||
<longtablename></longtablename>
|
||||
<ins_trig_exp></ins_trig_exp>
|
||||
<upd_trig_exp></upd_trig_exp>
|
||||
<del_trig_exp></del_trig_exp>
|
||||
<tablecomment></tablecomment>
|
||||
<autoinc_nextval>0</autoinc_nextval>
|
||||
<autoinc_step>0</autoinc_step>
|
||||
</FIELD>
|
||||
</FIELDS>
|
||||
|
||||
|
||||
<indexFile>C:\DESA\FOXBIN2PRG\TESTS\DATOS_READONLY\FB2P_DBF.CDX</indexFile>
|
||||
|
||||
<INDEXES>
|
||||
<INDEX>
|
||||
<tagname>ID</tagname>
|
||||
<collate>MACHINE</collate>
|
||||
<key>ID</key>
|
||||
<descending>.F.</descending>
|
||||
<for_exp></for_exp>
|
||||
</INDEX>
|
||||
<INDEX>
|
||||
<tagname>I_NOMBRE</tagname>
|
||||
<collate>GENERAL</collate>
|
||||
<key>NOMBRE</key>
|
||||
<descending>.F.</descending>
|
||||
<for_exp></for_exp>
|
||||
</INDEX>
|
||||
<INDEX>
|
||||
<tagname>DEPTO</tagname>
|
||||
<collate>MACHINE</collate>
|
||||
<key>DEPTO</key>
|
||||
<descending>.F.</descending>
|
||||
<for_exp></for_exp>
|
||||
</INDEX>
|
||||
</INDEXES>
|
||||
|
||||
</TABLE>
|
||||
409
TESTS/DATOS_READONLY/FB2P_FREE.DB2
Normal file
409
TESTS/DATOS_READONLY/FB2P_FREE.DB2
Normal file
@@ -0,0 +1,409 @@
|
||||
*--------------------------------------------------------------------------------------------------------------------------------------------------------
|
||||
* (ES) AUTOGENERADO - <20><>ATENCI<43>N!! - <20><>NO PENSADO PARA EJECUTAR!! USAR SOLAMENTE PARA INTEGRAR CAMBIOS Y ALMACENAR CON HERRAMIENTAS SCM!!
|
||||
* (EN) AUTOGENERATED - ATTENTION!! - NOT INTENDED FOR EXECUTION!! USE ONLY FOR MERGING CHANGES AND STORING WITH SCM TOOLS!!
|
||||
*--------------------------------------------------------------------------------------------------------------------------------------------------------
|
||||
*< FOXBIN2PRG: Version="1.14" SourceFile="C:\DESA\FOXBIN2PRG\TESTS\DATOS_READONLY\FB2P_FREE.DBF" Generated="2013/12/11 21:33:10" /> (Para uso con Visual FoxPro 9.0)
|
||||
*
|
||||
|
||||
<TABLE>
|
||||
<MemoFile>C:\DESA\FOXBIN2PRG\TESTS\DATOS_READONLY\FB2P_FREE.FPT</MemoFile>
|
||||
<CodePage>1252</CodePage>
|
||||
<LastUpdate>2013/12/11</LastUpdate>
|
||||
<Database></Database>
|
||||
<FileType>0x00000032</FileType>
|
||||
<FileType_Descrip>Visual FoxPro, Varchar, Varbinary, or Blob-enabled</FileType_Descrip>
|
||||
|
||||
<FIELDS>
|
||||
<FIELD>
|
||||
<Name>CARACTER</Name>
|
||||
<Type>C</Type>
|
||||
<Width>30</Width>
|
||||
<Decimals>0</Decimals>
|
||||
<Null>.T.</Null>
|
||||
<NoCPTran>.F.</NoCPTran>
|
||||
<Field_Valid_Exp></Field_Valid_Exp>
|
||||
<Field_Valid_Text></Field_Valid_Text>
|
||||
<Field_Default_Value></Field_Default_Value>
|
||||
<Table_Valid_Exp></Table_Valid_Exp>
|
||||
<Table_Valid_Text></Table_Valid_Text>
|
||||
<LongTableName></LongTableName>
|
||||
<Ins_Trig_Exp></Ins_Trig_Exp>
|
||||
<Upd_Trig_Exp></Upd_Trig_Exp>
|
||||
<Del_Trig_Exp></Del_Trig_Exp>
|
||||
<TableComment></TableComment>
|
||||
<Autoinc_Nextval>0</Autoinc_Nextval>
|
||||
<Autoinc_Step>0</Autoinc_Step>
|
||||
</FIELD>
|
||||
<FIELD>
|
||||
<Name>FECHA</Name>
|
||||
<Type>D</Type>
|
||||
<Width>8</Width>
|
||||
<Decimals>0</Decimals>
|
||||
<Null>.T.</Null>
|
||||
<NoCPTran>.F.</NoCPTran>
|
||||
<Field_Valid_Exp></Field_Valid_Exp>
|
||||
<Field_Valid_Text></Field_Valid_Text>
|
||||
<Field_Default_Value></Field_Default_Value>
|
||||
<Table_Valid_Exp></Table_Valid_Exp>
|
||||
<Table_Valid_Text></Table_Valid_Text>
|
||||
<LongTableName></LongTableName>
|
||||
<Ins_Trig_Exp></Ins_Trig_Exp>
|
||||
<Upd_Trig_Exp></Upd_Trig_Exp>
|
||||
<Del_Trig_Exp></Del_Trig_Exp>
|
||||
<TableComment></TableComment>
|
||||
<Autoinc_Nextval>0</Autoinc_Nextval>
|
||||
<Autoinc_Step>0</Autoinc_Step>
|
||||
</FIELD>
|
||||
<FIELD>
|
||||
<Name>FECHORA</Name>
|
||||
<Type>T</Type>
|
||||
<Width>8</Width>
|
||||
<Decimals>0</Decimals>
|
||||
<Null>.T.</Null>
|
||||
<NoCPTran>.F.</NoCPTran>
|
||||
<Field_Valid_Exp></Field_Valid_Exp>
|
||||
<Field_Valid_Text></Field_Valid_Text>
|
||||
<Field_Default_Value></Field_Default_Value>
|
||||
<Table_Valid_Exp></Table_Valid_Exp>
|
||||
<Table_Valid_Text></Table_Valid_Text>
|
||||
<LongTableName></LongTableName>
|
||||
<Ins_Trig_Exp></Ins_Trig_Exp>
|
||||
<Upd_Trig_Exp></Upd_Trig_Exp>
|
||||
<Del_Trig_Exp></Del_Trig_Exp>
|
||||
<TableComment></TableComment>
|
||||
<Autoinc_Nextval>0</Autoinc_Nextval>
|
||||
<Autoinc_Step>0</Autoinc_Step>
|
||||
</FIELD>
|
||||
<FIELD>
|
||||
<Name>LOGICO</Name>
|
||||
<Type>L</Type>
|
||||
<Width>1</Width>
|
||||
<Decimals>0</Decimals>
|
||||
<Null>.F.</Null>
|
||||
<NoCPTran>.F.</NoCPTran>
|
||||
<Field_Valid_Exp></Field_Valid_Exp>
|
||||
<Field_Valid_Text></Field_Valid_Text>
|
||||
<Field_Default_Value></Field_Default_Value>
|
||||
<Table_Valid_Exp></Table_Valid_Exp>
|
||||
<Table_Valid_Text></Table_Valid_Text>
|
||||
<LongTableName></LongTableName>
|
||||
<Ins_Trig_Exp></Ins_Trig_Exp>
|
||||
<Upd_Trig_Exp></Upd_Trig_Exp>
|
||||
<Del_Trig_Exp></Del_Trig_Exp>
|
||||
<TableComment></TableComment>
|
||||
<Autoinc_Nextval>0</Autoinc_Nextval>
|
||||
<Autoinc_Step>0</Autoinc_Step>
|
||||
</FIELD>
|
||||
<FIELD>
|
||||
<Name>DOBLE</Name>
|
||||
<Type>B</Type>
|
||||
<Width>8</Width>
|
||||
<Decimals>5</Decimals>
|
||||
<Null>.F.</Null>
|
||||
<NoCPTran>.F.</NoCPTran>
|
||||
<Field_Valid_Exp></Field_Valid_Exp>
|
||||
<Field_Valid_Text></Field_Valid_Text>
|
||||
<Field_Default_Value></Field_Default_Value>
|
||||
<Table_Valid_Exp></Table_Valid_Exp>
|
||||
<Table_Valid_Text></Table_Valid_Text>
|
||||
<LongTableName></LongTableName>
|
||||
<Ins_Trig_Exp></Ins_Trig_Exp>
|
||||
<Upd_Trig_Exp></Upd_Trig_Exp>
|
||||
<Del_Trig_Exp></Del_Trig_Exp>
|
||||
<TableComment></TableComment>
|
||||
<Autoinc_Nextval>0</Autoinc_Nextval>
|
||||
<Autoinc_Step>0</Autoinc_Step>
|
||||
</FIELD>
|
||||
<FIELD>
|
||||
<Name>FLOTANTE</Name>
|
||||
<Type>F</Type>
|
||||
<Width>10</Width>
|
||||
<Decimals>6</Decimals>
|
||||
<Null>.F.</Null>
|
||||
<NoCPTran>.F.</NoCPTran>
|
||||
<Field_Valid_Exp></Field_Valid_Exp>
|
||||
<Field_Valid_Text></Field_Valid_Text>
|
||||
<Field_Default_Value></Field_Default_Value>
|
||||
<Table_Valid_Exp></Table_Valid_Exp>
|
||||
<Table_Valid_Text></Table_Valid_Text>
|
||||
<LongTableName></LongTableName>
|
||||
<Ins_Trig_Exp></Ins_Trig_Exp>
|
||||
<Upd_Trig_Exp></Upd_Trig_Exp>
|
||||
<Del_Trig_Exp></Del_Trig_Exp>
|
||||
<TableComment></TableComment>
|
||||
<Autoinc_Nextval>0</Autoinc_Nextval>
|
||||
<Autoinc_Step>0</Autoinc_Step>
|
||||
</FIELD>
|
||||
<FIELD>
|
||||
<Name>NUMERICO</Name>
|
||||
<Type>N</Type>
|
||||
<Width>12</Width>
|
||||
<Decimals>3</Decimals>
|
||||
<Null>.F.</Null>
|
||||
<NoCPTran>.F.</NoCPTran>
|
||||
<Field_Valid_Exp></Field_Valid_Exp>
|
||||
<Field_Valid_Text></Field_Valid_Text>
|
||||
<Field_Default_Value></Field_Default_Value>
|
||||
<Table_Valid_Exp></Table_Valid_Exp>
|
||||
<Table_Valid_Text></Table_Valid_Text>
|
||||
<LongTableName></LongTableName>
|
||||
<Ins_Trig_Exp></Ins_Trig_Exp>
|
||||
<Upd_Trig_Exp></Upd_Trig_Exp>
|
||||
<Del_Trig_Exp></Del_Trig_Exp>
|
||||
<TableComment></TableComment>
|
||||
<Autoinc_Nextval>0</Autoinc_Nextval>
|
||||
<Autoinc_Step>0</Autoinc_Step>
|
||||
</FIELD>
|
||||
<FIELD>
|
||||
<Name>BLOB</Name>
|
||||
<Type>W</Type>
|
||||
<Width>4</Width>
|
||||
<Decimals>0</Decimals>
|
||||
<Null>.F.</Null>
|
||||
<NoCPTran>.F.</NoCPTran>
|
||||
<Field_Valid_Exp></Field_Valid_Exp>
|
||||
<Field_Valid_Text></Field_Valid_Text>
|
||||
<Field_Default_Value></Field_Default_Value>
|
||||
<Table_Valid_Exp></Table_Valid_Exp>
|
||||
<Table_Valid_Text></Table_Valid_Text>
|
||||
<LongTableName></LongTableName>
|
||||
<Ins_Trig_Exp></Ins_Trig_Exp>
|
||||
<Upd_Trig_Exp></Upd_Trig_Exp>
|
||||
<Del_Trig_Exp></Del_Trig_Exp>
|
||||
<TableComment></TableComment>
|
||||
<Autoinc_Nextval>0</Autoinc_Nextval>
|
||||
<Autoinc_Step>0</Autoinc_Step>
|
||||
</FIELD>
|
||||
<FIELD>
|
||||
<Name>MONEDA</Name>
|
||||
<Type>Y</Type>
|
||||
<Width>8</Width>
|
||||
<Decimals>4</Decimals>
|
||||
<Null>.F.</Null>
|
||||
<NoCPTran>.F.</NoCPTran>
|
||||
<Field_Valid_Exp></Field_Valid_Exp>
|
||||
<Field_Valid_Text></Field_Valid_Text>
|
||||
<Field_Default_Value></Field_Default_Value>
|
||||
<Table_Valid_Exp></Table_Valid_Exp>
|
||||
<Table_Valid_Text></Table_Valid_Text>
|
||||
<LongTableName></LongTableName>
|
||||
<Ins_Trig_Exp></Ins_Trig_Exp>
|
||||
<Upd_Trig_Exp></Upd_Trig_Exp>
|
||||
<Del_Trig_Exp></Del_Trig_Exp>
|
||||
<TableComment></TableComment>
|
||||
<Autoinc_Nextval>0</Autoinc_Nextval>
|
||||
<Autoinc_Step>0</Autoinc_Step>
|
||||
</FIELD>
|
||||
<FIELD>
|
||||
<Name>GENERAL</Name>
|
||||
<Type>G</Type>
|
||||
<Width>4</Width>
|
||||
<Decimals>0</Decimals>
|
||||
<Null>.F.</Null>
|
||||
<NoCPTran>.F.</NoCPTran>
|
||||
<Field_Valid_Exp></Field_Valid_Exp>
|
||||
<Field_Valid_Text></Field_Valid_Text>
|
||||
<Field_Default_Value></Field_Default_Value>
|
||||
<Table_Valid_Exp></Table_Valid_Exp>
|
||||
<Table_Valid_Text></Table_Valid_Text>
|
||||
<LongTableName></LongTableName>
|
||||
<Ins_Trig_Exp></Ins_Trig_Exp>
|
||||
<Upd_Trig_Exp></Upd_Trig_Exp>
|
||||
<Del_Trig_Exp></Del_Trig_Exp>
|
||||
<TableComment></TableComment>
|
||||
<Autoinc_Nextval>0</Autoinc_Nextval>
|
||||
<Autoinc_Step>0</Autoinc_Step>
|
||||
</FIELD>
|
||||
<FIELD>
|
||||
<Name>ENTERO</Name>
|
||||
<Type>I</Type>
|
||||
<Width>4</Width>
|
||||
<Decimals>0</Decimals>
|
||||
<Null>.F.</Null>
|
||||
<NoCPTran>.F.</NoCPTran>
|
||||
<Field_Valid_Exp></Field_Valid_Exp>
|
||||
<Field_Valid_Text></Field_Valid_Text>
|
||||
<Field_Default_Value></Field_Default_Value>
|
||||
<Table_Valid_Exp></Table_Valid_Exp>
|
||||
<Table_Valid_Text></Table_Valid_Text>
|
||||
<LongTableName></LongTableName>
|
||||
<Ins_Trig_Exp></Ins_Trig_Exp>
|
||||
<Upd_Trig_Exp></Upd_Trig_Exp>
|
||||
<Del_Trig_Exp></Del_Trig_Exp>
|
||||
<TableComment></TableComment>
|
||||
<Autoinc_Nextval>0</Autoinc_Nextval>
|
||||
<Autoinc_Step>0</Autoinc_Step>
|
||||
</FIELD>
|
||||
<FIELD>
|
||||
<Name>NOTAS</Name>
|
||||
<Type>M</Type>
|
||||
<Width>4</Width>
|
||||
<Decimals>0</Decimals>
|
||||
<Null>.F.</Null>
|
||||
<NoCPTran>.F.</NoCPTran>
|
||||
<Field_Valid_Exp></Field_Valid_Exp>
|
||||
<Field_Valid_Text></Field_Valid_Text>
|
||||
<Field_Default_Value></Field_Default_Value>
|
||||
<Table_Valid_Exp></Table_Valid_Exp>
|
||||
<Table_Valid_Text></Table_Valid_Text>
|
||||
<LongTableName></LongTableName>
|
||||
<Ins_Trig_Exp></Ins_Trig_Exp>
|
||||
<Upd_Trig_Exp></Upd_Trig_Exp>
|
||||
<Del_Trig_Exp></Del_Trig_Exp>
|
||||
<TableComment></TableComment>
|
||||
<Autoinc_Nextval>0</Autoinc_Nextval>
|
||||
<Autoinc_Step>0</Autoinc_Step>
|
||||
</FIELD>
|
||||
<FIELD>
|
||||
<Name>VAR_BINARY</Name>
|
||||
<Type>Q</Type>
|
||||
<Width>35</Width>
|
||||
<Decimals>0</Decimals>
|
||||
<Null>.F.</Null>
|
||||
<NoCPTran>.F.</NoCPTran>
|
||||
<Field_Valid_Exp></Field_Valid_Exp>
|
||||
<Field_Valid_Text></Field_Valid_Text>
|
||||
<Field_Default_Value></Field_Default_Value>
|
||||
<Table_Valid_Exp></Table_Valid_Exp>
|
||||
<Table_Valid_Text></Table_Valid_Text>
|
||||
<LongTableName></LongTableName>
|
||||
<Ins_Trig_Exp></Ins_Trig_Exp>
|
||||
<Upd_Trig_Exp></Upd_Trig_Exp>
|
||||
<Del_Trig_Exp></Del_Trig_Exp>
|
||||
<TableComment></TableComment>
|
||||
<Autoinc_Nextval>0</Autoinc_Nextval>
|
||||
<Autoinc_Step>0</Autoinc_Step>
|
||||
</FIELD>
|
||||
<FIELD>
|
||||
<Name>VAR_CHAR</Name>
|
||||
<Type>V</Type>
|
||||
<Width>36</Width>
|
||||
<Decimals>0</Decimals>
|
||||
<Null>.F.</Null>
|
||||
<NoCPTran>.F.</NoCPTran>
|
||||
<Field_Valid_Exp></Field_Valid_Exp>
|
||||
<Field_Valid_Text></Field_Valid_Text>
|
||||
<Field_Default_Value></Field_Default_Value>
|
||||
<Table_Valid_Exp></Table_Valid_Exp>
|
||||
<Table_Valid_Text></Table_Valid_Text>
|
||||
<LongTableName></LongTableName>
|
||||
<Ins_Trig_Exp></Ins_Trig_Exp>
|
||||
<Upd_Trig_Exp></Upd_Trig_Exp>
|
||||
<Del_Trig_Exp></Del_Trig_Exp>
|
||||
<TableComment></TableComment>
|
||||
<Autoinc_Nextval>0</Autoinc_Nextval>
|
||||
<Autoinc_Step>0</Autoinc_Step>
|
||||
</FIELD>
|
||||
<FIELD>
|
||||
<Name>NOTASBIN</Name>
|
||||
<Type>M</Type>
|
||||
<Width>4</Width>
|
||||
<Decimals>0</Decimals>
|
||||
<Null>.F.</Null>
|
||||
<NoCPTran>.T.</NoCPTran>
|
||||
<Field_Valid_Exp></Field_Valid_Exp>
|
||||
<Field_Valid_Text></Field_Valid_Text>
|
||||
<Field_Default_Value></Field_Default_Value>
|
||||
<Table_Valid_Exp></Table_Valid_Exp>
|
||||
<Table_Valid_Text></Table_Valid_Text>
|
||||
<LongTableName></LongTableName>
|
||||
<Ins_Trig_Exp></Ins_Trig_Exp>
|
||||
<Upd_Trig_Exp></Upd_Trig_Exp>
|
||||
<Del_Trig_Exp></Del_Trig_Exp>
|
||||
<TableComment></TableComment>
|
||||
<Autoinc_Nextval>0</Autoinc_Nextval>
|
||||
<Autoinc_Step>0</Autoinc_Step>
|
||||
</FIELD>
|
||||
<FIELD>
|
||||
<Name>CARC_BIN</Name>
|
||||
<Type>C</Type>
|
||||
<Width>30</Width>
|
||||
<Decimals>0</Decimals>
|
||||
<Null>.F.</Null>
|
||||
<NoCPTran>.T.</NoCPTran>
|
||||
<Field_Valid_Exp></Field_Valid_Exp>
|
||||
<Field_Valid_Text></Field_Valid_Text>
|
||||
<Field_Default_Value></Field_Default_Value>
|
||||
<Table_Valid_Exp></Table_Valid_Exp>
|
||||
<Table_Valid_Text></Table_Valid_Text>
|
||||
<LongTableName></LongTableName>
|
||||
<Ins_Trig_Exp></Ins_Trig_Exp>
|
||||
<Upd_Trig_Exp></Upd_Trig_Exp>
|
||||
<Del_Trig_Exp></Del_Trig_Exp>
|
||||
<TableComment></TableComment>
|
||||
<Autoinc_Nextval>0</Autoinc_Nextval>
|
||||
<Autoinc_Step>0</Autoinc_Step>
|
||||
</FIELD>
|
||||
<FIELD>
|
||||
<Name>VARCHARBIN</Name>
|
||||
<Type>V</Type>
|
||||
<Width>37</Width>
|
||||
<Decimals>0</Decimals>
|
||||
<Null>.F.</Null>
|
||||
<NoCPTran>.T.</NoCPTran>
|
||||
<Field_Valid_Exp></Field_Valid_Exp>
|
||||
<Field_Valid_Text></Field_Valid_Text>
|
||||
<Field_Default_Value></Field_Default_Value>
|
||||
<Table_Valid_Exp></Table_Valid_Exp>
|
||||
<Table_Valid_Text></Table_Valid_Text>
|
||||
<LongTableName></LongTableName>
|
||||
<Ins_Trig_Exp></Ins_Trig_Exp>
|
||||
<Upd_Trig_Exp></Upd_Trig_Exp>
|
||||
<Del_Trig_Exp></Del_Trig_Exp>
|
||||
<TableComment></TableComment>
|
||||
<Autoinc_Nextval>0</Autoinc_Nextval>
|
||||
<Autoinc_Step>0</Autoinc_Step>
|
||||
</FIELD>
|
||||
<FIELD>
|
||||
<Name>ID_AUTOINC</Name>
|
||||
<Type>I</Type>
|
||||
<Width>4</Width>
|
||||
<Decimals>0</Decimals>
|
||||
<Null>.F.</Null>
|
||||
<NoCPTran>.F.</NoCPTran>
|
||||
<Field_Valid_Exp></Field_Valid_Exp>
|
||||
<Field_Valid_Text></Field_Valid_Text>
|
||||
<Field_Default_Value></Field_Default_Value>
|
||||
<Table_Valid_Exp></Table_Valid_Exp>
|
||||
<Table_Valid_Text></Table_Valid_Text>
|
||||
<LongTableName></LongTableName>
|
||||
<Ins_Trig_Exp></Ins_Trig_Exp>
|
||||
<Upd_Trig_Exp></Upd_Trig_Exp>
|
||||
<Del_Trig_Exp></Del_Trig_Exp>
|
||||
<TableComment></TableComment>
|
||||
<Autoinc_Nextval>30</Autoinc_Nextval>
|
||||
<Autoinc_Step>5</Autoinc_Step>
|
||||
</FIELD>
|
||||
</FIELDS>
|
||||
|
||||
|
||||
<indexFile>C:\DESA\FOXBIN2PRG\TESTS\DATOS_READONLY\FB2P_FREE.CDX</indexFile>
|
||||
|
||||
<INDEXES>
|
||||
<INDEX>
|
||||
<TagName>LOGICO</TagName>
|
||||
<TagType>BINARY</TagType>
|
||||
<Key>LOGICO</Key>
|
||||
<Filter></Filter>
|
||||
<Order>ASCENDING</Order>
|
||||
<Collate>MACHINE</Collate>
|
||||
</INDEX>
|
||||
<INDEX>
|
||||
<TagName>ENTERO</TagName>
|
||||
<TagType>REGULAR</TagType>
|
||||
<Key>ENTERO</Key>
|
||||
<Filter></Filter>
|
||||
<Order>DESCENDING</Order>
|
||||
<Collate>MACHINE</Collate>
|
||||
</INDEX>
|
||||
<INDEX>
|
||||
<TagName>CARACTER</TagName>
|
||||
<TagType>CANDIDATE</TagType>
|
||||
<Key>CARACTER</Key>
|
||||
<Filter>.NOT.EMPTY(caracter)</Filter>
|
||||
<Order>ASCENDING</Order>
|
||||
<Collate>GENERAL</Collate>
|
||||
</INDEX>
|
||||
</INDEXES>
|
||||
|
||||
</TABLE>
|
||||
148
TESTS/ft__foxbin2prg__c_conversor_prg_a_dbc.prg
Normal file
148
TESTS/ft__foxbin2prg__c_conversor_prg_a_dbc.prg
Normal file
@@ -0,0 +1,148 @@
|
||||
DEFINE CLASS ft__foxbin2prg__c_conversor_prg_a_dbc AS FxuTestCase OF FxuTestCase.prg
|
||||
|
||||
#IF .F.
|
||||
LOCAL THIS AS ft__foxbin2prg__c_conversor_prg_a_dbc OF ft__foxbin2prg__c_conversor_prg_a_dbc.PRG
|
||||
#ENDIF
|
||||
|
||||
#DEFINE C_FB2P_VALUE_I '<fb2p_value>'
|
||||
#DEFINE C_FB2P_VALUE_F '</fb2p_value>'
|
||||
#DEFINE CR_LF CHR(13) + CHR(10)
|
||||
#DEFINE C_CR CHR(13)
|
||||
#DEFINE C_LF CHR(10)
|
||||
#DEFINE C_TAB CHR(9)
|
||||
#DEFINE C_PROC 'PROCEDURE'
|
||||
#DEFINE C_ENDPROC 'ENDPROC'
|
||||
#DEFINE C_TEXT 'TEXT'
|
||||
#DEFINE C_ENDTEXT 'ENDTEXT'
|
||||
#DEFINE C_IF_F '#IF .F.'
|
||||
#DEFINE C_ENDIF '#ENDIF'
|
||||
#DEFINE C_DEFINE_CLASS 'DEFINE CLASS'
|
||||
#DEFINE C_ENDDEFINE_CLASS 'ENDDEFINE'
|
||||
icObj = NULL
|
||||
|
||||
|
||||
*******************************************************************************************************************************************
|
||||
FUNCTION SETUP
|
||||
PUBLIC oFXU_LIB AS CL_FXU_CONFIG OF 'TESTS\fxu_lib_objetos_y_funciones_de_soporte.PRG'
|
||||
*LOCAL loObj AS c_conversor_base OF "FOXBIN2PRG.PRG"
|
||||
SET PROCEDURE TO 'TESTS\fxu_lib_objetos_y_funciones_de_soporte.PRG'
|
||||
oFXU_LIB = CREATEOBJECT('CL_FXU_CONFIG')
|
||||
oFXU_LIB.setup_comun()
|
||||
|
||||
*THIS.icObj = NEWOBJECT("c_conversor_base", "FOXBIN2PRG.PRG")
|
||||
*loObj = THIS.icObj
|
||||
*loObj.l_Test = .F.
|
||||
|
||||
ENDFUNC
|
||||
|
||||
|
||||
*******************************************************************************************************************************************
|
||||
FUNCTION TearDown
|
||||
#IF .F.
|
||||
PUBLIC oFXU_LIB AS CL_FXU_CONFIG OF 'TESTS\fxu_lib_objetos_y_funciones_de_soporte.PRG'
|
||||
#ENDIF
|
||||
THIS.icObj = NULL
|
||||
|
||||
IF VARTYPE(oFXU_LIB) = "O"
|
||||
oFXU_LIB.teardown_comun()
|
||||
oFXU_LIB = NULL
|
||||
ENDIF
|
||||
RELEASE PROCEDURE 'TESTS\fxu_lib_objetos_y_funciones_de_soporte.PRG'
|
||||
|
||||
ENDFUNC
|
||||
|
||||
|
||||
*******************************************************************************************************************************************
|
||||
FUNCTION Evaluate_results
|
||||
LPARAMETERS toEx AS EXCEPTION, tnCodError_Esperado
|
||||
|
||||
#IF .F.
|
||||
PUBLIC oFXU_LIB AS CL_FXU_CONFIG OF 'TESTS\fxu_lib_objetos_y_funciones_de_soporte.PRG'
|
||||
#ENDIF
|
||||
|
||||
IF PCOUNT() = 0
|
||||
THIS.messageout( "* Support method, not a valid test." )
|
||||
RETURN .T.
|
||||
ENDIF
|
||||
|
||||
|
||||
IF ISNULL(toEx)
|
||||
*-- Validaciones en m<>todo
|
||||
ELSE
|
||||
*-- Evaluaci<63>n de errores
|
||||
THIS.messageout( "Error " + TRANSFORM(toEx.ERRORNO) + ', ' + TRANSFORM(toEx.MESSAGE) )
|
||||
THIS.messageout( toEx.PROCEDURE + ', ' + TRANSFORM(toEx.LINENO) )
|
||||
IF NOT INLIST( toEx.ERRORNO, 1098, 2071 ) && Error del usuario (ERROR y THROW)
|
||||
THIS.messageout( TRANSFORM(toEx.LINECONTENTS) )
|
||||
ENDIF
|
||||
|
||||
THIS.assertequals( tnCodError_Esperado, toEx.ERRORNO, 'Error' )
|
||||
ENDIF
|
||||
|
||||
THIS.messageout( '' )
|
||||
THIS.messageout( REPLICATE('*',80) )
|
||||
ENDFUNC
|
||||
|
||||
|
||||
*******************************************************************************************************************************************
|
||||
FUNCTION Deberia_Ejecutar_FOXBIN2PRG_ParaElArchivo_FB2P_DBC_DC2_YRegenerarEl_DBC_ConTodosSusObjetos
|
||||
LOCAL lnCodError, lnCodError_Esperado ;
|
||||
, lc_File, lc_InputFile, lc_OutputFile, lcParent, lcClass, lcObjName, loReg_Esperado, loReg, lcTipoBinario ;
|
||||
, laCampos_IN(1,18), laCampos_OUT(1,18), lnFields_OUT, lnFields_IN, I, X, lcDC2, lcDC3 ;
|
||||
, loModulo AS CL_CLASE OF "FOXBIN2PRG.PRG" ;
|
||||
, loCnv AS c_foxbin2prg OF "FOXBIN2PRG.PRG" ;
|
||||
, loEx AS EXCEPTION
|
||||
#IF .F.
|
||||
PUBLIC oFXU_LIB AS CL_FXU_CONFIG OF 'TESTS\fxu_lib_objetos_y_funciones_de_soporte.PRG'
|
||||
#ENDIF
|
||||
|
||||
TRY
|
||||
loEx = NULL
|
||||
loCnv = NEWOBJECT("c_foxbin2prg", "FOXBIN2PRG.PRG")
|
||||
|
||||
|
||||
*-- DATOS DE ENTRADA
|
||||
STORE 0 TO lnCodError
|
||||
lc_File = 'FB2P_DBC.DBC'
|
||||
lc_InputFile = FORCEPATH( lc_File, 'TESTS\DATOS_READONLY' )
|
||||
lc_OutputFile = FORCEPATH( lc_File, 'TESTS\DATOS_TEST' )
|
||||
lcTipoBinario = UPPER( JUSTEXT( lc_OutputFile ) )
|
||||
|
||||
oFXU_LIB.copiarArchivosParaTest( FORCEEXT(lc_File,'*') )
|
||||
oFXU_LIB.copiarArchivosParaTest( 'EVENTSFILE.PRG' )
|
||||
|
||||
*-- Genero el DC2
|
||||
loCnv.Ejecutar( FORCEEXT(lc_File,'DBC'), '', '', '', '1', '0', '1',.F.,.F.,.T. )
|
||||
*-- Regenero el DBC
|
||||
loCnv.Ejecutar( FORCEEXT(lc_File,'DC2'), '', '', '', '1', '0', '1',.F.,.F.,.T. )
|
||||
*-- Renombro el DC2 a DC3 (ORIGINAL)
|
||||
RENAME (FORCEEXT(lc_OutputFile,'DC2')) TO (FORCEEXT(lc_OutputFile,'DC3'))
|
||||
*-- Genero el DC2 desde el DBC regenerado
|
||||
*WAIT WINDOW TIMEOUT 2 && Para forzar una diferencia de 2 segundos entre el DC2 y el DC3
|
||||
loCnv.Ejecutar( FORCEEXT(lc_File,'DBC'), '', '', '', '1', '0', '1',.F.,.F.,.T. )
|
||||
*-- Comparo los DC2 y DC3
|
||||
lcDC2 = STREXTRACT( FILETOSTR( FORCEEXT(lc_File,'DC2') ), '<DATABASE>', '</DATABASE>' )
|
||||
lcDC3 = STREXTRACT( FILETOSTR( FORCEEXT(lc_File,'DC3') ), '<DATABASE>', '</DATABASE>' )
|
||||
|
||||
|
||||
*-- Visualizaci<63>n de valores
|
||||
THIS.messageout( 'Bytes DC3: ' + TRANSFORM(LEN(lcDC3)) )
|
||||
THIS.messageout( 'Bytes DC2: ' + TRANSFORM(LEN(lcDC2)) )
|
||||
|
||||
|
||||
*-- Evaluaci<63>n de valores
|
||||
this.assertequals( lcDC2, lcDC3, '[Comparaci<63>n DC2 y DC3]' )
|
||||
|
||||
|
||||
CATCH TO loEx
|
||||
THIS.Evaluate_results( loEx, lnCodError_Esperado )
|
||||
|
||||
FINALLY
|
||||
USE IN (SELECT("ARCHIVOBIN_IN"))
|
||||
USE IN (SELECT("TABLABIN"))
|
||||
ENDTRY
|
||||
|
||||
ENDFUNC
|
||||
|
||||
|
||||
ENDDEFINE
|
||||
367
TESTS/ft__foxbin2prg__c_conversor_prg_a_dbf.prg
Normal file
367
TESTS/ft__foxbin2prg__c_conversor_prg_a_dbf.prg
Normal file
@@ -0,0 +1,367 @@
|
||||
DEFINE CLASS ft__foxbin2prg__c_conversor_prg_a_dbf AS FxuTestCase OF FxuTestCase.prg
|
||||
|
||||
#IF .F.
|
||||
LOCAL THIS AS ft__foxbin2prg__c_conversor_prg_a_dbf OF ft__foxbin2prg__c_conversor_prg_a_dbf.PRG
|
||||
#ENDIF
|
||||
|
||||
#DEFINE C_FB2P_VALUE_I '<fb2p_value>'
|
||||
#DEFINE C_FB2P_VALUE_F '</fb2p_value>'
|
||||
#DEFINE CR_LF CHR(13) + CHR(10)
|
||||
#DEFINE C_CR CHR(13)
|
||||
#DEFINE C_LF CHR(10)
|
||||
#DEFINE C_TAB CHR(9)
|
||||
#DEFINE C_PROC 'PROCEDURE'
|
||||
#DEFINE C_ENDPROC 'ENDPROC'
|
||||
#DEFINE C_TEXT 'TEXT'
|
||||
#DEFINE C_ENDTEXT 'ENDTEXT'
|
||||
#DEFINE C_IF_F '#IF .F.'
|
||||
#DEFINE C_ENDIF '#ENDIF'
|
||||
#DEFINE C_DEFINE_CLASS 'DEFINE CLASS'
|
||||
#DEFINE C_ENDDEFINE_CLASS 'ENDDEFINE'
|
||||
icObj = NULL
|
||||
|
||||
|
||||
*******************************************************************************************************************************************
|
||||
FUNCTION SETUP
|
||||
PUBLIC oFXU_LIB AS CL_FXU_CONFIG OF 'TESTS\fxu_lib_objetos_y_funciones_de_soporte.PRG'
|
||||
*LOCAL loObj AS c_conversor_base OF "FOXBIN2PRG.PRG"
|
||||
SET PROCEDURE TO 'TESTS\fxu_lib_objetos_y_funciones_de_soporte.PRG'
|
||||
oFXU_LIB = CREATEOBJECT('CL_FXU_CONFIG')
|
||||
oFXU_LIB.setup_comun()
|
||||
|
||||
*THIS.icObj = NEWOBJECT("c_conversor_base", "FOXBIN2PRG.PRG")
|
||||
*loObj = THIS.icObj
|
||||
*loObj.l_Test = .F.
|
||||
|
||||
ENDFUNC
|
||||
|
||||
|
||||
*******************************************************************************************************************************************
|
||||
FUNCTION TearDown
|
||||
#IF .F.
|
||||
PUBLIC oFXU_LIB AS CL_FXU_CONFIG OF 'TESTS\fxu_lib_objetos_y_funciones_de_soporte.PRG'
|
||||
#ENDIF
|
||||
THIS.icObj = NULL
|
||||
|
||||
IF VARTYPE(oFXU_LIB) = "O"
|
||||
oFXU_LIB.teardown_comun()
|
||||
oFXU_LIB = NULL
|
||||
ENDIF
|
||||
RELEASE PROCEDURE 'TESTS\fxu_lib_objetos_y_funciones_de_soporte.PRG'
|
||||
|
||||
ENDFUNC
|
||||
|
||||
|
||||
*******************************************************************************************************************************************
|
||||
FUNCTION Evaluate_results
|
||||
LPARAMETERS toEx AS EXCEPTION, tnCodError_Esperado
|
||||
|
||||
#IF .F.
|
||||
PUBLIC oFXU_LIB AS CL_FXU_CONFIG OF 'TESTS\fxu_lib_objetos_y_funciones_de_soporte.PRG'
|
||||
#ENDIF
|
||||
|
||||
IF PCOUNT() = 0
|
||||
THIS.messageout( "* Support method, not a valid test." )
|
||||
RETURN .T.
|
||||
ENDIF
|
||||
|
||||
|
||||
IF ISNULL(toEx)
|
||||
*-- Validaciones en m<>todo
|
||||
ELSE
|
||||
*-- Evaluaci<63>n de errores
|
||||
THIS.messageout( "Error " + TRANSFORM(toEx.ERRORNO) + ', ' + TRANSFORM(toEx.MESSAGE) )
|
||||
THIS.messageout( toEx.PROCEDURE + ', ' + TRANSFORM(toEx.LINENO) )
|
||||
IF NOT INLIST( toEx.ERRORNO, 1098, 2071 ) && Error del usuario (ERROR y THROW)
|
||||
THIS.messageout( TRANSFORM(toEx.LINECONTENTS) )
|
||||
ENDIF
|
||||
|
||||
THIS.assertequals( tnCodError_Esperado, toEx.ERRORNO, 'Error' )
|
||||
ENDIF
|
||||
|
||||
THIS.messageout( '' )
|
||||
THIS.messageout( REPLICATE('*',80) )
|
||||
ENDFUNC
|
||||
|
||||
|
||||
*******************************************************************************************************************************************
|
||||
FUNCTION Deberia_Ejecutar_FOXBIN2PRG_ParaElArchivo_FB2P_FREE_DB2_YValidarQueGenereUn_DBF_ConTodosLosCamposYLasMismasDefinicionesYOrden
|
||||
LOCAL lnCodError, lnCodError_Esperado ;
|
||||
, lc_File, lc_InputFile, lc_OutputFile, lcParent, lcClass, lcObjName, loReg_Esperado, loReg, lcTipoBinario ;
|
||||
, laCampos_IN(1,18), laCampos_OUT(1,18), lnFields_OUT, lnFields_IN, I, X ;
|
||||
, loModulo AS CL_CLASE OF "FOXBIN2PRG.PRG" ;
|
||||
, loCnv AS c_foxbin2prg OF "FOXBIN2PRG.PRG" ;
|
||||
, loEx AS EXCEPTION
|
||||
#IF .F.
|
||||
PUBLIC oFXU_LIB AS CL_FXU_CONFIG OF 'TESTS\fxu_lib_objetos_y_funciones_de_soporte.PRG'
|
||||
#ENDIF
|
||||
|
||||
TRY
|
||||
loEx = NULL
|
||||
loCnv = NEWOBJECT("c_foxbin2prg", "FOXBIN2PRG.PRG")
|
||||
|
||||
|
||||
*-- DATOS DE ENTRADA
|
||||
STORE 0 TO lnCodError
|
||||
lc_File = 'FB2P_FREE.DB2'
|
||||
lc_InputFile = FORCEPATH( lc_File, 'TESTS\DATOS_READONLY' )
|
||||
lc_OutputFile = FORCEPATH( lc_File, 'TESTS\DATOS_TEST' )
|
||||
lcTipoBinario = UPPER( JUSTEXT( lc_OutputFile ) )
|
||||
|
||||
oFXU_LIB.copiarArchivosParaTest( lc_File )
|
||||
|
||||
loCnv.Ejecutar( lc_File, '', '', '', '1', '0', '1',.F.,.F.,.T. )
|
||||
|
||||
SELECT 0
|
||||
USE (FORCEEXT(lc_InputFile,'DBF')) SHARED AGAIN NOUPDATE ALIAS ARCHIVOBIN_IN
|
||||
SELECT 0
|
||||
USE (FORCEEXT(lc_OutputFile,'DBF')) SHARED AGAIN NOUPDATE ALIAS TABLABIN
|
||||
lnFields_OUT = AFIELDS( laCampos_OUT, 'TABLABIN' )
|
||||
lnFields_IN = AFIELDS( laCampos_IN, 'ARCHIVOBIN_IN' )
|
||||
|
||||
|
||||
*-- Visualizaci<63>n de valores
|
||||
THIS.messageout( 'Cantidad de campos: ' + TRANSFORM(lnFields_OUT) )
|
||||
THIS.messageout( '' )
|
||||
THIS.messageout( PADR('Nombre',12) + ' ' + PADC('Tipo',4) + ' ' + PADL('Long',4) + ' ' + PADL('Dec',4) )
|
||||
THIS.messageout( PADR('----------',12) + ' ' + PADC('----',4) + ' ' + PADL('----',4) + ' ' + PADL('---',4) )
|
||||
|
||||
FOR I = 1 TO lnFields_IN
|
||||
THIS.messageout( PADR(laCampos_IN(I,1),12) + ' ' + PADC(laCampos_IN(I,2),4) + ' ' + PADL(laCampos_IN(I,3),4) + ' ' + PADL(laCampos_IN(I,4),4) )
|
||||
ENDFOR
|
||||
|
||||
THIS.messageout( PADR('----------',12) + ' ' + PADC('----',4) + ' ' + PADL('----',4) + ' ' + PADL('---',4) )
|
||||
|
||||
|
||||
*-- Evaluaci<63>n de valores
|
||||
this.assertequals( lnFields_OUT, lnFields_IN, '[Cantidad de campos IN y OUT]' )
|
||||
|
||||
FOR I = 1 TO lnFields_IN
|
||||
FOR X = 1 TO 18
|
||||
THIS.assertequals( laCampos_IN(I,X), laCampos_OUT(I,X), '[Comparando estructura del campo ' + laCampos_IN(I,1) + ']' )
|
||||
ENDFOR
|
||||
ENDFOR
|
||||
|
||||
CATCH TO loEx
|
||||
THIS.Evaluate_results( loEx, lnCodError_Esperado )
|
||||
|
||||
FINALLY
|
||||
USE IN (SELECT("ARCHIVOBIN_IN"))
|
||||
USE IN (SELECT("TABLABIN"))
|
||||
ENDTRY
|
||||
|
||||
ENDFUNC
|
||||
|
||||
|
||||
*******************************************************************************************************************************************
|
||||
FUNCTION Deberia_Ejecutar_FOXBIN2PRG_ParaElArchivo_FB2P_FREE_DB2_YValidarQueGenereUn_DBF_ConLosMismosIndices
|
||||
LOCAL lnCodError, lnCodError_Esperado ;
|
||||
, lc_File, lc_InputFile, lc_OutputFile, lcParent, lcClass, lcObjName, loReg_Esperado, loReg, lcTipoBinario ;
|
||||
, laIndices_IN(1,18), laIndices_OUT(1,18), lnIndices_OUT, lnIndices_IN, I, X ;
|
||||
, loModulo AS CL_CLASE OF "FOXBIN2PRG.PRG" ;
|
||||
, loCnv AS c_foxbin2prg OF "FOXBIN2PRG.PRG" ;
|
||||
, loEx AS EXCEPTION
|
||||
#IF .F.
|
||||
PUBLIC oFXU_LIB AS CL_FXU_CONFIG OF 'TESTS\fxu_lib_objetos_y_funciones_de_soporte.PRG'
|
||||
#ENDIF
|
||||
|
||||
TRY
|
||||
loEx = NULL
|
||||
loCnv = NEWOBJECT("c_foxbin2prg", "FOXBIN2PRG.PRG")
|
||||
|
||||
|
||||
*-- DATOS DE ENTRADA
|
||||
STORE 0 TO lnCodError
|
||||
lc_File = 'FB2P_FREE.DB2'
|
||||
lc_InputFile = FORCEPATH( lc_File, 'TESTS\DATOS_READONLY' )
|
||||
lc_OutputFile = FORCEPATH( lc_File, 'TESTS\DATOS_TEST' )
|
||||
lcTipoBinario = UPPER( JUSTEXT( lc_OutputFile ) )
|
||||
|
||||
oFXU_LIB.copiarArchivosParaTest( lc_File )
|
||||
|
||||
loCnv.Ejecutar( lc_File, '', '', '', '1', '0', '1',.F.,.F.,.T. )
|
||||
|
||||
SELECT 0
|
||||
USE (FORCEEXT(lc_InputFile,'DBF')) SHARED AGAIN NOUPDATE ALIAS ARCHIVOBIN_IN
|
||||
SELECT 0
|
||||
USE (FORCEEXT(lc_OutputFile,'DBF')) SHARED AGAIN NOUPDATE ALIAS TABLABIN
|
||||
lnIndices_IN = ATAGINFO( laIndices_IN, '', 'ARCHIVOBIN_IN' )
|
||||
lnIndices_OUT = ATAGINFO( laIndices_OUT, '', 'TABLABIN' )
|
||||
|
||||
|
||||
*-- Visualizaci<63>n de valores
|
||||
THIS.messageout( 'Cantidad de <20>ndices para [' + DBF("TABLABIN") + ']: ' + TRANSFORM(lnIndices_OUT) )
|
||||
THIS.messageout( '' )
|
||||
THIS.messageout( PADR('Tag',12) + ' ' + PADR('Tipo',12) + ' ' + PADR('Clave',30) + ' ' + PADR('Filtro',30) + ' ' + PADR('Order',12) + ' ' + PADR('Collate',12) )
|
||||
THIS.messageout( PADR('----------',12) + ' ' + PADR('----------',12) + ' ' + PADR('----------------------------',30) + ' ' + PADR('----------------------------',30) + ' ' + PADR('----------',12) + ' ' + PADR('----------',12) )
|
||||
|
||||
FOR I = 1 TO lnIndices_OUT
|
||||
THIS.messageout( PADR(laIndices_OUT(I,1),12) + ' ' + PADR(laIndices_OUT(I,2),12) + ' ' + PADR(laIndices_OUT(I,3),30) + ' ' + PADR(laIndices_OUT(I,4),30) ;
|
||||
+ ' ' + PADR(laIndices_OUT(I,5),12) + ' ' + PADR(laIndices_OUT(I,6),12) )
|
||||
ENDFOR
|
||||
|
||||
THIS.messageout( PADR('----------',12) + ' ' + PADR('----------',12) + ' ' + PADR('----------------------------',30) + ' ' + PADR('----------------------------',30) + ' ' + PADR('----------',12) + ' ' + PADR('----------',12) )
|
||||
|
||||
|
||||
*-- Evaluaci<63>n de valores
|
||||
this.assertequals( lnIndices_OUT, lnIndices_IN, '[Cantidad de campos IN y OUT]' )
|
||||
|
||||
FOR I = 1 TO lnIndices_IN
|
||||
FOR X = 1 TO 6
|
||||
THIS.assertequals( laIndices_IN(I,X), laIndices_OUT(I,X), '[Comparando estructura del indice ' + laIndices_IN(I,1) + ']' )
|
||||
ENDFOR
|
||||
ENDFOR
|
||||
|
||||
CATCH TO loEx
|
||||
THIS.Evaluate_results( loEx, lnCodError_Esperado )
|
||||
|
||||
FINALLY
|
||||
USE IN (SELECT("ARCHIVOBIN_IN"))
|
||||
USE IN (SELECT("TABLABIN"))
|
||||
ENDTRY
|
||||
|
||||
ENDFUNC
|
||||
|
||||
|
||||
*******************************************************************************************************************************************
|
||||
FUNCTION Deberia_Ejecutar_FOXBIN2PRG_ParaLaTabla_FB2P_FREE_DBF_YValidarQueGenereUn_DB2yDBF_ConTodosLosCamposYLasMismasDefinicionesYOrden
|
||||
LOCAL lnCodError, lnCodError_Esperado ;
|
||||
, lc_File, lc_InputFile, lc_OutputFile, lcParent, lcClass, lcObjName, loReg_Esperado, loReg, lcTipoBinario ;
|
||||
, laCampos_IN(1,18), laCampos_OUT(1,18), lnFields_OUT, lnFields_IN, I, X ;
|
||||
, loModulo AS CL_CLASE OF "FOXBIN2PRG.PRG" ;
|
||||
, loCnv AS c_foxbin2prg OF "FOXBIN2PRG.PRG" ;
|
||||
, loEx AS EXCEPTION
|
||||
#IF .F.
|
||||
PUBLIC oFXU_LIB AS CL_FXU_CONFIG OF 'TESTS\fxu_lib_objetos_y_funciones_de_soporte.PRG'
|
||||
#ENDIF
|
||||
|
||||
TRY
|
||||
loEx = NULL
|
||||
loCnv = NEWOBJECT("c_foxbin2prg", "FOXBIN2PRG.PRG")
|
||||
|
||||
|
||||
*-- DATOS DE ENTRADA
|
||||
STORE 0 TO lnCodError
|
||||
lc_File = 'FB2P_FREE.DB2'
|
||||
lc_InputFile = FORCEPATH( lc_File, 'TESTS\DATOS_READONLY' )
|
||||
lc_OutputFile = FORCEPATH( lc_File, 'TESTS\DATOS_TEST' )
|
||||
lcTipoBinario = UPPER( JUSTEXT( lc_OutputFile ) )
|
||||
|
||||
oFXU_LIB.copiarArchivosParaTest( FORCEEXT(lc_File,'*') )
|
||||
|
||||
loCnv.Ejecutar( FORCEEXT(lc_File,'DBF'), '', '', '', '1', '0', '1',.F.,.F.,.T. )
|
||||
loCnv.Ejecutar( FORCEEXT(lc_File,'DB2'), '', '', '', '1', '0', '1',.F.,.F.,.T. )
|
||||
|
||||
SELECT 0
|
||||
USE (FORCEEXT(lc_InputFile,'DBF')) SHARED AGAIN NOUPDATE ALIAS ARCHIVOBIN_IN
|
||||
SELECT 0
|
||||
USE (FORCEEXT(lc_OutputFile,'DBF')) SHARED AGAIN NOUPDATE ALIAS TABLABIN
|
||||
lnFields_OUT = AFIELDS( laCampos_OUT, 'TABLABIN' )
|
||||
lnFields_IN = AFIELDS( laCampos_IN, 'ARCHIVOBIN_IN' )
|
||||
|
||||
|
||||
*-- Visualizaci<63>n de valores
|
||||
THIS.messageout( 'Cantidad de campos: ' + TRANSFORM(lnFields_OUT) )
|
||||
THIS.messageout( '' )
|
||||
THIS.messageout( PADR('Nombre',12) + ' ' + PADC('Tipo',4) + ' ' + PADL('Long',4) + ' ' + PADL('Dec',4) )
|
||||
THIS.messageout( PADR('----------',12) + ' ' + PADC('----',4) + ' ' + PADL('----',4) + ' ' + PADL('---',4) )
|
||||
|
||||
FOR I = 1 TO lnFields_IN
|
||||
THIS.messageout( PADR(laCampos_IN(I,1),12) + ' ' + PADC(laCampos_IN(I,2),4) + ' ' + PADL(laCampos_IN(I,3),4) + ' ' + PADL(laCampos_IN(I,4),4) )
|
||||
ENDFOR
|
||||
|
||||
THIS.messageout( PADR('----------',12) + ' ' + PADC('----',4) + ' ' + PADL('----',4) + ' ' + PADL('---',4) )
|
||||
|
||||
|
||||
*-- Evaluaci<63>n de valores
|
||||
this.assertequals( lnFields_OUT, lnFields_IN, '[Cantidad de campos IN y OUT]' )
|
||||
|
||||
FOR I = 1 TO lnFields_IN
|
||||
FOR X = 1 TO 18
|
||||
THIS.assertequals( laCampos_IN(I,X), laCampos_OUT(I,X), '[Comparando estructura del campo ' + laCampos_IN(I,1) + ']' )
|
||||
ENDFOR
|
||||
ENDFOR
|
||||
|
||||
CATCH TO loEx
|
||||
THIS.Evaluate_results( loEx, lnCodError_Esperado )
|
||||
|
||||
FINALLY
|
||||
USE IN (SELECT("ARCHIVOBIN_IN"))
|
||||
USE IN (SELECT("TABLABIN"))
|
||||
ENDTRY
|
||||
|
||||
ENDFUNC
|
||||
|
||||
|
||||
*******************************************************************************************************************************************
|
||||
FUNCTION Deberia_Ejecutar_FOXBIN2PRG_ParaLaTabla_FB2P_FREE_DBF_YValidarQueGenereUn_DB2yDBF_ConLosMismosIndices
|
||||
LOCAL lnCodError, lnCodError_Esperado ;
|
||||
, lc_File, lc_InputFile, lc_OutputFile, lcParent, lcClass, lcObjName, loReg_Esperado, loReg, lcTipoBinario ;
|
||||
, laIndices_IN(1,18), laIndices_OUT(1,18), lnIndices_OUT, lnIndices_IN, I, X ;
|
||||
, loModulo AS CL_CLASE OF "FOXBIN2PRG.PRG" ;
|
||||
, loCnv AS c_foxbin2prg OF "FOXBIN2PRG.PRG" ;
|
||||
, loEx AS EXCEPTION
|
||||
#IF .F.
|
||||
PUBLIC oFXU_LIB AS CL_FXU_CONFIG OF 'TESTS\fxu_lib_objetos_y_funciones_de_soporte.PRG'
|
||||
#ENDIF
|
||||
|
||||
TRY
|
||||
loEx = NULL
|
||||
loCnv = NEWOBJECT("c_foxbin2prg", "FOXBIN2PRG.PRG")
|
||||
|
||||
|
||||
*-- DATOS DE ENTRADA
|
||||
STORE 0 TO lnCodError
|
||||
lc_File = 'FB2P_FREE.DB2'
|
||||
lc_InputFile = FORCEPATH( lc_File, 'TESTS\DATOS_READONLY' )
|
||||
lc_OutputFile = FORCEPATH( lc_File, 'TESTS\DATOS_TEST' )
|
||||
lcTipoBinario = UPPER( JUSTEXT( lc_OutputFile ) )
|
||||
|
||||
oFXU_LIB.copiarArchivosParaTest( FORCEEXT(lc_File,'*') )
|
||||
|
||||
loCnv.Ejecutar( FORCEEXT(lc_File,'DBF'), '', '', '', '1', '0', '1',.F.,.F.,.T. )
|
||||
loCnv.Ejecutar( FORCEEXT(lc_File,'DB2'), '', '', '', '1', '0', '1',.F.,.F.,.T. )
|
||||
|
||||
SELECT 0
|
||||
USE (FORCEEXT(lc_InputFile,'DBF')) SHARED AGAIN NOUPDATE ALIAS ARCHIVOBIN_IN
|
||||
SELECT 0
|
||||
USE (FORCEEXT(lc_OutputFile,'DBF')) SHARED AGAIN NOUPDATE ALIAS TABLABIN
|
||||
lnIndices_IN = ATAGINFO( laIndices_IN, '', 'ARCHIVOBIN_IN' )
|
||||
lnIndices_OUT = ATAGINFO( laIndices_OUT, '', 'TABLABIN' )
|
||||
|
||||
|
||||
*-- Visualizaci<63>n de valores
|
||||
THIS.messageout( 'Cantidad de <20>ndices para [' + DBF("TABLABIN") + ']: ' + TRANSFORM(lnIndices_OUT) )
|
||||
THIS.messageout( '' )
|
||||
THIS.messageout( PADR('Tag',12) + ' ' + PADR('Tipo',12) + ' ' + PADR('Clave',30) + ' ' + PADR('Filtro',30) + ' ' + PADR('Order',12) + ' ' + PADR('Collate',12) )
|
||||
THIS.messageout( PADR('----------',12) + ' ' + PADR('----------',12) + ' ' + PADR('----------------------------',30) + ' ' + PADR('----------------------------',30) + ' ' + PADR('----------',12) + ' ' + PADR('----------',12) )
|
||||
|
||||
FOR I = 1 TO lnIndices_OUT
|
||||
THIS.messageout( PADR(laIndices_OUT(I,1),12) + ' ' + PADR(laIndices_OUT(I,2),12) + ' ' + PADR(laIndices_OUT(I,3),30) + ' ' + PADR(laIndices_OUT(I,4),30) ;
|
||||
+ ' ' + PADR(laIndices_OUT(I,5),12) + ' ' + PADR(laIndices_OUT(I,6),12) )
|
||||
ENDFOR
|
||||
|
||||
THIS.messageout( PADR('----------',12) + ' ' + PADR('----------',12) + ' ' + PADR('----------------------------',30) + ' ' + PADR('----------------------------',30) + ' ' + PADR('----------',12) + ' ' + PADR('----------',12) )
|
||||
|
||||
|
||||
*-- Evaluaci<63>n de valores
|
||||
this.assertequals( lnIndices_OUT, lnIndices_IN, '[Cantidad de campos IN y OUT]' )
|
||||
|
||||
FOR I = 1 TO lnIndices_IN
|
||||
FOR X = 1 TO 6
|
||||
THIS.assertequals( laIndices_IN(I,X), laIndices_OUT(I,X), '[Comparando estructura del indice ' + laIndices_IN(I,1) + ']' )
|
||||
ENDFOR
|
||||
ENDFOR
|
||||
|
||||
CATCH TO loEx
|
||||
THIS.Evaluate_results( loEx, lnCodError_Esperado )
|
||||
|
||||
FINALLY
|
||||
USE IN (SELECT("ARCHIVOBIN_IN"))
|
||||
USE IN (SELECT("TABLABIN"))
|
||||
ENDTRY
|
||||
|
||||
ENDFUNC
|
||||
|
||||
|
||||
ENDDEFINE
|
||||
@@ -298,7 +298,7 @@ DEFINE CLASS ut__foxbin2prg AS FxuTestCase OF FxuTestCase.prg
|
||||
loCnv.Convertir( FORCEEXT(lc_OutputFile, LEFT( JUSTEXT(lc_File),2 ) + '2' ), .F., .F., .T. )
|
||||
|
||||
SELECT 0
|
||||
USE (lc_InputFile) SHARED AGAIN NOUPDATE ALIAS ARCHIBOBIN_IN
|
||||
USE (lc_InputFile) SHARED AGAIN NOUPDATE ALIAS ARCHIVOBIN_IN
|
||||
|
||||
SCAN ALL FOR NOT DELETED()
|
||||
*-- DATOS ESPERADOS
|
||||
@@ -318,7 +318,7 @@ DEFINE CLASS ut__foxbin2prg AS FxuTestCase OF FxuTestCase.prg
|
||||
LOCATE FOR UNIQUEID==lcUniqueID
|
||||
|
||||
IF NOT FOUND()
|
||||
ERROR 'No se encontr<74> el registro #' + TRANSFORM(RECNO('ARCHIBOBIN_IN')) + ' con UniqueID "' + lcUniqueID + '" en el archivo "' + lc_OutputFile + '"'
|
||||
ERROR 'No se encontr<74> el registro #' + TRANSFORM(RECNO('ARCHIVOBIN_IN')) + ' con UniqueID "' + lcUniqueID + '" en el archivo "' + lc_OutputFile + '"'
|
||||
ENDIF
|
||||
|
||||
SCATTER MEMO NAME loReg
|
||||
@@ -332,7 +332,7 @@ DEFINE CLASS ut__foxbin2prg AS FxuTestCase OF FxuTestCase.prg
|
||||
THIS.Evaluate_results( loEx, lnCodError_Esperado, lc_OutputFile, lcParent, lcClass, lcObjName, loReg_Esperado )
|
||||
|
||||
FINALLY
|
||||
USE IN (SELECT("ARCHIBOBIN_IN"))
|
||||
USE IN (SELECT("ARCHIVOBIN_IN"))
|
||||
ENDTRY
|
||||
|
||||
ENDFUNC
|
||||
@@ -372,7 +372,7 @@ DEFINE CLASS ut__foxbin2prg AS FxuTestCase OF FxuTestCase.prg
|
||||
loCnv.Convertir( FORCEEXT(lc_OutputFile, LEFT( JUSTEXT(lc_File),2 ) + '2' ), .F., .F., .T. )
|
||||
|
||||
SELECT 0
|
||||
USE (lc_InputFile) SHARED AGAIN NOUPDATE ALIAS ARCHIBOBIN_IN
|
||||
USE (lc_InputFile) SHARED AGAIN NOUPDATE ALIAS ARCHIVOBIN_IN
|
||||
|
||||
SCAN ALL FOR NOT DELETED()
|
||||
*-- DATOS ESPERADOS
|
||||
@@ -392,7 +392,7 @@ DEFINE CLASS ut__foxbin2prg AS FxuTestCase OF FxuTestCase.prg
|
||||
LOCATE FOR UNIQUEID==lcUniqueID
|
||||
|
||||
IF NOT FOUND()
|
||||
ERROR 'No se encontr<74> el registro #' + TRANSFORM(RECNO('ARCHIBOBIN_IN')) + ' con UniqueID "' + lcUniqueID + '" en el archivo "' + lc_OutputFile + '"'
|
||||
ERROR 'No se encontr<74> el registro #' + TRANSFORM(RECNO('ARCHIVOBIN_IN')) + ' con UniqueID "' + lcUniqueID + '" en el archivo "' + lc_OutputFile + '"'
|
||||
ENDIF
|
||||
|
||||
SCATTER MEMO NAME loReg
|
||||
@@ -406,7 +406,7 @@ DEFINE CLASS ut__foxbin2prg AS FxuTestCase OF FxuTestCase.prg
|
||||
THIS.Evaluate_results( loEx, lnCodError_Esperado, lc_OutputFile, lcParent, lcClass, lcObjName, loReg_Esperado )
|
||||
|
||||
FINALLY
|
||||
USE IN (SELECT("ARCHIBOBIN_IN"))
|
||||
USE IN (SELECT("ARCHIVOBIN_IN"))
|
||||
ENDTRY
|
||||
|
||||
ENDFUNC
|
||||
@@ -444,7 +444,7 @@ DEFINE CLASS ut__foxbin2prg AS FxuTestCase OF FxuTestCase.prg
|
||||
loCnv.Convertir( FORCEEXT(lc_OutputFile, LEFT( JUSTEXT(lc_File),2 ) + '2' ), .F., .F., .T. )
|
||||
|
||||
SELECT 0
|
||||
USE (lc_InputFile) SHARED AGAIN NOUPDATE ALIAS ARCHIBOBIN_IN
|
||||
USE (lc_InputFile) SHARED AGAIN NOUPDATE ALIAS ARCHIVOBIN_IN
|
||||
|
||||
SCAN ALL FOR NOT DELETED() AND ( UNIQUEID==PADR('Form',10) OR PLATFORM==PADR("WINDOWS",8) )
|
||||
*-- DATOS ESPERADOS
|
||||
@@ -485,7 +485,7 @@ DEFINE CLASS ut__foxbin2prg AS FxuTestCase OF FxuTestCase.prg
|
||||
THIS.Evaluate_results( loEx, lnCodError_Esperado, lc_OutputFile, lcParent, lcClass, lcObjName, loReg_Esperado )
|
||||
|
||||
FINALLY
|
||||
USE IN (SELECT("ARCHIBOBIN_IN"))
|
||||
USE IN (SELECT("ARCHIVOBIN_IN"))
|
||||
USE IN (SELECT("TABLABIN"))
|
||||
ENDTRY
|
||||
|
||||
@@ -526,7 +526,7 @@ DEFINE CLASS ut__foxbin2prg AS FxuTestCase OF FxuTestCase.prg
|
||||
loCnv.Convertir( FORCEEXT(lc_OutputFile, LEFT( JUSTEXT(lc_File),2 ) + '2' ), .F., .F., .T. )
|
||||
|
||||
SELECT 0
|
||||
USE (lc_InputFile) SHARED AGAIN NOUPDATE ALIAS ARCHIBOBIN_IN
|
||||
USE (lc_InputFile) SHARED AGAIN NOUPDATE ALIAS ARCHIVOBIN_IN
|
||||
|
||||
SCAN ALL FOR NOT DELETED() AND ( UNIQUEID==PADR('Class',10) OR PLATFORM==PADR("WINDOWS",8) )
|
||||
*-- DATOS ESPERADOS
|
||||
@@ -567,7 +567,7 @@ DEFINE CLASS ut__foxbin2prg AS FxuTestCase OF FxuTestCase.prg
|
||||
THIS.Evaluate_results( loEx, lnCodError_Esperado, lc_OutputFile, lcParent, lcClass, lcObjName, loReg_Esperado )
|
||||
|
||||
FINALLY
|
||||
USE IN (SELECT("ARCHIBOBIN_IN"))
|
||||
USE IN (SELECT("ARCHIVOBIN_IN"))
|
||||
USE IN (SELECT("TABLABIN"))
|
||||
ENDTRY
|
||||
|
||||
@@ -608,7 +608,7 @@ DEFINE CLASS ut__foxbin2prg AS FxuTestCase OF FxuTestCase.prg
|
||||
loCnv.Convertir( FORCEEXT(lc_OutputFile, LEFT( JUSTEXT(lc_File),2 ) + '2' ), .F., .F., .T. )
|
||||
|
||||
SELECT 0
|
||||
USE (lc_InputFile) SHARED AGAIN NOUPDATE ALIAS ARCHIBOBIN_IN
|
||||
USE (lc_InputFile) SHARED AGAIN NOUPDATE ALIAS ARCHIVOBIN_IN
|
||||
|
||||
SCAN ALL FOR NOT DELETED() AND ( UNIQUEID==PADR('Class',10) OR PLATFORM==PADR("WINDOWS",8) )
|
||||
*-- DATOS ESPERADOS
|
||||
@@ -649,7 +649,7 @@ DEFINE CLASS ut__foxbin2prg AS FxuTestCase OF FxuTestCase.prg
|
||||
THIS.Evaluate_results( loEx, lnCodError_Esperado, lc_OutputFile, lcParent, lcClass, lcObjName, loReg_Esperado )
|
||||
|
||||
FINALLY
|
||||
USE IN (SELECT("ARCHIBOBIN_IN"))
|
||||
USE IN (SELECT("ARCHIVOBIN_IN"))
|
||||
USE IN (SELECT("TABLABIN"))
|
||||
ENDTRY
|
||||
|
||||
@@ -690,7 +690,7 @@ DEFINE CLASS ut__foxbin2prg AS FxuTestCase OF FxuTestCase.prg
|
||||
loCnv.Convertir( FORCEEXT(lc_OutputFile, LEFT( JUSTEXT(lc_File),2 ) + '2' ), .F., .F., .T. )
|
||||
|
||||
SELECT 0
|
||||
USE (lc_InputFile) SHARED AGAIN NOUPDATE ALIAS ARCHIBOBIN_IN
|
||||
USE (lc_InputFile) SHARED AGAIN NOUPDATE ALIAS ARCHIVOBIN_IN
|
||||
|
||||
SCAN ALL FOR NOT DELETED() AND ( UNIQUEID==PADR('Class',10) OR PLATFORM==PADR("WINDOWS",8) )
|
||||
*-- DATOS ESPERADOS
|
||||
@@ -732,7 +732,7 @@ DEFINE CLASS ut__foxbin2prg AS FxuTestCase OF FxuTestCase.prg
|
||||
, loReg_Esperado, loReg, lcTipoBinario )
|
||||
|
||||
FINALLY
|
||||
USE IN (SELECT("ARCHIBOBIN_IN"))
|
||||
USE IN (SELECT("ARCHIVOBIN_IN"))
|
||||
USE IN (SELECT("TABLABIN"))
|
||||
ENDTRY
|
||||
|
||||
|
||||
452
foxbin2prg.prg
452
foxbin2prg.prg
@@ -226,10 +226,10 @@ LPARAMETERS tc_InputFile, tcType_na, tcTextName_na, tlGenText_na, tcDontShowErro
|
||||
#DEFINE C_FOXBIN2PRG_JUST_VFP_9_LOC '<27>FOXBIN2PRG es solo para Visual FoxPro 9.0!'
|
||||
#DEFINE C_FOXBIN2PRG_WARN_CAPTION_LOC 'FOXBIN2PRG: <20>ATENCI<43>N!'
|
||||
#DEFINE FOXBIN2PRG_INFO_SINTAX_LOC 'FOXBIN2PRG <cEspecArchivo.Ext> [cType_ND cTextName_ND cGenText_ND cNoMostrarErrores cDebug]' + CR_LF + CR_LF ;
|
||||
+ 'Ejemplo para generar los TXT de todos los VCX de "c:\desa\clases", sin mostrar ventana de error y generando archivo LOG: ' + CR_LF ;
|
||||
+ ' FOXBIN2PRG "c:\desa\clases\*.vcx" "0" "0" "0" "1" "1"' + CR_LF + CR_LF ;
|
||||
+ 'Ejemplo para generar los VCX de todos los TXT de "c:\desa\clases", sin mostrar ventana de error y sin LOG: ' + CR_LF ;
|
||||
+ ' FOXBIN2PRG "c:\desa\clases\*.vc2" "0" "0" "0" "1" "0"'
|
||||
+ 'Ejemplo para generar los TXT de todos los VCX de "c:\desa\clases", sin mostrar ventana de error y generando archivo LOG: ' + CR_LF ;
|
||||
+ ' FOXBIN2PRG "c:\desa\clases\*.vcx" "0" "0" "0" "1" "1"' + CR_LF + CR_LF ;
|
||||
+ 'Ejemplo para generar los VCX de todos los TXT de "c:\desa\clases", sin mostrar ventana de error y sin LOG: ' + CR_LF ;
|
||||
+ ' FOXBIN2PRG "c:\desa\clases\*.vc2" "0" "0" "0" "1" "0"'
|
||||
#DEFINE ASTERISK_EXT_NOT_ALLOWED_LOC 'No se admiten extensiones * o ? porque es peligroso (se pueden pisar binarios con archivo xx2 vac<61>os).'
|
||||
#DEFINE C_PROCESSING_LOC 'Procesando archivo '
|
||||
#DEFINE C_FILE_DOESNT_EXIST_LOC "El archivo no existe:"
|
||||
@@ -241,15 +241,15 @@ LPARAMETERS tc_InputFile, tcType_na, tcTextName_na, tlGenText_na, tcDontShowErro
|
||||
#DEFINE C_ONLY_SETNAME_AND_GETNAME_RECOGNIZED_LOC 'Operaci<63>n no reconocida. Solo re reconoce SETNAME y GETNAME.'
|
||||
#DEFINE C_BACKLINK_CANT_UPDATE_BL_LOC 'No se pudo actualizar el backlink'
|
||||
#DEFINE C_BACKLINK_OF_TABLE_LOC 'de la tabla'
|
||||
|
||||
|
||||
#ELSE && English
|
||||
#DEFINE C_FOXBIN2PRG_JUST_VFP_9_LOC 'FOXBIN2PRG is only for Visual FoxPro 9.0!'
|
||||
#DEFINE C_FOXBIN2PRG_WARN_CAPTION_LOC 'FOXBIN2PRG: WARNING!'
|
||||
#DEFINE FOXBIN2PRG_INFO_SINTAX_LOC 'FOXBIN2PRG <cFileSpec.Ext> [cType_NA cTextName_NA cGenText_NA cDontShowErrors cDebug]' + CR_LF + CR_LF ;
|
||||
+ 'Example to generate TXT of all VCX of "c:\desa\clases", without showing error window and generating LOG file: ' + CR_LF ;
|
||||
+ ' FOXBIN2PRG "c:\desa\clases\*.vcx" "0" "0" "0" "1" "1"' + CR_LF + CR_LF ;
|
||||
+ 'Example to generate TXT of all VCX of "c:\desa\clases", without showing error window and without LOG file: ' + CR_LF ;
|
||||
+ ' FOXBIN2PRG "c:\desa\clases\*.vc2" "0" "0" "0" "1" "0"'
|
||||
+ 'Example to generate TXT of all VCX of "c:\desa\clases", without showing error window and generating LOG file: ' + CR_LF ;
|
||||
+ ' FOXBIN2PRG "c:\desa\clases\*.vcx" "0" "0" "0" "1" "1"' + CR_LF + CR_LF ;
|
||||
+ 'Example to generate TXT of all VCX of "c:\desa\clases", without showing error window and without LOG file: ' + CR_LF ;
|
||||
+ ' FOXBIN2PRG "c:\desa\clases\*.vc2" "0" "0" "0" "1" "0"'
|
||||
#DEFINE ASTERISK_EXT_NOT_ALLOWED_LOC '* and ? extensions are not allowed because is dangerous (binaries can be overwriten with xx2 empty files)'
|
||||
#DEFINE C_PROCESSING_LOC 'Processing file '
|
||||
#DEFINE C_FILE_DOESNT_EXIST_LOC "File doesn't exist:"
|
||||
@@ -262,7 +262,7 @@ LPARAMETERS tc_InputFile, tcType_na, tcTextName_na, tlGenText_na, tcDontShowErro
|
||||
#DEFINE C_BACKLINK_CANT_UPDATE_BL_LOC 'Could not update backlink'
|
||||
#DEFINE C_BACKLINK_OF_TABLE_LOC 'of table'
|
||||
|
||||
#ENDIF
|
||||
#ENDIF
|
||||
*******************************************************************************************************************
|
||||
|
||||
PUBLIC goCnv AS c_foxbin2prg OF 'FOXBIN2PRG.PRG'
|
||||
@@ -370,7 +370,21 @@ DEFINE CLASS c_foxbin2prg AS CUSTOM
|
||||
|
||||
|
||||
PROCEDURE Ejecutar
|
||||
LPARAMETERS tc_InputFile, tcType_na, tcTextName_na, tlGenText_na, tcDontShowErrors, tcDebug, tcDontShowProgress
|
||||
*--------------------------------------------------------------------------------------------------------------
|
||||
* PAR<41>METROS: !=Obligatorio, ?=Opcional, @=Pasar por referencia, v=Pasar por valor (IN/OUT)
|
||||
* tc_InputFile (!v IN ) Nombre del archivo de entrada
|
||||
* tcType_na (?v IN ) NO DISPONIBLE. Se mantiene por compatibilidad con SourceSafe
|
||||
* tcTextName_na (?v IN ) NO DISPONIBLE. Se mantiene por compatibilidad con SourceSafe
|
||||
* tlGenText_na (?v IN ) NO DISPONIBLE. Se mantiene por compatibilidad con SourceSafe
|
||||
* tcDontShowErrors (?v IN ) '1' para no mostrar mensajes de error (MESSAGEBOX)
|
||||
* tcDebug (?v IN ) '1' para habilitar modo debug (SOLO DESARROLLO)
|
||||
* tcDontShowProgress (?v IN ) '1' para inhabilitar la barra de progreso
|
||||
* toModulo (?@ OUT) Referencia de objeto del m<>dulo generado (para Unit Testing)
|
||||
* toEx (?@ OUT) Objeto con informaci<63>n del error
|
||||
* tlRelanzarError (?v IN ) Indica si el error debe relanzarse o no
|
||||
*--------------------------------------------------------------------------------------------------------------
|
||||
LPARAMETERS tc_InputFile, tcType_na, tcTextName_na, tlGenText_na, tcDontShowErrors, tcDebug, tcDontShowProgress ;
|
||||
, toModulo, toEx AS EXCEPTION, tlRelanzarError
|
||||
|
||||
TRY
|
||||
LOCAL I, lcPath, lnResp, lcFileSpec, lcFile, laFiles(1,5), laConfig(1), lcConfigFile, lcExt ;
|
||||
@@ -431,10 +445,14 @@ DEFINE CLASS c_foxbin2prg AS CUSTOM
|
||||
*-- Evaluaci<63>n de FileSpec de entrada
|
||||
DO CASE
|
||||
CASE '*' $ JUSTEXT( tc_InputFile ) OR '?' $ JUSTEXT( tc_InputFile )
|
||||
MESSAGEBOX( ASTERISK_EXT_NOT_ALLOWED_LOC, 0+48+4096, 'FOXBIN2PRG: ERROR!!', 10000 )
|
||||
IF THIS.l_ShowErrors
|
||||
MESSAGEBOX( ASTERISK_EXT_NOT_ALLOWED_LOC, 0+48+4096, 'FOXBIN2PRG: ERROR!!', 10000 )
|
||||
ELSE
|
||||
ERROR ASTERISK_EXT_NOT_ALLOWED_LOC
|
||||
ENDIF
|
||||
|
||||
CASE '*' $ JUSTSTEM( tc_InputFile )
|
||||
*-- Se quieren todos los archivos de una extensi<73>n
|
||||
*-- SE QUIEREN TODOS LOS ARCHIVOS DE UNA EXTENSI<53>N
|
||||
lcFileSpec = FULLPATH( tc_InputFile )
|
||||
CD (JUSTPATH(lcFileSpec))
|
||||
THIS.c_LogFile = ADDBS( JUSTPATH( lcFileSpec ) ) + STRTRAN( JUSTFNAME( lcFileSpec ), '*', '_ALL' ) + '.LOG'
|
||||
@@ -465,12 +483,12 @@ DEFINE CLASS c_foxbin2prg AS CUSTOM
|
||||
ENDIF
|
||||
|
||||
IF FILE( lcFile )
|
||||
lnResp = THIS.Convertir( lcFile )
|
||||
lnResp = THIS.Convertir( lcFile, toModulo, toEx, tlRelanzarError )
|
||||
ENDIF
|
||||
ENDFOR
|
||||
|
||||
OTHERWISE
|
||||
*-- Un archivo individual
|
||||
*-- UN ARCHIVO INDIVIDUAL
|
||||
IF FILE(tc_InputFile)
|
||||
CD (JUSTPATH(tc_InputFile))
|
||||
THIS.c_LogFile = tc_InputFile + '.LOG'
|
||||
@@ -482,23 +500,28 @@ DEFINE CLASS c_foxbin2prg AS CUSTOM
|
||||
THIS.writeLog( THIS.c_Foxbin2prg_FullPath + ' - FileSpec: ' + EVL(tc_InputFile,'') )
|
||||
ENDIF
|
||||
|
||||
lnResp = THIS.Convertir( tc_InputFile )
|
||||
lnResp = THIS.Convertir( tc_InputFile, toModulo, toEx, tlRelanzarError )
|
||||
ENDIF
|
||||
ENDCASE
|
||||
|
||||
ENDCASE
|
||||
|
||||
CATCH TO loEx
|
||||
CATCH TO toEx
|
||||
IF llExisteConfig
|
||||
THIS.writeLog( 'ERROR: ' + TRANSFORM(loEx.ERRORNO) + ', ' + loEx.MESSAGE + CR_LF ;
|
||||
+ loEx.PROCEDURE + ', line ' + TRANSFORM(loEx.LINENO) + CR_LF ;
|
||||
+ loEx.DETAILS )
|
||||
THIS.writeLog( 'ERROR: ' + TRANSFORM(toEx.ERRORNO) + ', ' + toEx.MESSAGE + CR_LF ;
|
||||
+ toEx.PROCEDURE + ', line ' + TRANSFORM(toEx.LINENO) + CR_LF ;
|
||||
+ toEx.DETAILS )
|
||||
ENDIF
|
||||
IF tlRelanzarError
|
||||
THROW
|
||||
ENDIF
|
||||
|
||||
FINALLY
|
||||
THIS.o_Frm_Avance.HIDE()
|
||||
THIS.o_Frm_Avance.RELEASE()
|
||||
STORE NULL TO THIS.o_Frm_Avance
|
||||
IF VARTYPE(THIS.o_Frm_Avance) = "O"
|
||||
THIS.o_Frm_Avance.HIDE()
|
||||
THIS.o_Frm_Avance.RELEASE()
|
||||
STORE NULL TO THIS.o_Frm_Avance
|
||||
ENDIF
|
||||
CD (JUSTPATH(THIS.c_CurDir))
|
||||
*SET PATH TO (lcPath)
|
||||
ENDTRY
|
||||
@@ -506,6 +529,13 @@ DEFINE CLASS c_foxbin2prg AS CUSTOM
|
||||
|
||||
|
||||
PROCEDURE Convertir
|
||||
*--------------------------------------------------------------------------------------------------------------
|
||||
* PAR<41>METROS: !=Obligatorio, ?=Opcional, @=Pasar por referencia, v=Pasar por valor (IN/OUT)
|
||||
* tc_InputFile (!v IN ) Nombre del archivo de entrada
|
||||
* toModulo (?@ OUT) Referencia de objeto del m<>dulo generado (para Unit Testing)
|
||||
* toEx (?@ OUT) Objeto con informaci<63>n del error
|
||||
* tlRelanzarError (?v IN ) Indica si el error debe relanzarse o no
|
||||
*--------------------------------------------------------------------------------------------------------------
|
||||
LPARAMETERS tc_InputFile, toModulo, toEx AS EXCEPTION, tlRelanzarError
|
||||
|
||||
TRY
|
||||
@@ -814,6 +844,7 @@ DEFINE CLASS c_conversor_base AS SESSION
|
||||
* <fb2p_value>Este es un valor especial</fb2p_value>
|
||||
*
|
||||
*--------------------------------------------------------------------------------------------------------------
|
||||
* PAR<41>METROS: !=Obligatorio, ?=Opcional, @=Pasar por referencia, v=Pasar por valor (IN/OUT)
|
||||
* tcPropName (!v IN ) Nombre de la propiedad
|
||||
* tcValue (!v IN ) Valor (o inicio del valor) de la propiedad
|
||||
* taProps (!@ IN ) El array con las l<>neas del c<>digo donde buscar
|
||||
@@ -9042,9 +9073,11 @@ DEFINE CLASS CL_DBC_BASE AS CL_CUS_BASE
|
||||
+ [<memberdata name="__objectid" display="__ObjectID"/>] ;
|
||||
+ [<memberdata name="dbgetprop" display="DBGETPROP"/>] ;
|
||||
+ [<memberdata name="dbsetprop" display="DBSETPROP"/>] ;
|
||||
+ [<memberdata name="getallpropertiesfromobjectname" display="getAllPropertiesFromObjectname"/>] ;
|
||||
+ [<memberdata name="getbinpropertydatarecord" display="getBinPropertyDataRecord"/>] ;
|
||||
+ [<memberdata name="getcodememo" display="getCodeMemo"/>] ;
|
||||
+ [<memberdata name="getdbcpropertyidbyname" display="getDBCPropertyIDByName"/>] ;
|
||||
+ [<memberdata name="getdbcpropertynamebyid" display="getDBCPropertyNameByID"/>] ;
|
||||
+ [<memberdata name="getdbcpropertyvaluetypebypropertyid" display="getDBCPropertyValueTypeByPropertyID"/>] ;
|
||||
+ [<memberdata name="getid" display="getID"/>] ;
|
||||
+ [<memberdata name="getobjecttype" display="getObjectType"/>] ;
|
||||
@@ -9055,31 +9088,32 @@ DEFINE CLASS CL_DBC_BASE AS CL_CUS_BASE
|
||||
+ [<memberdata name="updatedbc" display="updateDBC"/>] ;
|
||||
+ [</VFPData>]
|
||||
|
||||
*PROTECTED __ObjectID, __ObjectType
|
||||
|
||||
__ObjectID = 0
|
||||
_Name = ''
|
||||
|
||||
|
||||
FUNCTION Add_Property
|
||||
FUNCTION add_Property
|
||||
*---------------------------------------------------------------------------------------------------
|
||||
* PAR<41>METROS: !=Obligatorio, ?=Opcional, @=Pasar por referencia, v=Pasar por valor (IN/OUT)
|
||||
* tcPropertyName (v! IN ) Nombre de la propiedad a agregar o modificar
|
||||
* teValue (v! IN ) Valor de la propiedad
|
||||
*---------------------------------------------------------------------------------------------------
|
||||
LPARAMETERS tcPropertyName, teValue
|
||||
|
||||
|
||||
LOCAL lnPropertyID, tcDataType, leValue, llRetorno, lnDataLen
|
||||
lnPropertyID = THIS.getDBCPropertyIDByName( SUBSTR(tcPropertyName,2) )
|
||||
|
||||
*IF LOWER(tcPropertyName) = '_displogin'
|
||||
* SET STEP ON
|
||||
*ENDIF
|
||||
|
||||
|
||||
IF lnPropertyID = -1
|
||||
IF PCOUNT()=1
|
||||
llRetorno = THIS.AddProperty( tcPropertyName )
|
||||
llRetorno = THIS.ADDPROPERTY( tcPropertyName )
|
||||
ELSE
|
||||
llRetorno = THIS.AddProperty( tcPropertyName, teValue )
|
||||
llRetorno = THIS.ADDPROPERTY( tcPropertyName, teValue )
|
||||
ENDIF
|
||||
ELSE
|
||||
tcDataType = THIS.getDBCPropertyValueTypeByPropertyID( lnPropertyID )
|
||||
lnDataLen = LEN(teValue)
|
||||
|
||||
|
||||
DO CASE
|
||||
CASE tcDataType = 'L'
|
||||
IF lnDataLen = 0
|
||||
@@ -9104,18 +9138,132 @@ DEFINE CLASS CL_DBC_BASE AS CL_CUS_BASE
|
||||
|
||||
ENDCASE
|
||||
|
||||
*IF LOWER(tcPropertyName) = '_isunique' AND VARTYPE(leValue)<>'N'
|
||||
* SET STEP ON
|
||||
*ENDIF
|
||||
|
||||
|
||||
llRetorno = THIS.AddProperty( tcPropertyName, leValue )
|
||||
llRetorno = THIS.ADDPROPERTY( tcPropertyName, leValue )
|
||||
ENDIF
|
||||
|
||||
|
||||
RETURN llRetorno
|
||||
ENDFUNC
|
||||
|
||||
|
||||
PROCEDURE getAllPropertiesFromObjectname
|
||||
*---------------------------------------------------------------------------------------------------
|
||||
* PAR<41>METROS: !=Obligatorio, ?=Opcional, @=Pasar por referencia, v=Pasar por valor (IN/OUT)
|
||||
* tcName (v! IN ) Nombre del objeto
|
||||
* tcType (v! IN ) Tipo de objeto (Table, Index, Field, View, Relation)
|
||||
* taProperties (@! OUT) Array con las propiedades encontradas y sus valores
|
||||
* tnProperty_Count (@! OUT) Cantidad de propiedades encontradas
|
||||
*---------------------------------------------------------------------------------------------------
|
||||
LPARAMETERS tcName, tcType, taProperties, tnProperty_Count
|
||||
|
||||
EXTERNAL ARRAY taProperties && STRUCTURE: PropName,RecordLen,DataIDLen,DataID,DataType,Data
|
||||
|
||||
TRY
|
||||
LOCAL lcValue, leValue, lnSelect, laProperty(1,1), lnRecordLen, lcBinRecord, lnPropertyID ;
|
||||
, lnLastPos, lnLenCCode, lcDataType, lcPropName, lcDBF, lnLenData, lnLenHeader
|
||||
tnProperty_Count = 0
|
||||
lnSelect = SELECT()
|
||||
leValue = ''
|
||||
tcName = PROPER(RTRIM(tcName))
|
||||
tcType = PROPER(RTRIM(tcType))
|
||||
tcProperty = PROPER(RTRIM(tcProperty))
|
||||
lcDBF = DBF()
|
||||
|
||||
SELECT 0
|
||||
USE (lcDBF) AGAIN SHARED NOUPDATE ALIAS C_TABLABIN2
|
||||
|
||||
IF INLIST( tcType, 'Index', 'Field' )
|
||||
SELECT TB.Property FROM C_TABLABIN2 TB ;
|
||||
INNER JOIN C_TABLABIN2 TB2 ON STR(TB.ParentID)+TB.ObjectType+LOWER(TB.objectName) = STR(TB2.ObjectID)+PADR(tcType,10)+PADR(LOWER(JUSTEXT(tcName)),128) ;
|
||||
AND TB2.objectName = PADR(LOWER(JUSTSTEM(tcName)),128) ;
|
||||
INTO ARRAY laProperty
|
||||
|
||||
ELSE
|
||||
SELECT TB.Property FROM C_TABLABIN2 TB ;
|
||||
INNER JOIN C_TABLABIN2 TB2 ON STR(TB.ParentID)+TB.ObjectType+LOWER(TB.objectName) = STR(TB2.ObjectID)+PADR(tcType,10)+PADR(LOWER(tcName),128) ;
|
||||
INTO ARRAY laProperty
|
||||
|
||||
ENDIF
|
||||
|
||||
IF _TALLY > 0
|
||||
IF EMPTY(laProperty(1,1))
|
||||
EXIT
|
||||
ENDIF
|
||||
|
||||
lnLastPos = 1
|
||||
|
||||
DO WHILE lnLastPos < LEN(laProperty(1,1))
|
||||
tnProperty_Count = tnProperty_Count + 1
|
||||
DIMENSION taProperties( tnProperty_Count,6 )
|
||||
|
||||
lnRecordLen = CTOBIN( SUBSTR(laProperty(1,1), lnLastPos, 4), "4RS" )
|
||||
lcBinRecord = SUBSTR(laProperty(1,1), lnLastPos, lnRecordLen)
|
||||
lnLenCCode = CTOBIN( SUBSTR(lcBinRecord, 4+1, 2), "2RS" )
|
||||
lnPropertyID = ASC( SUBSTR(lcBinRecord, 4+2+1, lnLenCCode) )
|
||||
lcPropName = THIS.getDBCPropertyNameByID( lnPropertyID )
|
||||
lcDataType = THIS.getDBCPropertyValueTypeByPropertyID( lnPropertyID )
|
||||
lnLenHeader = 4 + 2 + lnLenCCode
|
||||
lcValue = SUBSTR(lcBinRecord, lnLenHeader + 1)
|
||||
|
||||
DO CASE
|
||||
CASE lcDataType = 'B'
|
||||
IF lnLenHeader = lnRecordLen
|
||||
leValue = 0
|
||||
ELSE
|
||||
leValue = ASC( lcValue )
|
||||
ENDIF
|
||||
|
||||
CASE lcDataType = 'L'
|
||||
IF lnLenHeader = lnRecordLen
|
||||
leValue = .F.
|
||||
ELSE
|
||||
leValue = ( CTOBIN( lcValue, "1S" ) = 1 )
|
||||
ENDIF
|
||||
|
||||
CASE lcDataType = 'N'
|
||||
IF lnLenHeader = lnRecordLen
|
||||
leValue = 0
|
||||
ELSE
|
||||
leValue = CTOBIN( lcValue, "4S" )
|
||||
ENDIF
|
||||
|
||||
OTHERWISE && Asume 'C'
|
||||
IF lnLenHeader = lnRecordLen
|
||||
leValue = ''
|
||||
ELSE
|
||||
leValue = LEFT( lcValue, AT( CHR(0), lcValue ) - 1 )
|
||||
ENDIF
|
||||
ENDCASE
|
||||
|
||||
taProperties( tnProperty_Count,1 ) = lcPropName
|
||||
taProperties( tnProperty_Count,2 ) = lnRecordLen
|
||||
taProperties( tnProperty_Count,3 ) = lnLenCCode
|
||||
taProperties( tnProperty_Count,4 ) = lnPropertyID
|
||||
taProperties( tnProperty_Count,5 ) = lcDataType
|
||||
taProperties( tnProperty_Count,6 ) = leValue
|
||||
|
||||
lnLastPos = lnLastPos + lnRecordLen
|
||||
ENDDO
|
||||
ELSE
|
||||
ERROR 1562, (tcName)
|
||||
ENDIF
|
||||
|
||||
|
||||
CATCH TO loEx
|
||||
IF THIS.l_Debug AND _VFP.STARTMODE = 0
|
||||
SET STEP ON
|
||||
ENDIF
|
||||
|
||||
THROW
|
||||
|
||||
FINALLY
|
||||
USE IN (SELECT("C_TABLABIN2"))
|
||||
SELECT (lnSelect)
|
||||
ENDTRY
|
||||
|
||||
RETURN leValue
|
||||
ENDPROC
|
||||
|
||||
|
||||
PROCEDURE getDBCPropertyIDByName
|
||||
*---------------------------------------------------------------------------------------------------
|
||||
* PAR<41>METROS: !=Obligatorio, ?=Opcional, @=Pasar por referencia, v=Pasar por valor (IN/OUT)
|
||||
@@ -9269,6 +9417,158 @@ DEFINE CLASS CL_DBC_BASE AS CL_CUS_BASE
|
||||
ENDPROC
|
||||
|
||||
|
||||
PROCEDURE getDBCPropertyNameByID
|
||||
*---------------------------------------------------------------------------------------------------
|
||||
* PAR<41>METROS: !=Obligatorio, ?=Opcional, @=Pasar por referencia, v=Pasar por valor (IN/OUT)
|
||||
* tcPropertyID (v! IN ) Nombre de la propiedad
|
||||
* tlRethrowError (v? IN ) Indica si se debe relanzar el error o solo devolver -1
|
||||
*---------------------------------------------------------------------------------------------------
|
||||
LPARAMETERS tnPropertyID, tlRethrowError
|
||||
LOCAL lcPropertyName
|
||||
|
||||
DO CASE
|
||||
CASE tnPropertyID = 0
|
||||
lcPropertyName = 'null'
|
||||
CASE tnPropertyID = 1
|
||||
lcPropertyName = 'path'
|
||||
CASE tnPropertyID = 2
|
||||
lcPropertyName = 'class'
|
||||
CASE tnPropertyID = 7
|
||||
lcPropertyName = 'comment'
|
||||
CASE tnPropertyID = 9
|
||||
lcPropertyName = 'ruleexpression'
|
||||
CASE tnPropertyID = 10
|
||||
lcPropertyName = 'ruletext'
|
||||
CASE tnPropertyID = 11
|
||||
lcPropertyName = 'defaultvalue'
|
||||
CASE tnPropertyID = 12
|
||||
lcPropertyName = 'parameterlist'
|
||||
CASE tnPropertyID = 13
|
||||
lcPropertyName = 'childtag'
|
||||
CASE tnPropertyID = 14
|
||||
lcPropertyName = 'inserttrigger'
|
||||
CASE tnPropertyID = 15
|
||||
lcPropertyName = 'updatetrigger'
|
||||
CASE tnPropertyID = 16
|
||||
lcPropertyName = 'deletetrigger'
|
||||
CASE tnPropertyID = 17
|
||||
lcPropertyName = 'isunique'
|
||||
CASE tnPropertyID = 18
|
||||
lcPropertyName = 'parenttable'
|
||||
CASE tnPropertyID = 19
|
||||
lcPropertyName = 'parenttag'
|
||||
CASE tnPropertyID = 20
|
||||
lcPropertyName = 'primarykey'
|
||||
CASE tnPropertyID = 24
|
||||
lcPropertyName = 'version'
|
||||
CASE tnPropertyID = 28
|
||||
lcPropertyName = 'batchupdatecount'
|
||||
CASE tnPropertyID = 29
|
||||
lcPropertyName = 'datasource'
|
||||
CASE tnPropertyID = 32
|
||||
lcPropertyName = 'connectname'
|
||||
CASE tnPropertyID = 35
|
||||
lcPropertyName = 'updatename'
|
||||
CASE tnPropertyID = 36
|
||||
lcPropertyName = 'fetchmemo'
|
||||
CASE tnPropertyID = 37
|
||||
lcPropertyName = 'fetchsize'
|
||||
CASE tnPropertyID = 38
|
||||
lcPropertyName = 'keyfield'
|
||||
CASE tnPropertyID = 39
|
||||
lcPropertyName = 'maxrecords'
|
||||
CASE tnPropertyID = 40
|
||||
lcPropertyName = 'shareconnection'
|
||||
CASE tnPropertyID = 41
|
||||
lcPropertyName = 'sourcetype'
|
||||
CASE tnPropertyID = 42
|
||||
lcPropertyName = 'sql'
|
||||
CASE tnPropertyID = 43
|
||||
lcPropertyName = 'tables'
|
||||
CASE tnPropertyID = 44
|
||||
lcPropertyName = 'sendupdates'
|
||||
CASE tnPropertyID = 45
|
||||
lcPropertyName = 'updatablefield'
|
||||
CASE tnPropertyID = 46
|
||||
lcPropertyName = 'updatetype'
|
||||
CASE tnPropertyID = 47
|
||||
lcPropertyName = 'usememosize'
|
||||
CASE tnPropertyID = 48
|
||||
lcPropertyName = 'wheretype'
|
||||
CASE tnPropertyID = 50
|
||||
lcPropertyName = 'displayclass' && Undocumented
|
||||
CASE tnPropertyID = 51
|
||||
lcPropertyName = 'displayclasslibrary' && Undocumented
|
||||
CASE tnPropertyID = 54
|
||||
lcPropertyName = 'inputmask' && Undocumented
|
||||
CASE tnPropertyID = 55
|
||||
lcPropertyName = 'format' && Undocumented
|
||||
CASE tnPropertyID = 56
|
||||
lcPropertyName = 'caption'
|
||||
CASE tnPropertyID = 64
|
||||
lcPropertyName = 'asynchronous'
|
||||
CASE tnPropertyID = 65
|
||||
lcPropertyName = 'batchmode'
|
||||
CASE tnPropertyID = 66
|
||||
lcPropertyName = 'connectstring'
|
||||
CASE tnPropertyID = 67
|
||||
lcPropertyName = 'connecttimeout'
|
||||
CASE tnPropertyID = 68
|
||||
lcPropertyName = 'displogin'
|
||||
CASE tnPropertyID = 69
|
||||
lcPropertyName = 'dispwarnings'
|
||||
CASE tnPropertyID = 70
|
||||
lcPropertyName = 'idletimeout'
|
||||
CASE tnPropertyID = 71
|
||||
lcPropertyName = 'querytimeout'
|
||||
CASE tnPropertyID = 72
|
||||
lcPropertyName = 'password'
|
||||
CASE tnPropertyID = 73
|
||||
lcPropertyName = 'transactions'
|
||||
CASE tnPropertyID = 74
|
||||
lcPropertyName = 'userid'
|
||||
CASE tnPropertyID = 75
|
||||
lcPropertyName = 'waittime'
|
||||
CASE tnPropertyID = 76
|
||||
lcPropertyName = 'timestamp'
|
||||
CASE tnPropertyID = 77
|
||||
lcPropertyName = 'datatype'
|
||||
CASE tnPropertyID = 78
|
||||
lcPropertyName = 'packetsize' && Undocumented
|
||||
CASE tnPropertyID = 79
|
||||
lcPropertyName = 'database' && Undocumented
|
||||
CASE tnPropertyID = 80
|
||||
lcPropertyName = 'prepared' && Undocumented
|
||||
CASE tnPropertyID = 81
|
||||
lcPropertyName = 'comparememo' && Undocumented
|
||||
CASE tnPropertyID = 82
|
||||
lcPropertyName = 'fetchasneeded' && Undocumented
|
||||
CASE tnPropertyID = 83
|
||||
lcPropertyName = 'offline' && Undocumented
|
||||
CASE tnPropertyID = 84
|
||||
lcPropertyName = 'recordcount' && Undocumented
|
||||
CASE tnPropertyID = 85
|
||||
lcPropertyName = 'undocumented_view_prop_85' && Undocumented
|
||||
CASE tnPropertyID = 86
|
||||
lcPropertyName = 'dbcevents' && Undocumented
|
||||
CASE tnPropertyID = 87
|
||||
lcPropertyName = 'dbceventfilename' && Undocumented
|
||||
CASE tnPropertyID = 88
|
||||
lcPropertyName = 'allowsimultaneousfetch' && Undocumented
|
||||
CASE tnPropertyID = 89
|
||||
lcPropertyName = 'disconnectrollback' && Undocumented
|
||||
OTHERWISE
|
||||
IF tlRethrowError
|
||||
ERROR 1559, (TRANSFORM(tnPropertyID))
|
||||
ELSE
|
||||
lcPropertyName = ''
|
||||
ENDIF
|
||||
ENDCASE
|
||||
|
||||
RETURN lcPropertyName
|
||||
ENDPROC
|
||||
|
||||
|
||||
PROCEDURE getDBCPropertyValueTypeByPropertyID
|
||||
*---------------------------------------------------------------------------------------------------
|
||||
* PAR<41>METROS: !=Obligatorio, ?=Opcional, @=Pasar por referencia, v=Pasar por valor (IN/OUT)
|
||||
@@ -9288,8 +9588,12 @@ DEFINE CLASS CL_DBC_BASE AS CL_CUS_BASE
|
||||
CASE INLIST(tnPropertyID,24,28,37,39,47,67,70,71,75,76,78,84,85)
|
||||
lcValueType = 'N'
|
||||
|
||||
OTHERWISE
|
||||
CASE INLIST(tnPropertyID,0,1,7,9,10,11,12,13,14,15,16,18,19,20,29,30,32,35) ;
|
||||
OR INLIST(tnPropertyID,42,43,49,50,51,54,55,56,66,67,72,74,77,79,87)
|
||||
lcValueType = 'C'
|
||||
|
||||
OTHERWISE
|
||||
ERROR 'Propiedad [' + TRANSFORM(tnPropertyID) + '] no reconocida.'
|
||||
ENDCASE
|
||||
|
||||
RETURN lcValueType
|
||||
@@ -9691,7 +9995,7 @@ DEFINE CLASS CL_DBC AS CL_DBC_BASE
|
||||
* <tagname>ID<tagname>
|
||||
lcPropName = STREXTRACT( tcLine, '<', '>', 1, 0 )
|
||||
lcValue = STREXTRACT( tcLine, '<' + lcPropName + '>', '</' + lcPropName + '>', 1, 0 )
|
||||
THIS.Add_Property( '_' + lcPropName, lcValue )
|
||||
THIS.add_Property( '_' + lcPropName, lcValue )
|
||||
ENDCASE
|
||||
ENDFOR
|
||||
ENDIF
|
||||
@@ -9723,25 +10027,25 @@ DEFINE CLASS CL_DBC AS CL_DBC_BASE
|
||||
*---------------------------------------------------------------------------------------------------
|
||||
LPARAMETERS tcLine, taCodeLines, I, tnCodeLines
|
||||
|
||||
IF LEFT(tcLine, LEN(C_STORED_PROC_I)) == C_STORED_PROC_I
|
||||
LOCAL lcValue
|
||||
lcValue = ''
|
||||
llBloqueEncontrado = .T.
|
||||
IF LEFT(tcLine, LEN(C_STORED_PROC_I)) == C_STORED_PROC_I
|
||||
LOCAL lcValue
|
||||
lcValue = ''
|
||||
llBloqueEncontrado = .T.
|
||||
|
||||
FOR I = I + 1 TO tnCodeLines
|
||||
THIS.set_Line( @tcLine, @taCodeLines, I )
|
||||
FOR I = I + 1 TO tnCodeLines
|
||||
THIS.set_Line( @tcLine, @taCodeLines, I )
|
||||
|
||||
DO CASE
|
||||
CASE C_STORED_PROC_F $ tcLine && Fin
|
||||
EXIT
|
||||
DO CASE
|
||||
CASE C_STORED_PROC_F $ tcLine && Fin
|
||||
EXIT
|
||||
|
||||
OTHERWISE && L<>nea de Stored Procedure
|
||||
lcValue = lcValue + CR_LF + taCodeLines(I)
|
||||
ENDCASE
|
||||
ENDFOR
|
||||
OTHERWISE && L<>nea de Stored Procedure
|
||||
lcValue = lcValue + CR_LF + taCodeLines(I)
|
||||
ENDCASE
|
||||
ENDFOR
|
||||
|
||||
THIS.AddProperty( '_StoredProcedures', SUBSTR(lcValue,3) )
|
||||
ENDIF
|
||||
THIS.ADDPROPERTY( '_StoredProcedures', SUBSTR(lcValue,3) )
|
||||
ENDIF
|
||||
ENDPROC
|
||||
|
||||
|
||||
@@ -9774,12 +10078,12 @@ DEFINE CLASS CL_DBC AS CL_DBC_BASE
|
||||
lcMemoWithProperties = THIS.getBinMemoFromProperties()
|
||||
UPDATE TABLABIN ;
|
||||
SET Property = lcMemoWithProperties ;
|
||||
WHERE STR(ParentID) + ObjectType + LOWER(ObjectName) = STR(1) + PADR('Database',10) + PADR(LOWER('Database'),128)
|
||||
WHERE STR(ParentID) + ObjectType + LOWER(objectName) = STR(1) + PADR('Database',10) + PADR(LOWER('Database'),128)
|
||||
|
||||
IF NOT EMPTY(THIS._StoredProcedures)
|
||||
UPDATE TABLABIN ;
|
||||
SET Code = THIS._StoredProcedures ;
|
||||
WHERE STR(ParentID) + ObjectType + LOWER(ObjectName) = STR(1) + PADR('Database',10) + PADR(LOWER('StoredProceduresSource'),128)
|
||||
SET CODE = THIS._StoredProcedures ;
|
||||
WHERE STR(ParentID) + ObjectType + LOWER(objectName) = STR(1) + PADR('Database',10) + PADR(LOWER('StoredProceduresSource'),128)
|
||||
ENDIF
|
||||
|
||||
loTables.updateDBC( tc_OutputFile, @tnLastID, tnParentID )
|
||||
@@ -9836,10 +10140,10 @@ DEFINE CLASS CL_DBC AS CL_DBC_BASE
|
||||
*-- Views
|
||||
loViews = THIS._Views
|
||||
lcText = lcText + loViews.toText()
|
||||
|
||||
SELECT Code ;
|
||||
|
||||
SELECT CODE ;
|
||||
FROM TABLABIN ;
|
||||
WHERE STR(ParentID) + ObjectType + LOWER(ObjectName) = STR(1) + PADR('Database',10) + PADR(LOWER('StoredProceduresSource'),128) ;
|
||||
WHERE STR(ParentID) + ObjectType + LOWER(objectName) = STR(1) + PADR('Database',10) + PADR(LOWER('StoredProceduresSource'),128) ;
|
||||
INTO ARRAY laCode
|
||||
THIS._StoredProcedures = laCode(1,1)
|
||||
|
||||
@@ -10081,7 +10385,7 @@ DEFINE CLASS CL_DBC_CONNECTION AS CL_DBC_BASE
|
||||
* <name>NOMBRE</name>
|
||||
lcPropName = STREXTRACT( tcLine, '<', '>', 1, 0 )
|
||||
lcValue = STREXTRACT( tcLine, '<' + lcPropName + '>', '</' + lcPropName + '>', 1, 0 )
|
||||
THIS.Add_Property( '_' + lcPropName, lcValue )
|
||||
THIS.add_Property( '_' + lcPropName, lcValue )
|
||||
ENDCASE
|
||||
ENDFOR
|
||||
ENDIF
|
||||
@@ -10398,7 +10702,7 @@ DEFINE CLASS CL_DBC_TABLE AS CL_DBC_BASE
|
||||
* <name>NOMBRE</name>
|
||||
lcPropName = STREXTRACT( tcLine, '<', '>', 1, 0 )
|
||||
lcValue = STREXTRACT( tcLine, '<' + lcPropName + '>', '</' + lcPropName + '>', 1, 0 )
|
||||
THIS.Add_Property( '_' + lcPropName, lcValue )
|
||||
THIS.add_Property( '_' + lcPropName, lcValue )
|
||||
ENDCASE
|
||||
ENDFOR
|
||||
ENDIF
|
||||
@@ -10706,7 +11010,7 @@ DEFINE CLASS CL_DBC_FIELD_DB AS CL_DBC_BASE
|
||||
* <name>NOMBRE</name>
|
||||
lcPropName = STREXTRACT( tcLine, '<', '>', 1, 0 )
|
||||
lcValue = STREXTRACT( tcLine, '<' + lcPropName + '>', '</' + lcPropName + '>', 1, 0 )
|
||||
THIS.Add_Property( '_' + lcPropName, lcValue )
|
||||
THIS.add_Property( '_' + lcPropName, lcValue )
|
||||
ENDCASE
|
||||
ENDFOR
|
||||
ENDIF
|
||||
@@ -10973,7 +11277,7 @@ DEFINE CLASS CL_DBC_INDEX_DB AS CL_DBC_BASE
|
||||
* <name>NOMBRE</name>
|
||||
lcPropName = STREXTRACT( tcLine, '<', '>', 1, 0 )
|
||||
lcValue = STREXTRACT( tcLine, '<' + lcPropName + '>', '</' + lcPropName + '>', 1, 0 )
|
||||
THIS.Add_Property( '_' + lcPropName, lcValue )
|
||||
THIS.add_Property( '_' + lcPropName, lcValue )
|
||||
ENDCASE
|
||||
ENDFOR
|
||||
ENDIF
|
||||
@@ -11303,7 +11607,7 @@ DEFINE CLASS CL_DBC_VIEW AS CL_DBC_BASE
|
||||
* <name>NOMBRE</name>
|
||||
lcPropName = STREXTRACT( tcLine, '<', '>', 1, 0 )
|
||||
lcValue = STREXTRACT( tcLine, '<' + lcPropName + '>', '</' + lcPropName + '>', 1, 0 )
|
||||
THIS.Add_Property( '_' + lcPropName, lcValue )
|
||||
THIS.add_Property( '_' + lcPropName, lcValue )
|
||||
ENDCASE
|
||||
ENDFOR
|
||||
ENDIF
|
||||
@@ -11667,7 +11971,7 @@ DEFINE CLASS CL_DBC_FIELD_VW AS CL_DBC_BASE
|
||||
* <name>NOMBRE</name>
|
||||
lcPropName = STREXTRACT( tcLine, '<', '>', 1, 0 )
|
||||
lcValue = STREXTRACT( tcLine, '<' + lcPropName + '>', '</' + lcPropName + '>', 1, 0 )
|
||||
THIS.Add_Property( '_' + lcPropName, lcValue )
|
||||
THIS.add_Property( '_' + lcPropName, lcValue )
|
||||
ENDCASE
|
||||
ENDFOR
|
||||
ENDIF
|
||||
@@ -11942,7 +12246,7 @@ DEFINE CLASS CL_DBC_RELATION AS CL_DBC_BASE
|
||||
* <name>NOMBRE</name>
|
||||
lcPropName = STREXTRACT( tcLine, '<', '>', 1, 0 )
|
||||
lcValue = STREXTRACT( tcLine, '<' + lcPropName + '>', '</' + lcPropName + '>', 1, 0 )
|
||||
THIS.Add_Property( '_' + lcPropName, lcValue )
|
||||
THIS.add_Property( '_' + lcPropName, lcValue )
|
||||
ENDCASE
|
||||
ENDFOR
|
||||
ENDIF
|
||||
@@ -12115,7 +12419,7 @@ DEFINE CLASS CL_DBF_TABLE AS CL_CUS_BASE
|
||||
* <tagname>ID<tagname>
|
||||
lcPropName = STREXTRACT( tcLine, '<', '>', 1, 0 )
|
||||
lcValue = STREXTRACT( tcLine, '<' + lcPropName + '>', '</' + lcPropName + '>', 1, 0 )
|
||||
THIS.Add_Property( '_' + lcPropName, lcValue )
|
||||
THIS.ADDPROPERTY( '_' + lcPropName, lcValue )
|
||||
ENDCASE
|
||||
ENDFOR
|
||||
ENDIF
|
||||
@@ -12402,7 +12706,7 @@ DEFINE CLASS CL_DBF_FIELD AS CL_CUS_BASE
|
||||
* <name>NOMBRE</name>
|
||||
lcPropName = STREXTRACT( tcLine, '<', '>', 1, 0 )
|
||||
lcValue = STREXTRACT( tcLine, '<' + lcPropName + '>', '</' + lcPropName + '>', 1, 0 )
|
||||
THIS.Add_Property( '_' + lcPropName, lcValue )
|
||||
THIS.ADDPROPERTY( '_' + lcPropName, lcValue )
|
||||
ENDCASE
|
||||
ENDFOR
|
||||
ENDIF
|
||||
@@ -12652,7 +12956,7 @@ DEFINE CLASS CL_DBF_INDEX AS CL_CUS_BASE
|
||||
* <name>NOMBRE</name>
|
||||
lcPropName = STREXTRACT( tcLine, '<', '>', 1, 0 )
|
||||
lcValue = STREXTRACT( tcLine, '<' + lcPropName + '>', '</' + lcPropName + '>', 1, 0 )
|
||||
THIS.Add_Property( '_' + lcPropName, lcValue )
|
||||
THIS.ADDPROPERTY( '_' + lcPropName, lcValue )
|
||||
ENDCASE
|
||||
ENDFOR
|
||||
ENDIF
|
||||
|
||||
Reference in New Issue
Block a user