Changeset: 91 Cambios DBC (Property)

This commit is contained in:
fernando
2013-12-16 00:07:04 +01:00
parent 2943abcb21
commit 334d15c3b8

View File

@@ -407,7 +407,7 @@ DEFINE CLASS c_foxbin2prg AS CUSTOM
l_ReportSort_Enabled = .T. && Para Unit Testing se puede cambiar a .F. para buscar diferencias l_ReportSort_Enabled = .T. && Para Unit Testing se puede cambiar a .F. para buscar diferencias
lFileMode = .F. lFileMode = .F.
nClassTimeStamp = '' nClassTimeStamp = ''
n_FB2PRG_Version = 1.14 n_FB2PRG_Version = 1.15
o_Conversor = NULL o_Conversor = NULL
c_VC2 = 'VC2' c_VC2 = 'VC2'
c_SC2 = 'SC2' c_SC2 = 'SC2'
@@ -8997,10 +8997,20 @@ DEFINE CLASS CL_DBC_BASE AS CL_CUS_BASE
PROCEDURE getBinPropertyDataRecord PROCEDURE getBinPropertyDataRecord
LPARAMETERS tcData, tnDataType LPARAMETERS teData, tnDataType
LOCAL lcBinRecord, lnLen LOCAL lcBinRecord, lnLen
lnLen = 4 + 2 + 1 + LEN(tcData) + 1
lcBinRecord = BINTOC( lnLen, "4RS" ) + BINTOC( 1, "2RS" ) + CHR(tnDataType) + tcData + CHR(0) lcBinRecord = ''
IF VARTYPE(teData) = 'N'
teData = BINTOC( teData, "4RS" )
lnLen = 4 + 2 + 1 + LEN(teData) + 1
lcBinRecord = BINTOC( lnLen, "4RS" ) + BINTOC( 1, "2RS" ) + CHR(tnDataType) + teData
ELSE
lnLen = 4 + 2 + 1 + LEN(teData) + 1
lcBinRecord = BINTOC( lnLen, "4RS" ) + BINTOC( 1, "2RS" ) + CHR(tnDataType) + teData + CHR(0)
ENDIF
RETURN lcBinRecord RETURN lcBinRecord
ENDPROC ENDPROC
@@ -9172,7 +9182,6 @@ DEFINE CLASS CL_DBC AS CL_DBC_BASE
THIS.ADDOBJECT("_Connections", "CL_DBC_CONNECTIONS") THIS.ADDOBJECT("_Connections", "CL_DBC_CONNECTIONS")
THIS.ADDOBJECT("_Tables", "CL_DBC_TABLES") THIS.ADDOBJECT("_Tables", "CL_DBC_TABLES")
THIS.ADDOBJECT("_Views", "CL_DBC_VIEWS") THIS.ADDOBJECT("_Views", "CL_DBC_VIEWS")
THIS.ADDOBJECT("_Relations", "CL_DBC_RELATIONS")
ENDPROC ENDPROC
@@ -9219,10 +9228,6 @@ DEFINE CLASS CL_DBC AS CL_DBC_BASE
loViews = THIS._Views loViews = THIS._Views
loViews.analizarBloque( @tcLine, @taCodeLines, @I, tnCodeLines ) loViews.analizarBloque( @tcLine, @taCodeLines, @I, tnCodeLines )
CASE C_RELATIONS_I $ tcLine
loRelations = THIS._Relations
loRelations.analizarBloque( @tcLine, @taCodeLines, @I, tnCodeLines )
OTHERWISE && Otro valor OTHERWISE && Otro valor
*-- Estructura a reconocer: *-- Estructura a reconocer:
* <tagname>ID<tagname> * <tagname>ID<tagname>
@@ -9273,10 +9278,9 @@ DEFINE CLASS CL_DBC AS CL_DBC_BASE
LPARAMETERS tc_OutputFile, tnLastID, tnParentID LPARAMETERS tc_OutputFile, tnLastID, tnParentID
TRY TRY
LOCAL loTables AS CL_DBC_TABLES ; LOCAL loTables AS CL_DBC_TABLES OF 'FOXBIN2PRG.PRG'
, loConnections AS CL_DBC_CONNECTIONS ; LOCAL loConnections AS CL_DBC_CONNECTIONS OF 'FOXBIN2PRG.PRG'
, loViews AS CL_DBC_VIEWS ; LOCAL loViews AS CL_DBC_VIEWS OF 'FOXBIN2PRG.PRG'
, loRelations AS CL_DBC_RELATIONS
loTables = THIS._Tables loTables = THIS._Tables
loConnections = THIS._Connections loConnections = THIS._Connections
@@ -9294,7 +9298,6 @@ DEFINE CLASS CL_DBC AS CL_DBC_BASE
loTables.updateDBC( tc_OutputFile, @tnLastID, tnParentID ) loTables.updateDBC( tc_OutputFile, @tnLastID, tnParentID )
loViews.updateDBC( tc_OutputFile, @tnLastID, tnParentID ) loViews.updateDBC( tc_OutputFile, @tnLastID, tnParentID )
loConnections.updateDBC( tc_OutputFile, @tnLastID, tnParentID ) loConnections.updateDBC( tc_OutputFile, @tnLastID, tnParentID )
loRelations.updateDBC( tc_OutputFile, @tnLastID, tnParentID )
CATCH TO loEx CATCH TO loEx
@@ -9347,10 +9350,6 @@ DEFINE CLASS CL_DBC AS CL_DBC_BASE
loViews = THIS._Views loViews = THIS._Views
lcText = lcText + loViews.toText() lcText = lcText + loViews.toText()
*-- Relations
loRelations = THIS._Relations
lcText = lcText + loRelations.toText()
TEXT TO lcText ADDITIVE TEXTMERGE NOSHOW FLAGS 1+2 PRETEXT 1+2 TEXT TO lcText ADDITIVE TEXTMERGE NOSHOW FLAGS 1+2 PRETEXT 1+2
</DATABASE> </DATABASE>
<<>> <<>>
@@ -9641,6 +9640,29 @@ DEFINE CLASS CL_DBC_CONNECTION AS CL_DBC_BASE
ENDPROC ENDPROC
PROCEDURE getMemoWithProperties
LOCAL lcBinData
lcBinData = ''
*fdb*
lcBinData = lcBinData + THIS.getBinPropertyDataRecord( THIS._Comment, 7 )
lcBinData = lcBinData + THIS.getBinPropertyDataRecord( THIS._DataSource, 29 )
lcBinData = lcBinData + THIS.getBinPropertyDataRecord( THIS._Asynchronous, 64 )
lcBinData = lcBinData + THIS.getBinPropertyDataRecord( THIS._BatchMode, 65 )
lcBinData = lcBinData + THIS.getBinPropertyDataRecord( THIS._ConnectString, 66 )
lcBinData = lcBinData + THIS.getBinPropertyDataRecord( INT( VAL(THIS._ConnectTimeout) ) , 67 )
lcBinData = lcBinData + THIS.getBinPropertyDataRecord( THIS._DispLogin, 68 )
lcBinData = lcBinData + THIS.getBinPropertyDataRecord( THIS._DispWarnings, 69 )
lcBinData = lcBinData + THIS.getBinPropertyDataRecord( THIS._IdleTimeout, 70 )
lcBinData = lcBinData + THIS.getBinPropertyDataRecord( THIS._QueryTimeout, 71 )
lcBinData = lcBinData + THIS.getBinPropertyDataRecord( THIS._PassWord, 72 )
lcBinData = lcBinData + THIS.getBinPropertyDataRecord( THIS._Transactions, 73 )
lcBinData = lcBinData + THIS.getBinPropertyDataRecord( THIS._UserId, 74 )
lcBinData = lcBinData + THIS.getBinPropertyDataRecord( THIS._WaitTime, 75 )
RETURN lcBinData
ENDPROC
ENDDEFINE ENDDEFINE
@@ -9806,16 +9828,15 @@ DEFINE CLASS CL_DBC_TABLE AS CL_DBC_BASE
*_Indexes = NULL *_Indexes = NULL
************************************************************************************************
PROCEDURE INIT PROCEDURE INIT
DODEFAULT() DODEFAULT()
*-- *--
THIS.ADDOBJECT("_Fields", "CL_DBC_FIELDS_DB") THIS.ADDOBJECT("_Fields", "CL_DBC_FIELDS_DB")
THIS.ADDOBJECT("_Indexes", "CL_DBC_INDEXES_DB") THIS.ADDOBJECT("_Indexes", "CL_DBC_INDEXES_DB")
THIS.ADDOBJECT("_Relations", "CL_DBC_RELATIONS")
ENDPROC ENDPROC
*******************************************************************************************************************
PROCEDURE analizarBloque PROCEDURE analizarBloque
*--------------------------------------------------------------------------------------------------- *---------------------------------------------------------------------------------------------------
* 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)
@@ -9830,6 +9851,7 @@ DEFINE CLASS CL_DBC_TABLE AS CL_DBC_BASE
LOCAL llBloqueEncontrado, lcPropName, lcValue, loEx AS EXCEPTION LOCAL llBloqueEncontrado, lcPropName, lcValue, loEx AS EXCEPTION
LOCAL loFields AS CL_DBC_FIELDS_DB OF 'FOXBIN2PRG.PRG' LOCAL loFields AS CL_DBC_FIELDS_DB OF 'FOXBIN2PRG.PRG'
LOCAL loIndexes AS CL_DBC_INDEXES_DB OF 'FOXBIN2PRG.PRG' LOCAL loIndexes AS CL_DBC_INDEXES_DB OF 'FOXBIN2PRG.PRG'
LOCAL loRelations AS CL_DBC_RELATIONS OF 'FOXBIN2PRG.PRG'
STORE '' TO lcPropName, lcValue STORE '' TO lcPropName, lcValue
IF LEFT(tcLine, LEN(C_TABLE_I)) == C_TABLE_I IF LEFT(tcLine, LEN(C_TABLE_I)) == C_TABLE_I
@@ -9853,6 +9875,10 @@ DEFINE CLASS CL_DBC_TABLE AS CL_DBC_BASE
loIndexes = THIS._Indexes loIndexes = THIS._Indexes
loIndexes.analizarBloque( @tcLine, @taCodeLines, @I, tnCodeLines ) loIndexes.analizarBloque( @tcLine, @taCodeLines, @I, tnCodeLines )
CASE C_RELATIONS_I $ tcLine
loRelations = THIS._Indexes
loRelations.analizarBloque( @tcLine, @taCodeLines, @I, tnCodeLines )
OTHERWISE && Propiedad de TABLE OTHERWISE && Propiedad de TABLE
*-- Estructura a reconocer: *-- Estructura a reconocer:
* <name>NOMBRE</name> * <name>NOMBRE</name>
@@ -9880,7 +9906,6 @@ DEFINE CLASS CL_DBC_TABLE AS CL_DBC_BASE
ENDPROC ENDPROC
*******************************************************************************************************************
PROCEDURE toText PROCEDURE toText
*--------------------------------------------------------------------------------------------------- *---------------------------------------------------------------------------------------------------
* 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)
@@ -9890,8 +9915,9 @@ DEFINE CLASS CL_DBC_TABLE AS CL_DBC_BASE
TRY TRY
LOCAL lcText, loEx AS EXCEPTION LOCAL lcText, loEx AS EXCEPTION
LOCAL loIndexes AS CL_DBC_INDEXES_DB OF 'FOXBIN2PRG.PRG' LOCAL loIndexes AS CL_DBC_INDEXES_DB OF 'FOXBIN2PRG.PRG'
LOCAL loFields AS CL_DBC_FIELDS_DB OF 'FOXBIN2PRG.PRG' LOCAL loFields AS CL_DBC_FIELDS_DB OF 'FOXBIN2PRG.PRG'
LOCAL loRelations AS CL_DBC_RELATIONS OF 'FOXBIN2PRG.PRG'
lcText = '' lcText = ''
TEXT TO lcText ADDITIVE TEXTMERGE NOSHOW FLAGS 1+2 PRETEXT 1+2 TEXT TO lcText ADDITIVE TEXTMERGE NOSHOW FLAGS 1+2 PRETEXT 1+2
@@ -9914,6 +9940,9 @@ DEFINE CLASS CL_DBC_TABLE AS CL_DBC_BASE
loIndexes = CREATEOBJECT('CL_DBC_INDEXES_DB') loIndexes = CREATEOBJECT('CL_DBC_INDEXES_DB')
lcText = lcText + loIndexes.toText( tcTable ) lcText = lcText + loIndexes.toText( tcTable )
loRelations = CREATEOBJECT('CL_DBC_RELATIONS')
lcText = lcText + loRelations.toText( tcTable )
TEXT TO lcText ADDITIVE TEXTMERGE NOSHOW FLAGS 1+2 PRETEXT 1+2 TEXT TO lcText ADDITIVE TEXTMERGE NOSHOW FLAGS 1+2 PRETEXT 1+2
<<>> </TABLE> <<>> </TABLE>
ENDTEXT ENDTEXT
@@ -9947,6 +9976,7 @@ DEFINE CLASS CL_DBC_TABLE AS CL_DBC_BASE
tnParentID = THIS.__ObjectID tnParentID = THIS.__ObjectID
THIS._Fields.updateDBC( tc_OutputFile, @tnLastID, tnParentID ) THIS._Fields.updateDBC( tc_OutputFile, @tnLastID, tnParentID )
THIS._Indexes.updateDBC( tc_OutputFile, @tnLastID, tnParentID ) THIS._Indexes.updateDBC( tc_OutputFile, @tnLastID, tnParentID )
loRelations.updateDBC( tc_OutputFile, @tnLastID, tnParentID )
ENDPROC ENDPROC
@@ -10647,16 +10677,15 @@ DEFINE CLASS CL_DBC_VIEW AS CL_DBC_BASE
*_Indexes = NULL *_Indexes = NULL
************************************************************************************************
PROCEDURE INIT PROCEDURE INIT
DODEFAULT() DODEFAULT()
*-- *--
THIS.ADDOBJECT("_Fields", "CL_DBC_FIELDS_VW") THIS.ADDOBJECT("_Fields", "CL_DBC_FIELDS_DB")
THIS.ADDOBJECT("_Indexes", "CL_DBC_INDEXES_VW") THIS.ADDOBJECT("_Indexes", "CL_DBC_INDEXES_DB")
THIS.ADDOBJECT("_Relations", "CL_DBC_RELATIONS")
ENDPROC ENDPROC
*******************************************************************************************************************
PROCEDURE analizarBloque PROCEDURE analizarBloque
*--------------------------------------------------------------------------------------------------- *---------------------------------------------------------------------------------------------------
* 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)
@@ -10671,6 +10700,7 @@ DEFINE CLASS CL_DBC_VIEW AS CL_DBC_BASE
LOCAL llBloqueEncontrado, lcPropName, lcValue, loEx AS EXCEPTION LOCAL llBloqueEncontrado, lcPropName, lcValue, loEx AS EXCEPTION
LOCAL loFields AS CL_DBC_FIELDS_VW OF 'FOXBIN2PRG.PRG' LOCAL loFields AS CL_DBC_FIELDS_VW OF 'FOXBIN2PRG.PRG'
LOCAL loIndexes AS CL_DBC_INDEXES_VW OF 'FOXBIN2PRG.PRG' LOCAL loIndexes AS CL_DBC_INDEXES_VW OF 'FOXBIN2PRG.PRG'
LOCAL loRelations AS CL_DBC_RELATIONS OF 'FOXBIN2PRG.PRG'
STORE '' TO lcPropName, lcValue STORE '' TO lcPropName, lcValue
IF LEFT(tcLine, LEN(C_VIEW_I)) == C_VIEW_I IF LEFT(tcLine, LEN(C_VIEW_I)) == C_VIEW_I
@@ -10694,6 +10724,10 @@ DEFINE CLASS CL_DBC_VIEW AS CL_DBC_BASE
loIndexes = THIS._Indexes loIndexes = THIS._Indexes
loIndexes.analizarBloque( @tcLine, @taCodeLines, @I, tnCodeLines ) loIndexes.analizarBloque( @tcLine, @taCodeLines, @I, tnCodeLines )
CASE C_RELATIONS_I $ tcLine
loRelations = THIS._Indexes
loRelations.analizarBloque( @tcLine, @taCodeLines, @I, tnCodeLines )
OTHERWISE && Propiedad de VIEW OTHERWISE && Propiedad de VIEW
*-- Estructura a reconocer: *-- Estructura a reconocer:
* <name>NOMBRE</name> * <name>NOMBRE</name>
@@ -10732,6 +10766,7 @@ DEFINE CLASS CL_DBC_VIEW AS CL_DBC_BASE
LOCAL I, lcText, lcDBC, lnField_Count, laFields(1), loEx AS EXCEPTION LOCAL I, lcText, lcDBC, lnField_Count, laFields(1), loEx AS EXCEPTION
LOCAL loFields AS CL_DBC_FIELDS_VW OF 'FOXBIN2PRG.PRG' LOCAL loFields AS CL_DBC_FIELDS_VW OF 'FOXBIN2PRG.PRG'
LOCAL loIndexes AS CL_DBC_INDEXES_VW OF 'FOXBIN2PRG.PRG' LOCAL loIndexes AS CL_DBC_INDEXES_VW OF 'FOXBIN2PRG.PRG'
LOCAL loRelations AS CL_DBC_RELATIONS OF 'FOXBIN2PRG.PRG'
lcText = '' lcText = ''
TEXT TO lcText TEXTMERGE NOSHOW FLAGS 1+2 PRETEXT 1+2 TEXT TO lcText TEXTMERGE NOSHOW FLAGS 1+2 PRETEXT 1+2
@@ -10768,6 +10803,9 @@ DEFINE CLASS CL_DBC_VIEW AS CL_DBC_BASE
loIndexes = THIS._Indexes loIndexes = THIS._Indexes
lcText = lcText + loIndexes.toText( tcView ) lcText = lcText + loIndexes.toText( tcView )
loRelations = CREATEOBJECT('CL_DBC_RELATIONS')
lcText = lcText + loRelations.toText( tcView )
TEXT TO lcText ADDITIVE TEXTMERGE NOSHOW FLAGS 1+2 PRETEXT 1+2 TEXT TO lcText ADDITIVE TEXTMERGE NOSHOW FLAGS 1+2 PRETEXT 1+2
<<>> </VIEW> <<>> </VIEW>
ENDTEXT ENDTEXT
@@ -11143,17 +11181,19 @@ DEFINE CLASS CL_DBC_RELATIONS AS CL_DBC_COL_BASE
PROCEDURE toText PROCEDURE toText
*--------------------------------------------------------------------------------------------------- *---------------------------------------------------------------------------------------------------
* 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)
* tcTable (v! IN ) Tabla de la que obtener las relaciones
* taRelations (@? OUT) Array de relaciones * taRelations (@? OUT) Array de relaciones
* tnRelation_Count (@? OUT) Cantidad de relaciones * tnRelation_Count (@? OUT) Cantidad de relaciones
*--------------------------------------------------------------------------------------------------- *---------------------------------------------------------------------------------------------------
LPARAMETERS taRelations, tnRelation_Count LPARAMETERS tcTable, taRelations, tnRelation_Count
EXTERNAL ARRAY taRelations EXTERNAL ARRAY taRelations
TRY TRY
LOCAL I, lcText, loEx AS EXCEPTION LOCAL I, X, lcText, loEx AS EXCEPTION
LOCAL loRelation AS CL_DBC_RELATION OF 'FOXBIN2PRG.PRG' LOCAL loRelation AS CL_DBC_RELATION OF 'FOXBIN2PRG.PRG'
lcText = '' lcText = ''
X = 0
DIMENSION taRelations(1,5) DIMENSION taRelations(1,5)
tnRelation_Count = ADBOBJECTS( taRelations,"RELATION" ) tnRelation_Count = ADBOBJECTS( taRelations,"RELATION" )
@@ -11164,17 +11204,19 @@ DEFINE CLASS CL_DBC_RELATIONS AS CL_DBC_COL_BASE
TEXT TO lcText ADDITIVE TEXTMERGE NOSHOW FLAGS 1+2 PRETEXT 1+2 TEXT TO lcText ADDITIVE TEXTMERGE NOSHOW FLAGS 1+2 PRETEXT 1+2
<<>> <<>>
<<>> <RELATIONS> <<>> <RELATIONS>
ENDTEXT ENDTEXT
loRelation = CREATEOBJECT('CL_DBC_RELATION') loRelation = CREATEOBJECT('CL_DBC_RELATION')
FOR I = 1 TO tnRelation_Count FOR I = 1 TO tnRelation_Count
lcText = lcText + loRelation.toText( @taRelations, I ) IF taRelations(I,1) == UPPER( RTRIM( tcTable ) )
lcText = lcText + loRelation.toText( @taRelations, I )
ENDIF
ENDFOR ENDFOR
TEXT TO lcText ADDITIVE TEXTMERGE NOSHOW FLAGS 1+2 PRETEXT 1+2 TEXT TO lcText ADDITIVE TEXTMERGE NOSHOW FLAGS 1+2 PRETEXT 1+2
<<>> </RELATIONS> <<>> </RELATIONS>
<<>> <<>>
ENDTEXT ENDTEXT
ENDIF ENDIF
@@ -11286,14 +11328,14 @@ DEFINE CLASS CL_DBC_RELATION AS CL_DBC_BASE
lcText = '' lcText = ''
TEXT TO lcText TEXTMERGE NOSHOW FLAGS 1+2 PRETEXT 1+2 TEXT TO lcText TEXTMERGE NOSHOW FLAGS 1+2 PRETEXT 1+2
<<>> <RELATION> <<>> <RELATION>
<<>> <Name><<'Relation ' + TRANSFORM(I)>></Name> <<>> <Name><<'Relation ' + TRANSFORM(I)>></Name>
<<>> <ChildTable><<ALLTRIM(taRelations(I,1))>></ChildTable> <<>> <ChildTable><<ALLTRIM(taRelations(I,1))>></ChildTable>
<<>> <ParentTable><<ALLTRIM(taRelations(I,2))>></ParentTable> <<>> <ParentTable><<ALLTRIM(taRelations(I,2))>></ParentTable>
<<>> <ChildIndex><<ALLTRIM(taRelations(I,3))>></ChildIndex> <<>> <ChildIndex><<ALLTRIM(taRelations(I,3))>></ChildIndex>
<<>> <ParentIndex><<ALLTRIM(taRelations(I,4))>></ParentIndex> <<>> <ParentIndex><<ALLTRIM(taRelations(I,4))>></ParentIndex>
<<>> <RefIntegrity><<ALLTRIM(taRelations(I,5))>></RefIntegrity> <<>> <RefIntegrity><<ALLTRIM(taRelations(I,5))>></RefIntegrity>
<<>> </RELATION> <<>> </RELATION>
ENDTEXT ENDTEXT