SetProperty Method
Class: _DBC
This method set property value.
=
Object.SetProperty
Parameter
lcAlias
DBC Alias
Type Character
Direction Input
Alias of opened DBC as table.
liIDObject
Object ID
Type Integer
Direction Input
See _DBC::GetIDObject().
liIDProp
Property ID
Type Integer
Direction Input
Property ID. For a list of properties, see _DBC::EnumProperty().
luValue
Property value
By reference  
Direction Input
New value.
Return value Integer
If the method succeeds, the return value is _DBC_ObjectFound .

If the method fails, the return value is _DBC_ObjectNotFound or _DBC_ValueInvalid .
Example
#INCLUDE "dbc.h"
SET PROCEDURE TO dbc.prg ADDITIVE
LOCAL lcAlias,liIDT,loDBC,luValue
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 value
=loDBC.GetProperty(lcAlias,liIDT,_DBCID_Comment,@luValue)
?luValue
* Set property value
luValue="New comment "+SYS(2015)
=loDBC.SetProperty(lcAlias,liIDT,_DBCID_Comment,@luValue)
* Get property value
=loDBC.GetProperty(lcAlias,liIDT,_DBCID_Comment,@luValue)
?luValue
loDBC.CloseTable(lcAlias)
RELEASE loDBC
RELEASE PROCEDURE dbc.prg


See also
Expand/Collapse source code of procedure SetProperty Source Code
      LPARAMETERS lcAlias,liIDObject,liIDProp,luValue
      * lcAlias    - Alias of opened DBC
      * liIDObject - Object ID
      * liIDProp   - Property ID
      * luValue    -  Value


      LOCAL liStart,liLen,liLenID,lcPom,liType
      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

      * Convert value to DBC value
      luValue=This.ValueToDBCValue(liIDProp,luValue)

      IF ISNULL(luValue)
         RETURN _DBC_ValueInvalid
      ENDIF

      DO WHILE liStart<=LEN(Property)
         liLen=This.C4ToI(SUBS(Property,liStart,4)) && Lenght
         * This is lenght of Property ID
         liLenID=This.C2ToI(SUBS(Property,liStart+4,2))

         * Is't finding property
         IF This.CnToI(SUBS(Property,liStart+4+2,liLenID))=liIDProp
            REPL Property WITH STUFF(Property,liStart,liLen,;
                          This.IToC4(4+2+liLenID+LEN(luValue))+;
                          This.IToC2(liLenID)+;
                          This.IToCn(liIDProp)+luValue)
            RETURN _DBC_ObjectFound
         ENDIF
         liStart=liStart+liLen
      ENDDO
      lcPom=This.IToCn(liIDProp)
      REPL Property WITH Property+;
                         This.IToC4(4+2+LEN(lcPom)+LEN(luValue))+;
                         This.IToC2(LEN(lcPom))+;
                         lcPom+luValue
      RETURN _DBC_ObjectFound