CheckValue Method
Class: _DBC
This method return if value valid.
=
Object.CheckValue
Parameter
liIDProp
Property ID
Type Integer
Direction Input
Property ID. For a list of properties, see _DBC::EnumProperty().
liType
Value type
Type Integer
Direction Input
Value type. For retrieving type value use method _DBC::GetValueType().
luValue
Value type
Type Integer/String/Number/Boolean
Direction Input
Value type.
Return value Boolean
If the value valid, the return value is .T. .

If the value invalid the return value is .F. .
Example
#INCLUDE "dbc.h"
SET PROCEDURE TO dbc.prg ADDITIVE
LOCAL lcAlias,liIDT,loDBC,luValue,liType
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
luValue=loDBC.GetProperty(lcAlias,liIDT,_DBCID_Comment,@luValue)
liType=loDBC.GetValueType(_DBCID_Comment)
?loDBC.CheckValue(_DBCID_Comment,liType,luValue)
loDBC.CloseTable(lcAlias)
RELEASE loDBC
RELEASE PROCEDURE dbc.prg


See also
Expand/Collapse source code of procedure CheckValue Source Code
      LPARAMETERS liIDProp,liType,luValue
      * liIDProp   - Property ID
      * liType     - Value type
      * luValue    - Value


      * 1) check type
      * 2) interval
      * 3) if type is not base, call connector if defined
      * 4) return .T. is value valid or .F. is invalid

      IF (liType=_DBC_ValueType_String AND (!INLIST(TYPE("luValue"),"C","M") OR ISNULL(luValue))) OR ;
         (liType=_DBC_ValueType_Byte AND (!TYPE("luValue")="N" OR ISNULL(luValue))) OR ;
         (liType=_DBC_ValueType_SI32R AND (!TYPE("luValue")="N" OR ISNULL(luValue))) OR ;
         (liType=_DBC_ValueType_I32R AND (!TYPE("luValue")="N" OR ISNULL(luValue))) OR ;
         (liType=_DBC_ValueType_Boolean AND (!TYPE("luValue")="L" OR ISNULL(luValue)))
         RETURN .F.
      ENDIF

      DO CASE
         CASE INLIST(liIDProp,_DBCID_Comment,_DBCID_Path,;
              _DBCID_RuleExpression,_DBCID_RuleText,_DBCID_InsertTrigger,;
              _DBCID_UpdateTrigger,_DBCID_DeleteTrigger,_DBCID_PrimaryKey,;
              _DBCID_DefaultValue,_DBCID_Caption,_DBCID_ChildTag,;
              _DBCID_ParentTable,_DBCID_Database) OR ;
              INLIST(liIDProp,_DBCID_ParentTag,_DBCID_DataSource,;
              _DBCID_ConnectString,_DBCID_Password,_DBCID_UserID,;
              _DBCID_ParameterList,_DBCID_ConnectName,_DBCID_SQL,;
              _DBCID_Tables,_DBCID_UpdateName,_DBCID_DataType,;
              _DBCID_DisplayClass,_DBCID_DisplayClassLibrary,;
              _DBCID_Format,_DBCID_InputMask,;
              _DBCID_DBCEventFileName)
              RETURN .T.

         CASE liIDProp=_DBCID_SubType
              RETURN INLIST(luValue,1,6,7)

         CASE liIDProp=_DBCID_DispLogin
              RETURN INLIST(luValue,1,2,3)

         CASE liIDProp=_DBCID_Transactions
              RETURN INLIST(luValue,1,2)

         CASE liIDProp=_DBCID_SourceType
              RETURN INLIST(luValue,1,2)

         CASE liIDProp=_DBCID_UpdateType
              RETURN INLIST(luValue,1,2)

         CASE liIDProp=_DBCID_WhereType
              RETURN INLIST(luValue,1,2,3,4)

         CASE liIDProp=_DBCID_FetchSize
              RETURN luValue=-1 OR BETWEEN(luValue,0,0x7FFFFFFF)

         CASE liIDProp=_DBCID_MaxRecords
              RETURN luValue=-1 OR BETWEEN(luValue,0,0x7FFFFFFF)

         CASE liIDProp=_DBCID_ConnectTimeout
              RETURN BETWEEN(luValue,0,0x7FFFFFFF)

         CASE liIDProp=_DBCID_IdleTimeout
              RETURN BETWEEN(luValue,0,0xA8C0)

         CASE liIDProp=_DBCID_QueryTimeout
              RETURN BETWEEN(luValue,0,0x7FFFFFFF)

         CASE liIDProp=_DBCID_WaitTime
              RETURN BETWEEN(luValue,0,0x7FFFFFFF)

         CASE liIDProp=_DBCID_PacketSize
              RETURN BETWEEN(luValue,0,0x7FFFFFFF)

         CASE liIDProp=_DBCID_UseMemoSize
              RETURN BETWEEN(luValue,1,255)

         CASE liIDProp=_DBCID_Version
              RETURN INLIST(luValue,10,11)

         CASE liIDProp=_DBCID_BatchUpdateCount
              RETURN BETWEEN(luValue,0,0x7FFFFFFF)

         CASE INLIST(liIDProp,_DBCID_Prim_Cand,_DBCID_Asynchronous,_DBCID_BatchMode,;
              _DBCID_DispWarnings,_DBCID_FetchMemo,_DBCID_ShareConnection,;
              _DBCID_SendUpdates,_DBCID_KeyField,_DBCID_Updatable,;
              _DBCID_CompareMemo,_DBCID_FetchAsNeeded,_DBCID_Offline,;
              _DBCID_Prepared,_DBCID_DBCEvents,_DBCID_AllowSimultaneousFetch,;
              _DBCID_DisconnectRollback)
              RETURN .T.

         OTHERWISE !ISNULL(This.oConnector)
              RETURN This.oConnector.CheckValue(liIDProp,liType,luValue)

      ENDCASE
      RETURN .F.