Changeset: 130 - mnx bug fix: Se genera llamada DO Procedure o Command cuando no hay procedure o Command para llamar (cuando se crea una opción vacía) [Fidel charny]

- Agregado soporte para tablas (DBFs) anteriores a VFP 9 para generar el texto DB2, pero regenera en formato VFP 9!
- dbf bug fix: DBFs vinculados a DBCs que usan nombres de campo largos dan errores al regenerar
- dbf bug fix: No se generaba toda la información de las vistas (views) de los DBCs
- Encapsuladas funciones de acceso a bajo nivel de DBFs en nueva clase CL_DBF_UTILS
- Limpieza de código y refactorización
This commit is contained in:
fernando
2014-01-06 04:47:56 +01:00
parent a54f6eeff1
commit 17e38434ee
15 changed files with 879 additions and 389 deletions

View File

@@ -2,116 +2,117 @@
* (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)
*< FOXBIN2PRG: Version="1.18" SourceFile="C:\DESA\foxbin2prg\TESTS\DATOS_READONLY\fb2p_dbf.dbf" Generated="2014/01/05 19:10:49" /> (Solo para binarios VFP 9 / Only for VFP 9 binaries)
*
<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>
<MemoFile></MemoFile>
<CodePage>1252</CodePage>
<LastUpdate>2014/01/05</LastUpdate>
<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>
<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>
<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>
<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>20</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>
<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>
<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>
@@ -120,25 +121,52 @@
<INDEXES>
<INDEX>
<tagname>ID</tagname>
<collate>MACHINE</collate>
<key>ID</key>
<descending>.F.</descending>
<for_exp></for_exp>
<TagName>ID</TagName>
<TagType>PRINCIPAL</TagType>
<Key>ID</Key>
<Filter></Filter>
<Order>ASCENDING</Order>
<Collate>MACHINE</Collate>
</INDEX>
<INDEX>
<tagname>I_NOMBRE</tagname>
<collate>GENERAL</collate>
<key>NOMBRE</key>
<descending>.F.</descending>
<for_exp></for_exp>
<TagName>I_NOMBRE</TagName>
<TagType>NORMAL</TagType>
<Key>NOMBRE</Key>
<Filter></Filter>
<Order>ASCENDING</Order>
<Collate>GENERAL</Collate>
</INDEX>
<INDEX>
<tagname>DEPTO</tagname>
<collate>MACHINE</collate>
<key>DEPTO</key>
<descending>.F.</descending>
<for_exp></for_exp>
<TagName>DEPTO</TagName>
<TagType>NORMAL</TagType>
<Key>DEPTO</Key>
<Filter></Filter>
<Order>ASCENDING</Order>
<Collate>MACHINE</Collate>
</INDEX>
<INDEX>
<TagName>EDAD_ND</TagName>
<TagType>NORMAL</TagType>
<Key>EDAD</Key>
<Filter>.NOT.DELETED()</Filter>
<Order>ASCENDING</Order>
<Collate>MACHINE</Collate>
</INDEX>
<INDEX>
<TagName>NOTDELETED</TagName>
<TagType>BINARIO</TagType>
<Key>.NOT.DELETED()</Key>
<Filter></Filter>
<Order>ASCENDING</Order>
<Collate>MACHINE</Collate>
</INDEX>
<INDEX>
<TagName>EDAD</TagName>
<TagType>CANDIDATO</TagType>
<Key>EDAD</Key>
<Filter></Filter>
<Order>DESCENDING</Order>
<Collate>MACHINE</Collate>
</INDEX>
</INDEXES>