Class: | _DBC |
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 | Character |
Direction | Input |
#INCLUDE "dbc.h" SET PROCEDURE TO dbc.prg ADDITIVE LOCAL lcAlias,liIDT,loDBC loDBC=CREATEOBJECT("_DBC") lcAlias=SYS(2015) =loDBC.OpenTable(HOME(2)+"\Tastrade\Data\tastrade.dbc",lcAlias,"") liIDT=loDBC.GetIDObject(lcAlias,_DBC_Table,"products") ?liIDT loDBC.CloseTable(lcAlias) RELEASE loDBC RELEASE PROCEDURE dbc.prg
LPARAMETERS lcAlias,lcType,lcObjName * lcAlias - Alias of opened DBC * lcType - Object Type * lcObjName - Object Name SELE (lcAlias) && Skip to DBC IF INLIST(lcType,_DBC_Field,_DBC_Index,_DBC_Relation) LOCAL lcParent,lii,lcObj lii=AT(".",lcObjName) && Find dot lcParent=PADR(UPPER(LEFT(lcObjName,lii-1)),128) lcObj=PADR(UPPER(SUBST(lcObjName,lii+1)),128) * Find Parent LOCATE FOR INLIST(ObjectType,_DBC_Table,_DBC_View) AND; UPPER(ObjectName)==lcParent AND ! DELE() IF FOUND() && If found lii=ObjectID * Find object LOCATE FOR ParentID=lii AND ObjectType==lcType AND ; UPPER(ObjectName)==lcObj AND ! DELE() ENDIF ELSE LOCATE FOR ObjectType==lcType AND UPPER(ObjectName)==PADR(UPPER(lcObjName),128); AND ! DELE() ENDIF RETURN IIF(FOUND(),ObjectID,_DBC_ObjectNotFound)