Pengidentifikasi dan Deskriptor Jenis Data

Jenis data yang tercantum di bagian Tipe Data SQL dan Tipe Data C sebelumnya dalam lampiran ini adalah jenis data "ringkas": Setiap pengidentifikasi mengacu pada satu jenis data. Ada korespondensi satu-ke-satu antara pengidentifikasi dan jenis data. Namun, deskriptor tidak dalam semua kasus menggunakan satu nilai untuk mengidentifikasi jenis data. Dalam beberapa kasus, mereka menggunakan jenis data "verbose" dan subkode jenis. Untuk semua jenis data kecuali jenis data tanggalwaktu dan interval, pengidentifikasi jenis verbose sama dengan pengidentifikasi jenis ringkas dan nilai dalam SQL_DESC_DATETIME_INTERVAL_CODE sama dengan 0. Namun, untuk jenis data tanggalwaktu dan interval, jenis verbose (SQL_DATETIME atau SQL_INTERVAL) disimpan dalam SQL_DESC_TYPE, jenis ringkas disimpan dalam SQL_DESC_CONCISE_TYPE, dan subkode untuk setiap jenis ringkas disimpan dalam SQL_DESC_DATETIME_INTERVAL_CODE. Pengaturan salah satu bidang ini memengaruhi bidang lainnya. Untuk informasi selengkapnya tentang bidang ini, lihat deskripsi fungsi SQLSetDescField .

Saat bidang SQL_DESC_TYPE atau SQL_DESC_CONCISE_TYPE diatur untuk beberapa jenis data, bidang SQL_DESC_DATETIME_INTERVAL_PRECISION, SQL_DESC_LENGTH, SQL_DESC_PRECISION, dan SQL_DESC_SCALE secara otomatis diatur ke nilai default, sebagaimana berlaku untuk jenis data. Untuk informasi selengkapnya, lihat deskripsi bidang SQL_DESC_TYPE di SQLSetDescField. Jika salah satu nilai default yang ditetapkan tidak sesuai, aplikasi harus secara eksplisit mengatur bidang deskriptor melalui panggilan ke SQLSetDescField.

Tabel berikut menunjukkan pengidentifikasi jenis ringkas, pengidentifikasi jenis verbose, dan subkode jenis untuk setiap pengidentifikasi jenis SQL dan C tanggalwaktu dan interval. Seperti yang ditunjukkan tabel ini, untuk jenis data tanggalwaktu dan interval, bidang SQL_DESC_TYPE dan SQL_DESC_DATETIME_INTERVAL_CODE memiliki konstanta manifes yang sama baik untuk jenis data SQL (dalam deskriptor implementasi) maupun untuk jenis data C (dalam deskriptor aplikasi).

Jenis SQL ringkas Tipe C ringkas Jenis verbose DATETIME_INTERVAL_CODE
SQL_TYPE_DATE SQL_C_TYPE_DATE SQL_DATETIME SQL_CODE_DATE
SQL_TYPE_TIME SQL_C_TYPE_TIME SQL_DATETIME SQL_CODE_TIME
SQL_TYPE_TIMESTAMP SQL_C_TYPE_TIMESTAMP SQL_DATETIME SQL_CODE_TIMESTAMP
SQL_INTERVAL_MONTH SQL_C_INTERVAL_MONTH SQL_INTERVAL SQL_CODE_MONTH
SQL_INTERVAL_YEAR SQL_C_INTERVAL_YEAR SQL_INTERVAL SQL_CODE_YEAR
SQL_INTERVAL_YEAR_TO_MONTH SQL_C_INTERVAL_YEAR_TO_MONTH SQL_INTERVAL SQL_CODE_YEAR_TO_MONTH
SQL_INTERVAL_DAY SQL_C_INTERVAL_DAY SQL_INTERVAL SQL_CODE_DAY
SQL_INTERVAL_HOUR SQL_C_INTERVAL_HOUR SQL_INTERVAL SQL_CODE_HOUR
SQL_INTERVAL_MINUTE SQL_C_INTERVAL_MINUTE SQL_INTERVAL SQL_CODE_MINUTE
SQL_INTERVAL_SECOND SQL_C_INTERVAL_SECOND SQL_INTERVAL SQL_CODE_SECOND
SQL_INTERVAL_DAY_TO_HOUR SQL_C_INTERVAL_DAY_TO_HOUR SQL_INTERVAL SQL_CODE_DAY_TO_HOUR
SQL_INTERVAL_DAY_TO_MINUTE SQL_C_INTERVAL_DAY_TO_MINUTE SQL_INTERVAL SQL_CODE_DAY_TO_MINUTE
SQL_INTERVAL_DAY_TO_SECOND SQL_C_INTERVAL_DAY_TO_SECOND SQL_INTERVAL SQL_CODE_DAY_TO_SECOND
SQL_INTERVAL_HOUR_TO_MINUTE SQL_C_INTERVAL_HOUR_TO_MINUTE SQL_INTERVAL SQL_CODE_HOUR_TO_MINUTE
SQL_INTERVAL_HOUR_TO_SECOND SQL_C_INTERVAL_HOUR_TO_SECOND SQL_INTERVAL SQL_CODE_HOUR_TO_SECOND
SQL_INTERVAL_MINUTE_TO_SECOND SQL_C_INTERVAL_MINUTE_TO_SECOND SQL_INTERVAL SQL_CODE_MINUTE_TO_SECOND