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. )
|
loCnv.Convertir( FORCEEXT(lc_OutputFile, LEFT( JUSTEXT(lc_File),2 ) + '2' ), .F., .F., .T. )
|
||||||
|
|
||||||
SELECT 0
|
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()
|
SCAN ALL FOR NOT DELETED()
|
||||||
*-- DATOS ESPERADOS
|
*-- DATOS ESPERADOS
|
||||||
@@ -318,7 +318,7 @@ DEFINE CLASS ut__foxbin2prg AS FxuTestCase OF FxuTestCase.prg
|
|||||||
LOCATE FOR UNIQUEID==lcUniqueID
|
LOCATE FOR UNIQUEID==lcUniqueID
|
||||||
|
|
||||||
IF NOT FOUND()
|
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
|
ENDIF
|
||||||
|
|
||||||
SCATTER MEMO NAME loReg
|
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 )
|
THIS.Evaluate_results( loEx, lnCodError_Esperado, lc_OutputFile, lcParent, lcClass, lcObjName, loReg_Esperado )
|
||||||
|
|
||||||
FINALLY
|
FINALLY
|
||||||
USE IN (SELECT("ARCHIBOBIN_IN"))
|
USE IN (SELECT("ARCHIVOBIN_IN"))
|
||||||
ENDTRY
|
ENDTRY
|
||||||
|
|
||||||
ENDFUNC
|
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. )
|
loCnv.Convertir( FORCEEXT(lc_OutputFile, LEFT( JUSTEXT(lc_File),2 ) + '2' ), .F., .F., .T. )
|
||||||
|
|
||||||
SELECT 0
|
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()
|
SCAN ALL FOR NOT DELETED()
|
||||||
*-- DATOS ESPERADOS
|
*-- DATOS ESPERADOS
|
||||||
@@ -392,7 +392,7 @@ DEFINE CLASS ut__foxbin2prg AS FxuTestCase OF FxuTestCase.prg
|
|||||||
LOCATE FOR UNIQUEID==lcUniqueID
|
LOCATE FOR UNIQUEID==lcUniqueID
|
||||||
|
|
||||||
IF NOT FOUND()
|
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
|
ENDIF
|
||||||
|
|
||||||
SCATTER MEMO NAME loReg
|
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 )
|
THIS.Evaluate_results( loEx, lnCodError_Esperado, lc_OutputFile, lcParent, lcClass, lcObjName, loReg_Esperado )
|
||||||
|
|
||||||
FINALLY
|
FINALLY
|
||||||
USE IN (SELECT("ARCHIBOBIN_IN"))
|
USE IN (SELECT("ARCHIVOBIN_IN"))
|
||||||
ENDTRY
|
ENDTRY
|
||||||
|
|
||||||
ENDFUNC
|
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. )
|
loCnv.Convertir( FORCEEXT(lc_OutputFile, LEFT( JUSTEXT(lc_File),2 ) + '2' ), .F., .F., .T. )
|
||||||
|
|
||||||
SELECT 0
|
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) )
|
SCAN ALL FOR NOT DELETED() AND ( UNIQUEID==PADR('Form',10) OR PLATFORM==PADR("WINDOWS",8) )
|
||||||
*-- DATOS ESPERADOS
|
*-- 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 )
|
THIS.Evaluate_results( loEx, lnCodError_Esperado, lc_OutputFile, lcParent, lcClass, lcObjName, loReg_Esperado )
|
||||||
|
|
||||||
FINALLY
|
FINALLY
|
||||||
USE IN (SELECT("ARCHIBOBIN_IN"))
|
USE IN (SELECT("ARCHIVOBIN_IN"))
|
||||||
USE IN (SELECT("TABLABIN"))
|
USE IN (SELECT("TABLABIN"))
|
||||||
ENDTRY
|
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. )
|
loCnv.Convertir( FORCEEXT(lc_OutputFile, LEFT( JUSTEXT(lc_File),2 ) + '2' ), .F., .F., .T. )
|
||||||
|
|
||||||
SELECT 0
|
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) )
|
SCAN ALL FOR NOT DELETED() AND ( UNIQUEID==PADR('Class',10) OR PLATFORM==PADR("WINDOWS",8) )
|
||||||
*-- DATOS ESPERADOS
|
*-- 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 )
|
THIS.Evaluate_results( loEx, lnCodError_Esperado, lc_OutputFile, lcParent, lcClass, lcObjName, loReg_Esperado )
|
||||||
|
|
||||||
FINALLY
|
FINALLY
|
||||||
USE IN (SELECT("ARCHIBOBIN_IN"))
|
USE IN (SELECT("ARCHIVOBIN_IN"))
|
||||||
USE IN (SELECT("TABLABIN"))
|
USE IN (SELECT("TABLABIN"))
|
||||||
ENDTRY
|
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. )
|
loCnv.Convertir( FORCEEXT(lc_OutputFile, LEFT( JUSTEXT(lc_File),2 ) + '2' ), .F., .F., .T. )
|
||||||
|
|
||||||
SELECT 0
|
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) )
|
SCAN ALL FOR NOT DELETED() AND ( UNIQUEID==PADR('Class',10) OR PLATFORM==PADR("WINDOWS",8) )
|
||||||
*-- DATOS ESPERADOS
|
*-- 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 )
|
THIS.Evaluate_results( loEx, lnCodError_Esperado, lc_OutputFile, lcParent, lcClass, lcObjName, loReg_Esperado )
|
||||||
|
|
||||||
FINALLY
|
FINALLY
|
||||||
USE IN (SELECT("ARCHIBOBIN_IN"))
|
USE IN (SELECT("ARCHIVOBIN_IN"))
|
||||||
USE IN (SELECT("TABLABIN"))
|
USE IN (SELECT("TABLABIN"))
|
||||||
ENDTRY
|
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. )
|
loCnv.Convertir( FORCEEXT(lc_OutputFile, LEFT( JUSTEXT(lc_File),2 ) + '2' ), .F., .F., .T. )
|
||||||
|
|
||||||
SELECT 0
|
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) )
|
SCAN ALL FOR NOT DELETED() AND ( UNIQUEID==PADR('Class',10) OR PLATFORM==PADR("WINDOWS",8) )
|
||||||
*-- DATOS ESPERADOS
|
*-- DATOS ESPERADOS
|
||||||
@@ -732,7 +732,7 @@ DEFINE CLASS ut__foxbin2prg AS FxuTestCase OF FxuTestCase.prg
|
|||||||
, loReg_Esperado, loReg, lcTipoBinario )
|
, loReg_Esperado, loReg, lcTipoBinario )
|
||||||
|
|
||||||
FINALLY
|
FINALLY
|
||||||
USE IN (SELECT("ARCHIBOBIN_IN"))
|
USE IN (SELECT("ARCHIVOBIN_IN"))
|
||||||
USE IN (SELECT("TABLABIN"))
|
USE IN (SELECT("TABLABIN"))
|
||||||
ENDTRY
|
ENDTRY
|
||||||
|
|
||||||
|
|||||||
438
foxbin2prg.prg
438
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_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 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 ;
|
#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 ;
|
+ '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 ;
|
+ ' 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 ;
|
+ '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"'
|
+ ' 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 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_PROCESSING_LOC 'Procesando archivo '
|
||||||
#DEFINE C_FILE_DOESNT_EXIST_LOC "El archivo no existe:"
|
#DEFINE C_FILE_DOESNT_EXIST_LOC "El archivo no existe:"
|
||||||
@@ -246,10 +246,10 @@ LPARAMETERS tc_InputFile, tcType_na, tcTextName_na, tlGenText_na, tcDontShowErro
|
|||||||
#DEFINE C_FOXBIN2PRG_JUST_VFP_9_LOC 'FOXBIN2PRG is only for Visual FoxPro 9.0!'
|
#DEFINE C_FOXBIN2PRG_JUST_VFP_9_LOC 'FOXBIN2PRG is only for Visual FoxPro 9.0!'
|
||||||
#DEFINE C_FOXBIN2PRG_WARN_CAPTION_LOC 'FOXBIN2PRG: WARNING!'
|
#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 ;
|
#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 ;
|
+ '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 ;
|
+ ' 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 ;
|
+ '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"'
|
+ ' 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 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_PROCESSING_LOC 'Processing file '
|
||||||
#DEFINE C_FILE_DOESNT_EXIST_LOC "File doesn't exist:"
|
#DEFINE C_FILE_DOESNT_EXIST_LOC "File doesn't exist:"
|
||||||
@@ -370,7 +370,21 @@ DEFINE CLASS c_foxbin2prg AS CUSTOM
|
|||||||
|
|
||||||
|
|
||||||
PROCEDURE Ejecutar
|
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
|
TRY
|
||||||
LOCAL I, lcPath, lnResp, lcFileSpec, lcFile, laFiles(1,5), laConfig(1), lcConfigFile, lcExt ;
|
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
|
*-- Evaluaci<63>n de FileSpec de entrada
|
||||||
DO CASE
|
DO CASE
|
||||||
CASE '*' $ JUSTEXT( tc_InputFile ) OR '?' $ JUSTEXT( tc_InputFile )
|
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 )
|
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 )
|
lcFileSpec = FULLPATH( tc_InputFile )
|
||||||
CD (JUSTPATH(lcFileSpec))
|
CD (JUSTPATH(lcFileSpec))
|
||||||
THIS.c_LogFile = ADDBS( JUSTPATH( lcFileSpec ) ) + STRTRAN( JUSTFNAME( lcFileSpec ), '*', '_ALL' ) + '.LOG'
|
THIS.c_LogFile = ADDBS( JUSTPATH( lcFileSpec ) ) + STRTRAN( JUSTFNAME( lcFileSpec ), '*', '_ALL' ) + '.LOG'
|
||||||
@@ -465,12 +483,12 @@ DEFINE CLASS c_foxbin2prg AS CUSTOM
|
|||||||
ENDIF
|
ENDIF
|
||||||
|
|
||||||
IF FILE( lcFile )
|
IF FILE( lcFile )
|
||||||
lnResp = THIS.Convertir( lcFile )
|
lnResp = THIS.Convertir( lcFile, toModulo, toEx, tlRelanzarError )
|
||||||
ENDIF
|
ENDIF
|
||||||
ENDFOR
|
ENDFOR
|
||||||
|
|
||||||
OTHERWISE
|
OTHERWISE
|
||||||
*-- Un archivo individual
|
*-- UN ARCHIVO INDIVIDUAL
|
||||||
IF FILE(tc_InputFile)
|
IF FILE(tc_InputFile)
|
||||||
CD (JUSTPATH(tc_InputFile))
|
CD (JUSTPATH(tc_InputFile))
|
||||||
THIS.c_LogFile = tc_InputFile + '.LOG'
|
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,'') )
|
THIS.writeLog( THIS.c_Foxbin2prg_FullPath + ' - FileSpec: ' + EVL(tc_InputFile,'') )
|
||||||
ENDIF
|
ENDIF
|
||||||
|
|
||||||
lnResp = THIS.Convertir( tc_InputFile )
|
lnResp = THIS.Convertir( tc_InputFile, toModulo, toEx, tlRelanzarError )
|
||||||
ENDIF
|
ENDIF
|
||||||
ENDCASE
|
ENDCASE
|
||||||
|
|
||||||
ENDCASE
|
ENDCASE
|
||||||
|
|
||||||
CATCH TO loEx
|
CATCH TO toEx
|
||||||
IF llExisteConfig
|
IF llExisteConfig
|
||||||
THIS.writeLog( 'ERROR: ' + TRANSFORM(loEx.ERRORNO) + ', ' + loEx.MESSAGE + CR_LF ;
|
THIS.writeLog( 'ERROR: ' + TRANSFORM(toEx.ERRORNO) + ', ' + toEx.MESSAGE + CR_LF ;
|
||||||
+ loEx.PROCEDURE + ', line ' + TRANSFORM(loEx.LINENO) + CR_LF ;
|
+ toEx.PROCEDURE + ', line ' + TRANSFORM(toEx.LINENO) + CR_LF ;
|
||||||
+ loEx.DETAILS )
|
+ toEx.DETAILS )
|
||||||
|
ENDIF
|
||||||
|
IF tlRelanzarError
|
||||||
|
THROW
|
||||||
ENDIF
|
ENDIF
|
||||||
|
|
||||||
FINALLY
|
FINALLY
|
||||||
THIS.o_Frm_Avance.HIDE()
|
IF VARTYPE(THIS.o_Frm_Avance) = "O"
|
||||||
THIS.o_Frm_Avance.RELEASE()
|
THIS.o_Frm_Avance.HIDE()
|
||||||
STORE NULL TO THIS.o_Frm_Avance
|
THIS.o_Frm_Avance.RELEASE()
|
||||||
|
STORE NULL TO THIS.o_Frm_Avance
|
||||||
|
ENDIF
|
||||||
CD (JUSTPATH(THIS.c_CurDir))
|
CD (JUSTPATH(THIS.c_CurDir))
|
||||||
*SET PATH TO (lcPath)
|
*SET PATH TO (lcPath)
|
||||||
ENDTRY
|
ENDTRY
|
||||||
@@ -506,6 +529,13 @@ DEFINE CLASS c_foxbin2prg AS CUSTOM
|
|||||||
|
|
||||||
|
|
||||||
PROCEDURE Convertir
|
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
|
LPARAMETERS tc_InputFile, toModulo, toEx AS EXCEPTION, tlRelanzarError
|
||||||
|
|
||||||
TRY
|
TRY
|
||||||
@@ -814,6 +844,7 @@ DEFINE CLASS c_conversor_base AS SESSION
|
|||||||
* <fb2p_value>Este es un valor especial</fb2p_value>
|
* <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
|
* tcPropName (!v IN ) Nombre de la propiedad
|
||||||
* tcValue (!v IN ) Valor (o inicio del valor) 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
|
* 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="__objectid" display="__ObjectID"/>] ;
|
||||||
+ [<memberdata name="dbgetprop" display="DBGETPROP"/>] ;
|
+ [<memberdata name="dbgetprop" display="DBGETPROP"/>] ;
|
||||||
+ [<memberdata name="dbsetprop" display="DBSETPROP"/>] ;
|
+ [<memberdata name="dbsetprop" display="DBSETPROP"/>] ;
|
||||||
|
+ [<memberdata name="getallpropertiesfromobjectname" display="getAllPropertiesFromObjectname"/>] ;
|
||||||
+ [<memberdata name="getbinpropertydatarecord" display="getBinPropertyDataRecord"/>] ;
|
+ [<memberdata name="getbinpropertydatarecord" display="getBinPropertyDataRecord"/>] ;
|
||||||
+ [<memberdata name="getcodememo" display="getCodeMemo"/>] ;
|
+ [<memberdata name="getcodememo" display="getCodeMemo"/>] ;
|
||||||
+ [<memberdata name="getdbcpropertyidbyname" display="getDBCPropertyIDByName"/>] ;
|
+ [<memberdata name="getdbcpropertyidbyname" display="getDBCPropertyIDByName"/>] ;
|
||||||
|
+ [<memberdata name="getdbcpropertynamebyid" display="getDBCPropertyNameByID"/>] ;
|
||||||
+ [<memberdata name="getdbcpropertyvaluetypebypropertyid" display="getDBCPropertyValueTypeByPropertyID"/>] ;
|
+ [<memberdata name="getdbcpropertyvaluetypebypropertyid" display="getDBCPropertyValueTypeByPropertyID"/>] ;
|
||||||
+ [<memberdata name="getid" display="getID"/>] ;
|
+ [<memberdata name="getid" display="getID"/>] ;
|
||||||
+ [<memberdata name="getobjecttype" display="getObjectType"/>] ;
|
+ [<memberdata name="getobjecttype" display="getObjectType"/>] ;
|
||||||
@@ -9055,26 +9088,27 @@ DEFINE CLASS CL_DBC_BASE AS CL_CUS_BASE
|
|||||||
+ [<memberdata name="updatedbc" display="updateDBC"/>] ;
|
+ [<memberdata name="updatedbc" display="updateDBC"/>] ;
|
||||||
+ [</VFPData>]
|
+ [</VFPData>]
|
||||||
|
|
||||||
*PROTECTED __ObjectID, __ObjectType
|
|
||||||
__ObjectID = 0
|
__ObjectID = 0
|
||||||
_Name = ''
|
_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
|
LPARAMETERS tcPropertyName, teValue
|
||||||
|
|
||||||
LOCAL lnPropertyID, tcDataType, leValue, llRetorno, lnDataLen
|
LOCAL lnPropertyID, tcDataType, leValue, llRetorno, lnDataLen
|
||||||
lnPropertyID = THIS.getDBCPropertyIDByName( SUBSTR(tcPropertyName,2) )
|
lnPropertyID = THIS.getDBCPropertyIDByName( SUBSTR(tcPropertyName,2) )
|
||||||
|
|
||||||
*IF LOWER(tcPropertyName) = '_displogin'
|
|
||||||
* SET STEP ON
|
|
||||||
*ENDIF
|
|
||||||
|
|
||||||
IF lnPropertyID = -1
|
IF lnPropertyID = -1
|
||||||
IF PCOUNT()=1
|
IF PCOUNT()=1
|
||||||
llRetorno = THIS.AddProperty( tcPropertyName )
|
llRetorno = THIS.ADDPROPERTY( tcPropertyName )
|
||||||
ELSE
|
ELSE
|
||||||
llRetorno = THIS.AddProperty( tcPropertyName, teValue )
|
llRetorno = THIS.ADDPROPERTY( tcPropertyName, teValue )
|
||||||
ENDIF
|
ENDIF
|
||||||
ELSE
|
ELSE
|
||||||
tcDataType = THIS.getDBCPropertyValueTypeByPropertyID( lnPropertyID )
|
tcDataType = THIS.getDBCPropertyValueTypeByPropertyID( lnPropertyID )
|
||||||
@@ -9104,18 +9138,132 @@ DEFINE CLASS CL_DBC_BASE AS CL_CUS_BASE
|
|||||||
|
|
||||||
ENDCASE
|
ENDCASE
|
||||||
|
|
||||||
*IF LOWER(tcPropertyName) = '_isunique' AND VARTYPE(leValue)<>'N'
|
llRetorno = THIS.ADDPROPERTY( tcPropertyName, leValue )
|
||||||
* SET STEP ON
|
|
||||||
*ENDIF
|
|
||||||
|
|
||||||
|
|
||||||
llRetorno = THIS.AddProperty( tcPropertyName, leValue )
|
|
||||||
ENDIF
|
ENDIF
|
||||||
|
|
||||||
RETURN llRetorno
|
RETURN llRetorno
|
||||||
ENDFUNC
|
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
|
PROCEDURE getDBCPropertyIDByName
|
||||||
*---------------------------------------------------------------------------------------------------
|
*---------------------------------------------------------------------------------------------------
|
||||||
* PAR<41>METROS: !=Obligatorio, ?=Opcional, @=Pasar por referencia, v=Pasar por valor (IN/OUT)
|
* 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
|
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
|
PROCEDURE getDBCPropertyValueTypeByPropertyID
|
||||||
*---------------------------------------------------------------------------------------------------
|
*---------------------------------------------------------------------------------------------------
|
||||||
* PAR<41>METROS: !=Obligatorio, ?=Opcional, @=Pasar por referencia, v=Pasar por valor (IN/OUT)
|
* 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)
|
CASE INLIST(tnPropertyID,24,28,37,39,47,67,70,71,75,76,78,84,85)
|
||||||
lcValueType = 'N'
|
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'
|
lcValueType = 'C'
|
||||||
|
|
||||||
|
OTHERWISE
|
||||||
|
ERROR 'Propiedad [' + TRANSFORM(tnPropertyID) + '] no reconocida.'
|
||||||
ENDCASE
|
ENDCASE
|
||||||
|
|
||||||
RETURN lcValueType
|
RETURN lcValueType
|
||||||
@@ -9691,7 +9995,7 @@ DEFINE CLASS CL_DBC AS CL_DBC_BASE
|
|||||||
* <tagname>ID<tagname>
|
* <tagname>ID<tagname>
|
||||||
lcPropName = STREXTRACT( tcLine, '<', '>', 1, 0 )
|
lcPropName = STREXTRACT( tcLine, '<', '>', 1, 0 )
|
||||||
lcValue = STREXTRACT( tcLine, '<' + lcPropName + '>', '</' + lcPropName + '>', 1, 0 )
|
lcValue = STREXTRACT( tcLine, '<' + lcPropName + '>', '</' + lcPropName + '>', 1, 0 )
|
||||||
THIS.Add_Property( '_' + lcPropName, lcValue )
|
THIS.add_Property( '_' + lcPropName, lcValue )
|
||||||
ENDCASE
|
ENDCASE
|
||||||
ENDFOR
|
ENDFOR
|
||||||
ENDIF
|
ENDIF
|
||||||
@@ -9723,25 +10027,25 @@ DEFINE CLASS CL_DBC AS CL_DBC_BASE
|
|||||||
*---------------------------------------------------------------------------------------------------
|
*---------------------------------------------------------------------------------------------------
|
||||||
LPARAMETERS tcLine, taCodeLines, I, tnCodeLines
|
LPARAMETERS tcLine, taCodeLines, I, tnCodeLines
|
||||||
|
|
||||||
IF LEFT(tcLine, LEN(C_STORED_PROC_I)) == C_STORED_PROC_I
|
IF LEFT(tcLine, LEN(C_STORED_PROC_I)) == C_STORED_PROC_I
|
||||||
LOCAL lcValue
|
LOCAL lcValue
|
||||||
lcValue = ''
|
lcValue = ''
|
||||||
llBloqueEncontrado = .T.
|
llBloqueEncontrado = .T.
|
||||||
|
|
||||||
FOR I = I + 1 TO tnCodeLines
|
FOR I = I + 1 TO tnCodeLines
|
||||||
THIS.set_Line( @tcLine, @taCodeLines, I )
|
THIS.set_Line( @tcLine, @taCodeLines, I )
|
||||||
|
|
||||||
DO CASE
|
DO CASE
|
||||||
CASE C_STORED_PROC_F $ tcLine && Fin
|
CASE C_STORED_PROC_F $ tcLine && Fin
|
||||||
EXIT
|
EXIT
|
||||||
|
|
||||||
OTHERWISE && L<>nea de Stored Procedure
|
OTHERWISE && L<>nea de Stored Procedure
|
||||||
lcValue = lcValue + CR_LF + taCodeLines(I)
|
lcValue = lcValue + CR_LF + taCodeLines(I)
|
||||||
ENDCASE
|
ENDCASE
|
||||||
ENDFOR
|
ENDFOR
|
||||||
|
|
||||||
THIS.AddProperty( '_StoredProcedures', SUBSTR(lcValue,3) )
|
THIS.ADDPROPERTY( '_StoredProcedures', SUBSTR(lcValue,3) )
|
||||||
ENDIF
|
ENDIF
|
||||||
ENDPROC
|
ENDPROC
|
||||||
|
|
||||||
|
|
||||||
@@ -9774,12 +10078,12 @@ DEFINE CLASS CL_DBC AS CL_DBC_BASE
|
|||||||
lcMemoWithProperties = THIS.getBinMemoFromProperties()
|
lcMemoWithProperties = THIS.getBinMemoFromProperties()
|
||||||
UPDATE TABLABIN ;
|
UPDATE TABLABIN ;
|
||||||
SET Property = lcMemoWithProperties ;
|
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)
|
IF NOT EMPTY(THIS._StoredProcedures)
|
||||||
UPDATE TABLABIN ;
|
UPDATE TABLABIN ;
|
||||||
SET Code = THIS._StoredProcedures ;
|
SET CODE = THIS._StoredProcedures ;
|
||||||
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)
|
||||||
ENDIF
|
ENDIF
|
||||||
|
|
||||||
loTables.updateDBC( tc_OutputFile, @tnLastID, tnParentID )
|
loTables.updateDBC( tc_OutputFile, @tnLastID, tnParentID )
|
||||||
@@ -9837,9 +10141,9 @@ DEFINE CLASS CL_DBC AS CL_DBC_BASE
|
|||||||
loViews = THIS._Views
|
loViews = THIS._Views
|
||||||
lcText = lcText + loViews.toText()
|
lcText = lcText + loViews.toText()
|
||||||
|
|
||||||
SELECT Code ;
|
SELECT CODE ;
|
||||||
FROM TABLABIN ;
|
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
|
INTO ARRAY laCode
|
||||||
THIS._StoredProcedures = laCode(1,1)
|
THIS._StoredProcedures = laCode(1,1)
|
||||||
|
|
||||||
@@ -10081,7 +10385,7 @@ DEFINE CLASS CL_DBC_CONNECTION AS CL_DBC_BASE
|
|||||||
* <name>NOMBRE</name>
|
* <name>NOMBRE</name>
|
||||||
lcPropName = STREXTRACT( tcLine, '<', '>', 1, 0 )
|
lcPropName = STREXTRACT( tcLine, '<', '>', 1, 0 )
|
||||||
lcValue = STREXTRACT( tcLine, '<' + lcPropName + '>', '</' + lcPropName + '>', 1, 0 )
|
lcValue = STREXTRACT( tcLine, '<' + lcPropName + '>', '</' + lcPropName + '>', 1, 0 )
|
||||||
THIS.Add_Property( '_' + lcPropName, lcValue )
|
THIS.add_Property( '_' + lcPropName, lcValue )
|
||||||
ENDCASE
|
ENDCASE
|
||||||
ENDFOR
|
ENDFOR
|
||||||
ENDIF
|
ENDIF
|
||||||
@@ -10398,7 +10702,7 @@ DEFINE CLASS CL_DBC_TABLE AS CL_DBC_BASE
|
|||||||
* <name>NOMBRE</name>
|
* <name>NOMBRE</name>
|
||||||
lcPropName = STREXTRACT( tcLine, '<', '>', 1, 0 )
|
lcPropName = STREXTRACT( tcLine, '<', '>', 1, 0 )
|
||||||
lcValue = STREXTRACT( tcLine, '<' + lcPropName + '>', '</' + lcPropName + '>', 1, 0 )
|
lcValue = STREXTRACT( tcLine, '<' + lcPropName + '>', '</' + lcPropName + '>', 1, 0 )
|
||||||
THIS.Add_Property( '_' + lcPropName, lcValue )
|
THIS.add_Property( '_' + lcPropName, lcValue )
|
||||||
ENDCASE
|
ENDCASE
|
||||||
ENDFOR
|
ENDFOR
|
||||||
ENDIF
|
ENDIF
|
||||||
@@ -10706,7 +11010,7 @@ DEFINE CLASS CL_DBC_FIELD_DB AS CL_DBC_BASE
|
|||||||
* <name>NOMBRE</name>
|
* <name>NOMBRE</name>
|
||||||
lcPropName = STREXTRACT( tcLine, '<', '>', 1, 0 )
|
lcPropName = STREXTRACT( tcLine, '<', '>', 1, 0 )
|
||||||
lcValue = STREXTRACT( tcLine, '<' + lcPropName + '>', '</' + lcPropName + '>', 1, 0 )
|
lcValue = STREXTRACT( tcLine, '<' + lcPropName + '>', '</' + lcPropName + '>', 1, 0 )
|
||||||
THIS.Add_Property( '_' + lcPropName, lcValue )
|
THIS.add_Property( '_' + lcPropName, lcValue )
|
||||||
ENDCASE
|
ENDCASE
|
||||||
ENDFOR
|
ENDFOR
|
||||||
ENDIF
|
ENDIF
|
||||||
@@ -10973,7 +11277,7 @@ DEFINE CLASS CL_DBC_INDEX_DB AS CL_DBC_BASE
|
|||||||
* <name>NOMBRE</name>
|
* <name>NOMBRE</name>
|
||||||
lcPropName = STREXTRACT( tcLine, '<', '>', 1, 0 )
|
lcPropName = STREXTRACT( tcLine, '<', '>', 1, 0 )
|
||||||
lcValue = STREXTRACT( tcLine, '<' + lcPropName + '>', '</' + lcPropName + '>', 1, 0 )
|
lcValue = STREXTRACT( tcLine, '<' + lcPropName + '>', '</' + lcPropName + '>', 1, 0 )
|
||||||
THIS.Add_Property( '_' + lcPropName, lcValue )
|
THIS.add_Property( '_' + lcPropName, lcValue )
|
||||||
ENDCASE
|
ENDCASE
|
||||||
ENDFOR
|
ENDFOR
|
||||||
ENDIF
|
ENDIF
|
||||||
@@ -11303,7 +11607,7 @@ DEFINE CLASS CL_DBC_VIEW AS CL_DBC_BASE
|
|||||||
* <name>NOMBRE</name>
|
* <name>NOMBRE</name>
|
||||||
lcPropName = STREXTRACT( tcLine, '<', '>', 1, 0 )
|
lcPropName = STREXTRACT( tcLine, '<', '>', 1, 0 )
|
||||||
lcValue = STREXTRACT( tcLine, '<' + lcPropName + '>', '</' + lcPropName + '>', 1, 0 )
|
lcValue = STREXTRACT( tcLine, '<' + lcPropName + '>', '</' + lcPropName + '>', 1, 0 )
|
||||||
THIS.Add_Property( '_' + lcPropName, lcValue )
|
THIS.add_Property( '_' + lcPropName, lcValue )
|
||||||
ENDCASE
|
ENDCASE
|
||||||
ENDFOR
|
ENDFOR
|
||||||
ENDIF
|
ENDIF
|
||||||
@@ -11667,7 +11971,7 @@ DEFINE CLASS CL_DBC_FIELD_VW AS CL_DBC_BASE
|
|||||||
* <name>NOMBRE</name>
|
* <name>NOMBRE</name>
|
||||||
lcPropName = STREXTRACT( tcLine, '<', '>', 1, 0 )
|
lcPropName = STREXTRACT( tcLine, '<', '>', 1, 0 )
|
||||||
lcValue = STREXTRACT( tcLine, '<' + lcPropName + '>', '</' + lcPropName + '>', 1, 0 )
|
lcValue = STREXTRACT( tcLine, '<' + lcPropName + '>', '</' + lcPropName + '>', 1, 0 )
|
||||||
THIS.Add_Property( '_' + lcPropName, lcValue )
|
THIS.add_Property( '_' + lcPropName, lcValue )
|
||||||
ENDCASE
|
ENDCASE
|
||||||
ENDFOR
|
ENDFOR
|
||||||
ENDIF
|
ENDIF
|
||||||
@@ -11942,7 +12246,7 @@ DEFINE CLASS CL_DBC_RELATION AS CL_DBC_BASE
|
|||||||
* <name>NOMBRE</name>
|
* <name>NOMBRE</name>
|
||||||
lcPropName = STREXTRACT( tcLine, '<', '>', 1, 0 )
|
lcPropName = STREXTRACT( tcLine, '<', '>', 1, 0 )
|
||||||
lcValue = STREXTRACT( tcLine, '<' + lcPropName + '>', '</' + lcPropName + '>', 1, 0 )
|
lcValue = STREXTRACT( tcLine, '<' + lcPropName + '>', '</' + lcPropName + '>', 1, 0 )
|
||||||
THIS.Add_Property( '_' + lcPropName, lcValue )
|
THIS.add_Property( '_' + lcPropName, lcValue )
|
||||||
ENDCASE
|
ENDCASE
|
||||||
ENDFOR
|
ENDFOR
|
||||||
ENDIF
|
ENDIF
|
||||||
@@ -12115,7 +12419,7 @@ DEFINE CLASS CL_DBF_TABLE AS CL_CUS_BASE
|
|||||||
* <tagname>ID<tagname>
|
* <tagname>ID<tagname>
|
||||||
lcPropName = STREXTRACT( tcLine, '<', '>', 1, 0 )
|
lcPropName = STREXTRACT( tcLine, '<', '>', 1, 0 )
|
||||||
lcValue = STREXTRACT( tcLine, '<' + lcPropName + '>', '</' + lcPropName + '>', 1, 0 )
|
lcValue = STREXTRACT( tcLine, '<' + lcPropName + '>', '</' + lcPropName + '>', 1, 0 )
|
||||||
THIS.Add_Property( '_' + lcPropName, lcValue )
|
THIS.ADDPROPERTY( '_' + lcPropName, lcValue )
|
||||||
ENDCASE
|
ENDCASE
|
||||||
ENDFOR
|
ENDFOR
|
||||||
ENDIF
|
ENDIF
|
||||||
@@ -12402,7 +12706,7 @@ DEFINE CLASS CL_DBF_FIELD AS CL_CUS_BASE
|
|||||||
* <name>NOMBRE</name>
|
* <name>NOMBRE</name>
|
||||||
lcPropName = STREXTRACT( tcLine, '<', '>', 1, 0 )
|
lcPropName = STREXTRACT( tcLine, '<', '>', 1, 0 )
|
||||||
lcValue = STREXTRACT( tcLine, '<' + lcPropName + '>', '</' + lcPropName + '>', 1, 0 )
|
lcValue = STREXTRACT( tcLine, '<' + lcPropName + '>', '</' + lcPropName + '>', 1, 0 )
|
||||||
THIS.Add_Property( '_' + lcPropName, lcValue )
|
THIS.ADDPROPERTY( '_' + lcPropName, lcValue )
|
||||||
ENDCASE
|
ENDCASE
|
||||||
ENDFOR
|
ENDFOR
|
||||||
ENDIF
|
ENDIF
|
||||||
@@ -12652,7 +12956,7 @@ DEFINE CLASS CL_DBF_INDEX AS CL_CUS_BASE
|
|||||||
* <name>NOMBRE</name>
|
* <name>NOMBRE</name>
|
||||||
lcPropName = STREXTRACT( tcLine, '<', '>', 1, 0 )
|
lcPropName = STREXTRACT( tcLine, '<', '>', 1, 0 )
|
||||||
lcValue = STREXTRACT( tcLine, '<' + lcPropName + '>', '</' + lcPropName + '>', 1, 0 )
|
lcValue = STREXTRACT( tcLine, '<' + lcPropName + '>', '</' + lcPropName + '>', 1, 0 )
|
||||||
THIS.Add_Property( '_' + lcPropName, lcValue )
|
THIS.ADDPROPERTY( '_' + lcPropName, lcValue )
|
||||||
ENDCASE
|
ENDCASE
|
||||||
ENDFOR
|
ENDFOR
|
||||||
ENDIF
|
ENDIF
|
||||||
|
|||||||
Reference in New Issue
Block a user