Perubahan Jenis Data TanggalWaktu

Di ODBC 3.x, pengidentifikasi untuk jenis data SQL tanggal, waktu, dan tanda waktu telah berubah dari SQL_DATE, SQL_TIME, dan SQL_TIMESTAMP (dengan instans #define dalam file header 9, 10, dan 11) menjadi SQL_TYPE_DATE, SQL_TYPE_TIME, dan SQL_TYPE_TIMESTAMP (dengan instans #define dalam file header 91, 92, dan 93), masing-masing. Pengidentifikasi jenis C yang sesuai telah berubah dari SQL_C_DATE, SQL_C_TIME, dan SQL_C_TIMESTAMP menjadi SQL_C_TYPE_DATE, SQL_C_TYPE_TIME, dan SQL_C_TYPE_TIMESTAMP.

Ukuran kolom dan digit desimal yang dikembalikan untuk jenis data tanggalwaktu SQL di ODBC 3.x sama dengan presisi dan skala yang dikembalikan untuk mereka di ODBC 2.x. Nilai-nilai ini berbeda dari nilai dalam bidang deskriptor SQL_DESC_PRECISION dan SQL_DESC_SCALE. (Untuk informasi selengkapnya, lihat Ukuran Kolom, Digit Desimal, Panjang Oktet Transfer, dan Ukuran Tampilan.)

Perubahan ini memengaruhi SQLDescribeCol, SQLDescribeParam, dan SQLColAttribute; SQLBindCol, SQLBindParameter, dan SQLGetData; dan SQLColumns, SQLGetTypeInfo, SQLProcedureColumns, SQLStatistics, dan SQLSpecialColumns.

Tabel berikut menunjukkan bagaimana Manajer Driver ODBC 3.x melakukan pemetaan jenis data C tanggal, waktu, dan tanda waktu yang dimasukkan dalam argumen TargetType SQLBindCol dan SQLGetData atau dalam argumen ValueType SQLBindParameter.

Jenis data

kode dimasukkan
Aplikasi 2.x ke

Driver 2.x
Aplikasi 2.x ke

Driver 3.x
Aplikasi 3.x ke

Driver 2.x
Aplikasi 3.x ke

Driver 3.x
SQL_C_DATE (9) Tidak ada pemetaan SQL_C_TYPE_DATE (91) Tidak ada pemetaan[1] SQL_C_TYPE_DATE (91)
SQL_C_TYPE_DATE (91) Kesalahan (dari DM) Kesalahan (dari DM) SQL_C_DATE (9) Tidak ada pemetaan[2]
SQL_C_TIME (10) Tidak ada pemetaan SQL_C_TYPE_TIME (92) Tidak ada pemetaan[1] SQL_C_TYPE_TIME (92)
SQL_C_TYPE_TIME (92) Kesalahan (dari DM) Kesalahan (dari DM) SQL_C_TIME (10) Tidak ada pemetaan[2]
SQL_C_TIMESTAMP (11) Tidak ada pemetaan SQL_C_TYPE_TIMESTAMP (93) Tidak ada pemetaan[1] SQL_C_TYPE_TIMESTAMP (93)
SQL_C_TYPE_TIMESTAMP (93) Kesalahan (dari DM) Kesalahan (dari DM) SQL_C_TIMESTAMP (11) Tidak ada pemetaan[2]

[1] Akibatnya, aplikasi ODBC 3.x yang bekerja dengan driver ODBC 2.x dapat menggunakan kode tanggal, waktu, atau tanda waktu yang dikembalikan dalam kumpulan hasil yang dikembalikan oleh fungsi katalog.

[2] Akibatnya, aplikasi ODBC 3.x yang bekerja dengan driver ODBC 3.x dapat menggunakan kode tanggal, waktu, atau tanda waktu yang dikembalikan dalam kumpulan hasil yang dikembalikan oleh fungsi katalog.

Tabel berikut menunjukkan bagaimana Manajer Driver ODBC 3.x melakukan pemetaan jenis data SQL tanggal, waktu, dan tanda waktu yang dimasukkan dalam argumen ParameterType SQLBindParameteratau dalam argumen DataType SQLGetTypeInfo.

Jenis data

kode dimasukkan
Aplikasi 2.x ke

Driver 2.x
Aplikasi 2.x ke

Driver 3.x
Aplikasi 3.x ke

Driver 2.x
Aplikasi 3.x ke

Driver 3.x
SQL_DATE (9) Tidak ada pemetaan SQL_TYPE_DATE (91) Tidak ada pemetaan[1] SQL_TYPE_DATE (91)
SQL_TYPE_DATE (91) Kesalahan (dari DM) Kesalahan (dari DM) SQL_DATE (9) Tidak ada pemetaan[2]
SQL_TIME (10) Tidak ada pemetaan SQL_TYPE_TIME (92) Tidak ada pemetaan[1] SQL_TYPE_TIME (92)
SQL_TYPE_TIME (92) Kesalahan (dari DM) Kesalahan (dari DM) SQL_TIME (10) Tidak ada pemetaan[2]
SQL_TIMESTAMP (11) Tidak ada pemetaan SQL_TYPE_TIMESTAMP (93) Tidak ada pemetaan[1] SQL_TYPE_TIMESTAMP (93)
SQL_TYPE_TIMESTAMP (93) Kesalahan (dari DM) Kesalahan (dari DM) SQL_TIMESTAMP (11) Tidak ada pemetaan[2]

[1] Akibatnya, aplikasi ODBC 3.x yang bekerja dengan driver ODBC 2.x dapat menggunakan kode tanggal, waktu, atau tanda waktu yang dikembalikan dalam kumpulan hasil yang dikembalikan oleh fungsi katalog.

[2] Akibatnya, aplikasi ODBC 3.x yang bekerja dengan driver ODBC 3.x dapat menggunakan kode tanggal, waktu, atau tanda waktu yang dikembalikan dalam kumpulan hasil yang dikembalikan oleh fungsi katalog.