Type | Character |
Direction | Input |
Type | Integer |
Direction | Input |
Type | Integer |
Direction | Input |
By reference | |
Direction | Output |
#INCLUDE "dbc.h" SET PROCEDURE TO dfo.prg ADDITIVE LOCAL lcAlias,liIDT,lcDBC,luValue lcAlias=SYS(2015) lcDBC=HOME(2)+"\Tastrade\Data\tastrade.dbc" USE (lcDBC) ALIAS (lcAlias) IN 0 * Get field ID liIDT=DBC_GetIDObject(lcAlias,_DBC_Field,"products.product_id") * Get property value =DBC_GetProperty(lcAlias,liIDT,_DBCID_Comment,@luValue) ?luValue USE IN (lcAlias) RELEASE PROCEDURE dfo.prg
LPARAMETERS lcAlias,liIDObject,liIDProp,luValue * lcAlias - Alias of opended DBC * liIDObject - Object ID * liIDProp - Property ID * @luValue - (output) Value of property LOCAL liStart,liLen,liLenID 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 DO WHILE liStart<=LEN(Property) liLen=DFO_C4ToI(SUBS(Property,liStart,4)) && Lenght * This is lenght of Property ID liLenID=IIF(DFO_C2ToI(SUBS(Property,liStart+4,2))>256,2,1) * Is't finding property IF IIF(liLenID=1,ASC(SUBS(Property,liStart+4+2,liLenID)),; DFO_C2ToI(SUBS(Property,liStart+4+2,liLenID)))=liIDProp luValue=DBC_ConvertPropertyToValue(liIDProp,; SUBS(Property,liStart+3+2+liLenID+1,liLen-(3+2+liLenID+1)) ) RETURN _DBC_ObjectFound ENDIF liStart=liStart+liLen ENDDO luValue=DBC_GetDefaultValue(liIDProp) RETURN _DBC_ObjectFound