EnumProperty Method
Class: _DBC
This method return list of object properties.
=
Object.EnumProperty
Parameter
lcAlias
DBC Alias
Type Character
Direction Input
Alias of opened DBC as table.
liIDObject
Object ID
Type Integer
Direction Input
See _DBC::GetIDObject().
laProp
List of object properties
Type Array
By reference  
Direction Output
Output array is two dimensional. For each property is one row in array. First column is property id and second column is property value.
Note
For converting property ID to property name use function _DBC::FormatProperty().
Return value Integer
If the method succeeds, the return value is count of selected objects.

If the method fails, the return value is _DBC_ObjectNotFound .
Example
#INCLUDE "dbc.h"
SET PROCEDURE TO dbc.prg ADDITIVE
LOCAL lcAlias,liIDT,liCount,lii,loDBC
LOCAL ARRAY laProps(1)
loDBC=CREATEOBJECT("_DBC")
lcAlias=SYS(2015)
=loDBC.OpenTable(HOME(2)+"\Tastrade\Data\tastrade.dbc",lcAlias,"")
* Get field ID
liIDT=loDBC.GetIDObject(lcAlias,_DBC_Field,"products.product_id")
* Get property list
liCount=loDBC.EnumProperty(lcAlias,liIDT,@laProps)
FOR lii=1 TO liCount
    ?laProps(lii,1),loDBC.FormatProperty(laProps(lii,1)),laProps(lii,2)
NEXT
loDBC.CloseTable(lcAlias)
RELEASE loDBC
RELEASE PROCEDURE dbc.prg


See also
Expand/Collapse source code of procedure EnumProperty Source Code
      LPARAMETERS lcAlias,liIDObject,laProp
      * lcAlias    - Alia sof opened DBC
      * liIDObject - Object ID
      * @laProp    - Output array for Properties and their values


      EXTERNAL ARRAY laProp

      LOCAL liStart,liLen,liLenID,lii
      liStart=1 && First char

      SELE (lcAlias) && Skip to DBC 
      LOCATE FOR ObjectID=liIDObject && Find object
      IF !FOUND() && If not found
         RETURN _DBC_ObjectNotFound && Get out
      ENDIF
      lii=0 && Reset counter
      DO WHILE liStart<=LEN(Property)
         liLen=This.C4ToI(SUBS(Property,liStart,4)) && Lenght
         * This is lenght of Property ID
         liLenID=IIF(This.C2ToI(SUBS(Property,liStart+4,2))>256,2,1)

         lii=lii+1 && Increment counter
         DIME laProp(lii,3)
         * Property ID
         laProp(lii,1)=IIF(liLenID=1,ASC(SUBS(Property,liStart+4+2,liLenID)),;
                       This.C2ToI(SUBS(Property,liStart+4+2,liLenID)))
         * Convert DBC value to Value
         laProp(lii,2)=This.DBCValueToValue(laProp(lii,1),;
                       SUBS(Property,liStart+3+2+liLenID+1,liLen-(3+2+liLenID+1)))
         liStart=liStart+liLen
      ENDDO
      RETURN lii