Type | Character |
Direction | Input |
Type | Character |
Direction | Input |
Value | Description |
_DBC_DataBase | Database |
_DBC_Table | Table |
_DBC_Field | Field |
_DBC_Index | Index |
_DBC_Relation | Relation |
_DBC_Connection | Connection |
_DBC_View | View |
Type | Integer |
Direction | Input |
Type | Array |
By reference | |
Direction | Output |
#INCLUDE "dbc.h" SET PROCEDURE TO dfo.prg ADDITIVE LOCAL lcAlias,liIDT,liCount,lii,lcDBC LOCAL ARRAY laObjects(1) lcAlias=SYS(2015) lcDBC=HOME(2)+"\Tastrade\Data\tastrade.dbc" USE (lcDBC) ALIAS (lcAlias) IN 0 * Get all fields for table products liIDT=DBC_GetIDObject(lcAlias,_DBC_Table,"products") liCount=DBC_EnumObjects(lcAlias,_DBC_Field,liIDT,@laObjects) FOR lii=1 TO liCount ?laObjects(lii,1),laObjects(lii,2) NEXT * Get all tables from DBC liCount=DBC_EnumObjects(lcAlias,_DBC_Table,0,@laObjects) FOR lii=1 TO liCount ?laObjects(lii,1),laObjects(lii,2) NEXT USE IN (lcAlias) RELEASE PROCEDURE dfo.prg
LPARAMETERS lcAlias,lcType,liIDParent,laObjects * lcAlias - Alias of opended DBC * lcType - Object Type * liIDParent - Parent ID * @laObjects - Output array for Properties and their values 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