EnumObjects Method
Class: _DBC
This method return list of object in DBC. It's can return list of tables, views, connections, or fields, indexes, and relations for table and view.
=
Object.EnumObjects
Parameter
lcAlias
DBC Alias
Type Character
Direction Input
Alias of opened DBC as table.
lcType
Object Type
Type Character
Direction Input
List of types
ValueDescription
_DBC_DataBaseDatabase
_DBC_TableTable
_DBC_FieldField
_DBC_IndexIndex
_DBC_RelationRelation
_DBC_ConnectionConnection
_DBC_ViewView
liIDParent
ID of parent object
Type Integer
Direction Input
See _DBC::GetIDObject(). This parameter is needy for parameter lcType is one of (_DBC_Field ,_DBC_Index ,_DBC_Relation )
laObjects
List of selected objects
Type Array
By reference  
Direction Output
Output array is two dimensional. For each object is one row in array. First column is object id and second column is object name.
Return value Integer
If the method succeeds, the return value is count of selected objects.

If the method fails, the return value is _DBC_ErrParamFailed .
Example
#INCLUDE "dbc.h"
SET PROCEDURE TO dbc.prg ADDITIVE
LOCAL lcAlias,liIDT,liCount,lii,loDBC
LOCAL ARRAY laObjects(1)
loDBC=CREATEOBJECT("_DBC")
lcAlias=SYS(2015)
=loDBC.OpenTable(HOME(2)+"\Tastrade\Data\tastrade.dbc",lcAlias,"")

* Get all fields for table products
liIDT=loDBC.GetIDObject(lcAlias,_DBC_Table,"products")
liCount=loDBC.EnumObjects(lcAlias,_DBC_Field,liIDT,@laObjects)
FOR lii=1 TO liCount
    ?laObjects(lii,1),laObjects(lii,2)
NEXT

* Get all tables from DBC
liCount=loDBC.EnumObjects(lcAlias,_DBC_Table,0,@laObjects)
FOR lii=1 TO liCount
    ?laObjects(lii,1),laObjects(lii,2)
NEXT

loDBC.CloseTable(lcAlias)
RELEASE loDBC
RELEASE PROCEDURE dbc.prg


See also
Expand/Collapse source code of procedure EnumObjects Source Code
      LPARAMETERS lcAlias,lcType,liIDParent,laObjects
      * lcAlias    - Alias of opened DBC
      * lcType     - Object Type
      * liIDParent - Parent ID
      * @laObjects - Output array for object

      EXTERNAL ARRAY laObjects


      IF EMPTY(lcType)
         RETURN _DBC_ErrParamFailed
      ENDIF
      LOCAL llFound,liCount,lii,liID
      liCount=0
      SELE (lcAlias) && Skip to DBC 
      IF INLIST(lcType,_DBC_Field,_DBC_Index,_DBC_Relation)
         SET FILTER TO ParentID=liIDParent AND ObjectType==lcType AND ! DELE()
      ELSE
         SET FILTER TO ObjectType==lcType AND ! DELE()
      ENDIF
      GO TOP
      COUNT TO liCount
      IF liCount>0
         DIME laObjects(liCount,2)
         GO TOP
         lii=0
         SCAN ALL
              lii=lii+1
              laObjects(lii,1)=OBJECTID
              laObjects(lii,2)=ALLT(OBJECTNAME)
         ENDSCAN
      ENDIF
      SET FILTER TO
      RETURN liCount