Skip to content

Database API Attributes

The Database API Attributes are used in combination with the Get_Attribute, Set_Attribute, Structure_Start, and Structure_End commands to query and manipulate the structure of databases and tables.

Attributes are defined at different levels. The supported levels are: Global, Driver, Database, Table, Column, Index, and Index_Segment. Depending on the attribute’s level, the number of arguments for the Set_Attribute and Get_Attribute commands varies.

Some API attributes can only be used when using a specific database driver. Global attributes are global and thus do not rely on a driver. All other attribute levels do rely on a driver. The basic set of attributes can be used for any driver, but some of these attributes do not make sense for the back end in use. For example, the DF_FILE_MAX_RECORDS attribute only makes sense when used with the Embedded Database.

The DataFlex SQL Drivers define driver and database level attributes. Some of the attributes are defined at both driver and database levels. For these attributes, the value at the driver level acts as a default value. To get the actual value of such an attribute, always retrieve the database level attribute.

This section describes each API basic and driver-specific attribute. They are listed alphabetically. It also describes the basic techniques for using the attributes in a DataFlex program. Each attribute is described using the following topics: Level, Supported by, Type, Values, and Remarks.

See Also: Creating and Modifying Table Structures in the Database Essentials section of the Developing Database Applications book.

All of the examples in this section of the documentation are designed to work with the data files provided with the Order Entry Sample Application workspace. Due to this, any of the example code provided here can easily be copied and pasted into the Studio and tested.

Note: You may want to back up the tables for the Order Entry Sample Application workspace before testing any example code that modifies the data file structure of these tables. To do so, you can simply back up the Data subfolder of this workspace.

Example

For example, to test the example code for the DF_DATE_FORMAT API attribute, you can use the following code:

Object oButton1 is a Button
    Set Location to 73 106
    Set Label to "oButton1"

    Procedure OnClick
        Send ShowFormats
    End_Procedure // OnClick

    Procedure ShowFormats
        Integer iDateFormat iDateSep iDecimalSep iThousandSep
        String sDateFormat

        Get_Attribute DF_DATE_FORMAT to iDateFormat
        Get_Attribute DF_DATE_SEPARATOR to iDateSep
        Get_Attribute DF_DECIMAL_SEPARATOR to iDecimalSep
        Get_Attribute DF_THOUSANDS_SEPARATOR to iThousandSep

        If (iDateFormat = DF_DATE_USA) Move "USA" to sDateFormat
        Else If (iDateFormat = DF_DATE_EUROPEAN) Move "European" to sDateFormat
        Else If (iDateFormat = DF_DATE_MILITARY) Move "Military" to sDateFormat
        Else Move "Unknown" to sDateFormat

        Send Info_Box ("Formats:\nDate:" * sDateFormat + ;
                        "\nDate separator:" * Character(iDateSep) + ;
                        "\nDecimal separator:" * Character(iDecimalSep) + ;
                        "\nThousand separator:" * Character(iThousandSep))
    End_Procedure // ShowFormats
End_Object

Lists of Attributes