KNOWLEDGE BASE
Log In    |    Knowledge Base    |    4D Home
Tech Tip: Method to determine if a field's data are automatically generated
PRODUCT: 4D | VERSION: 14.3 | PLATFORM: Mac & Win
Published On: February 5, 2015

Below are a couple of methods to determine if a field's data are automatically generated upon creation.

GetAutoUUID determines if the field automatically generates UUID values.

//Method: GetAutoUUID
//Parameters:
// $1 - Table number
// $2 - Field number
// $0 Boolean Returns:
// True - If field automatically generates a UUID value
// False - If field does not automatically generates a UUID value
//-----------------------------------------------------------------------
C_LONGINT($1;$table_id_l)
C_LONGINT($2;$column_id_l)
C_BOOLEAN($0;$autoGen_b)

If (Count parameters>=2)
   $table_id_l:=$1
   $column_id_l:=$2
   Begin SQL
       SELECT AUTOGENERATE
       FROM _USER_COLUMNS
       WHERE TABLE_ID = :$table_id_l
       AND COLUMN_ID = :$column_id_l
       INTO :$autoGen_b;
   End SQL

   $0:=$autoGen_b
End if


GetAutoIncrement determines if the field automatically generates Incrementing values.

//Method: GetAutoIncrement
//Parameters:
// $1 - Table number
// $2 - Field number
// $0 Boolean Returns:
// True - If field generates automaticly incrementing values
// False - If field does not generates automaticly incrementing values
//-----------------------------------------------------------------------
C_LONGINT($1;$table_id_l)
C_LONGINT($2;$column_id_l)
C_BOOLEAN($0;$autoInc_b)

If (Count parameters>=2)
   $table_id_l:=$1
   $column_id_l:=$2
   Begin SQL
       SELECT AUTOINCREMENT
       FROM _USER_COLUMNS
       WHERE TABLE_ID = :$table_id_l
       AND COLUMN_ID = :$column_id_l
       INTO :$autoInc_b;
   End SQL

   $0:=$autoInc_b
End if




The commands are simple to use with the following example:
Table 1 - Field 1 has the AutoIncrement property set
Table 1 - Field 2 has the AutoUUID property set
Table 1 - Field 3 has no automated property set

C_BOOLEAN($check_b)

$check_b:=GetAutoUUID(1;1) //$check_b = False
$check_b:=GetAutoUUID(1;2) //$check_b = True
$check_b:=GetAutoUUID(1;3) //$check_b = False

$check_b:=GetAutoIncrement(1;1) //$check_b = True
$check_b:=GetAutoIncrement(1;2) //$check_b = False
$check_b:=GetAutoIncrement(1;3) //$check_b = False