Data type attributes

Information is shown for the following data type attributes:

Precision

The precision of a numeric column or parameter refers to the maximum number of digits used by the data type of the column or parameter. The precision of a non-numeric column or parameter generally refers to the maximum length or the defined length of the column or parameter. The following table defines the precision for each SQL data type.

Tabulka 21. Precision

fSqlType Precision
SQL_CHAR
SQL_VARCHAR
The defined length of the column or parameter. For example, the precision of a column defined as CHAR(10) is 10.
SQL_DECIMAL The defined maximum number of digits. For example, the precision of a column defined as DECIMAL(10,3) is 10.
SQL_SMALLINT a 5
SQL_INTEGER a 10
SQL_BLOB The defined length of the column or parameter. For example, the precision of a column defined as BLOB(10), is 10.
SQL_DATE a 10 (the number of characters in the yyyy-mm-dd format).
SQL_TIME a 8 (the number of characters in the hh:mm:ss format).
SQL_TIMESTAMP 26 (The number of characters in the "yyyy-mm-dd-hh.mm.ss.ffffff" format used by the TIMESTAMP data type.)

a: The cbParamDef argument of SQLBindParameter() is ignored for this data type.

Scale

The scale of a numeric column or parameter refers to the maximum number of digits to the right of the decimal point. The following table defines the scale for each SQL data type.

Tabulka 22. Scale

fSqlType Scale
SQL_CHAR
SQL_VARCHAR
Not applicable.
SQL_DECIMAL The defined number of digits to the right of the decimal place. For example, the scale of a column defined as DECIMAL(10, 3) is 3.
SQL_SMALLINT
SQL_INTEGER
0
SQL_BLOB Not applicable.
SQL_DATE
SQL_TIME
Not applicable.
SQL_TIMESTAMP 6 (The number of digits to the right of the decimal point in the "yyyy-mm-dd-hh.mm.ss.ffffff" format.)

Length

The length of a column is the maximum number of bytes returned to the application when data is transferred to its default C data type. For character data, the length does not include the null termination byte. Note that the length of a column may be different than the number of bytes required to store the data on the data source.

The following table defines the length for each SQL data type.

Tabulka 23. Length

fSqlType Length
SQL_CHAR
SQL_VARCHAR
The defined length of the column. For example, the length of a column defined as CHAR(10) is 10.
SQL_DECIMAL The maximum number of digits plus two. Since these data types are returned as character strings, characters are needed for the digits, a sign, and a decimal point. For example, the length of a column defined as DECIMAL(10,3) is 12.
SQL_SMALLINT 2 (two bytes).
SQL_INTEGER 4 (four bytes).
SQL_BLOB The defined length of the column. For example, the length of a column defined as BLOB(10) is 10.
SQL_DATE
SQL_TIME
6 (the size of the DATE_STRUCT or TIME_STRUCT structure).
SQL_TIMESTAMP 16 (the size of the TIMESTAMP_STRUCT structure).

Display size

The display size of a column is the maximum number of bytes needed to display data in character form. The following table defines the display size for each SQL data type.

Tabulka 24. Display size

fSqlType Display size
SQL_CHAR
SQL_VARCHAR
The defined length of the column. For example, the display size of a column defined as CHAR(10) is 10.
SQL_DECIMAL The precision of the column plus two (a sign, precision digits, and a decimal point). For example, the display size of a column defined as DECIMAL(10,3) is 12.
SQL_SMALLINT 6 (a sign and 5 digits).
SQL_INTEGER 11 (a sign and 10 digits).
SQL_BLOB The defined length of the column times 2 (each binary byte is represented by a 2 digit hexadecimal number). For example, the display size of a column defined as BLOB(10) is 20.
SQL_DATE 10 (a date in the format yyyy-mm-dd).
SQL_TIME 8 (a time in the format hh:mm:ss).
SQL_TIMESTAMP 26 (a timestamp in the format yyyy-mm-dd-hh.mm.ss.ffffff).