Metadata - Parameter dan Hasil
Berlaku untuk:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse Analytics AnalyticsPlatform System (PDW)
Topik ini menjelaskan apa yang dikembalikan dalam deskriptor parameter implementasi (IPD) dan bidang deskriptor baris implementasi (IRD) untuk jenis data tanggal dan waktu.
Informasi yang Dikembalikan di Bidang IPD
Informasi berikut dikembalikan di bidang IPD:
Jenis parameter | date | waktu | smalldatetime | datetime | tanggalwaktu2 | tanggalwaktulewat |
---|---|---|---|---|---|---|
SQL_DESC_CASE_SENSITIVE | SQL_FALSE | SQL_FALSE | SQL_FALSE | SQL_FALSE | SQL_FALSE | SQL_FALSE |
SQL_DESC_CONCISE_TYPE | SQL_TYPE_DATE | SQL_SS_TIME2 | SQL_TYPE_TIMESTAMP | SQL_TYPE_TIMESTAMP | SQL_TYPE_TIMESTAMP | SQL_SS_TIMESTAMPOFFSET |
SQL_DESC_DATETIME_INTERVAL_CODE | SQL_CODE_DATE | 0 | SQL_CODE_TIMESTAMP | SQL_CODE_TIMESTAMP | SQL_CODE_TIMESTAMP | 0 |
SQL_DESC_DATETIME_INTERVAL_PRECISION | 10 | 8,10..16 | 16 | 23 | 19, 21..27 | 26, 28..34 |
SQL_DESC_FIXED_PREC_SCALE | SQL_FALSE | SQL_FALSE | SQL_FALSE | SQL_FALSE | SQL_FALSE | SQL_FALSE |
SQL_DESC_LENGTH | 10 | 8,10..16 | 16 | 23 | 19, 21..27 | 26, 28..34 |
SQL_DESC_OCTET_LENGTH | 6 | 12 | 4 | 8 | 16 | 20 |
SQL_DESC_PRECISION | 0 | 0..7 | 0 | 3 | 0..7 | 0..7 |
SQL_DESC_SCALE | 0 | 0..7 | 0 | 3 | 0..7 | 0..7 |
SQL_DESC_TYPE | SQL_TYPE_DATE | SQL_SS_TYPE_TIME2 | SQL_DATETIME | SQL_DATETIME | SQL_DATETIME | SQL_SS_TIMESTAMPOFFSET |
SQL_DESC_TYPE_NAME | date | time | smalldatetime di IRD, datetime2 di IPD | tanggalwaktu dalam IRD, datetime2 di IPD | datetime2 | tanggalwaktulewat |
SQL_CA_SS_VARIANT_TYPE | SQL_C_TYPE_DATE | SQL_C_TYPE_BINARY | SQL_C_TYPE_TIMESTAMP | SQL_C_TYPE_TIMESTAMP | SQL_C_TYPE_TIMESTAMP | SQL_C_TYPE_BINARY |
SQL_CA_SS_VARIANT_SQL_TYPE | SQL_TYPE_DATE | SQL_SS_TIME2 | SQL_TYPE_TIMESTAMP | SQL_TYPE_TIMESTAMP | SQL_TYPE_TIMESTAMP | SQL_SS_TIMESTAMPOFFSET |
SQL_CA_SS_SERVER_TYPE | T/A | T/A | SQL_SS_TYPE_SMALLDATETIME | SQL_SS_TYPE_DATETIME | SQL_SS_TYPE_DEFAULT | T/A |
Terkadang ada penghentian dalam rentang nilai. Misalnya, 9 hilang di 8,10..16. Hal ini disebabkan oleh penambahan titik desimal ketika presisi pecahan lebih besar dari nol.
datetime2 dikembalikan sebagai nama tipe untuk smalldatetime dan datetime karena driver menggunakan ini sebagai jenis umum untuk mengirimkan semua nilai SQL_TYPE_TIMESTAMP ke server.
SQL_CA_SS_VARIANT_SQL_TYPE adalah bidang deskriptor baru. Bidang ini ditambahkan ke IRD dan IPD untuk memungkinkan aplikasi menentukan jenis nilai yang terkait dengan kolom dan parameter sqlvariant (SQL_SSVARIANT)
SQL_CA_SS_SERVER_TYPE adalah bidang khusus IPD baru untuk memungkinkan aplikasi mengontrol bagaimana nilai untuk parameter terikat sebagai SQL_TYPE_TYPETIMESTAMP (atau sebagai SQL_SS_VARIANT dengan jenis C SQL_C_TYPE_TIMESTAMP) dikirim ke server. Jika SQL_DESC_CONCISE_TYPE SQL_TYPE_TIMESTAMP (atau SQL_SS_VARIANT dan jenis C SQL_C_TYPE_TIMESTAMP) saat SQLExecute atau SQLExecDirect dipanggil, nilai SQL_CA_SS_SERVER_TYPE menentukan jenis aliran data tabular (TDS) dari nilai parameter, sebagai berikut:
Nilai SQL_CA_SS_SERVER_TYPE | Nilai yang valid untuk SQL_DESC_PRECISION | Nilai yang valid untuk SQL_DESC_LENGTH | Jenis TDS |
---|---|---|---|
SQL_SS_TYPE_DEFAULT | 0..7 | 19, 21..27 | datetime2 |
SQL_SS_TYPE_SMALLDATETIME | 0 | 19 | smalldatetime |
SQL_SS_TYPE_DATETIME | 3 | 23 | datetime |
Pengaturan default SQL_CA_SS_SERVER_TYPE adalah SQL_SS_TYPE_DEFAULT. Pengaturan SQL_DESC_PRECISION dan SQL_DESC_LENGTH divalidasi dengan pengaturan SQL_CA_SS_SERVER_TYPE seperti yang dijelaskan dalam tabel di atas. Jika validasi ini gagal, SQL_ERROR dikembalikan dan rekaman diagnostik dicatat dengan SQLState 07006 dan pesan "Pelanggaran atribut jenis data terbatas". Kesalahan ini juga dikembalikan jika SQL_CA_SS_SERVER_TYPE diatur ke nilai selain SQL_SS_TYPE DEFAULT dan DESC_CONCISE_TYPE tidak SQL_TYPE_TIMESTAMP. Validasi ini dilakukan ketika validasi konsistensi deskriptor terjadi, misalnya:
Saat SQL_DESC_DATA_PTR diubah.
Pada waktu persiapan atau eksekusi (saat SQLExecute, SQLExecDirect, SQLSetPos, atau SQLBulkOperations dipanggil).
Ketika aplikasi memaksa persiapan yang tidak ditangguhkan dengan memanggil SQLPrepare dengan persiapan yang ditangguhkan dinonaktifkan, atau dengan memanggil SQLNumResultCols, SQLDescribeCol, atau SQLDescribeParam untuk pernyataan yang disiapkan tetapi tidak dijalankan.
Saat SQL_CA_SS_SERVER_TYPE diatur oleh panggilan ke SQLSetDescField, nilainya harus SQL_SS_TYPE_DEFAULT, SQL_SS_TYPE_SMALLDATETIME, atau SQL_SS_TYPE_DATETIME. Jika tidak demikian, SQL_ERROR dikembalikan dan rekaman diagnostik dicatat dengan SQLState HY092 dan pesan "Pengidentifikasi atribut/opsi tidak valid".
Atribut SQL_CA_SS_SERVER_TYPE dapat digunakan oleh aplikasi yang bergantung pada fungsionalitas yang didukung oleh datetime dan smalldatetime, tetapi bukan datetime2. Misalnya, datetime2 memerlukan penggunaan fungsi dateadd dan datediif , sedangkan datetime dan smalldatetime juga memungkinkan operator aritmatika. Sebagian besar aplikasi tidak perlu menggunakan atribut ini dan penggunaannya harus dihindari.
Informasi yang Dikembalikan di Bidang IRD
Informasi berikut dikembalikan di bidang IRD:
Jenis Kolom | date | waktu | smalldatetime | datetime | tanggalwaktu2 | tanggalwaktulewat |
---|---|---|---|---|---|---|
SQL_DESC_AUTO_UNIQUE_VALUE | SQL_FALSE | SQL_FALSE | SQL_FALSE | SQL_FALSE | SQL_FALSE | SQL_FALSE |
SQL_DESC_CASE_SENSITIVE | SQL_FALSE | SQL_FALSE | SQL_FALSE | SQL_FALSE | SQL_FALSE | SQL_FALSE |
SQL_DESC_CONCISE_TYPE | SQL_TYPE_DATE | SQL_SS_TIME2 | SQL_TYPE_TIMESTAMP | SQL_TYPE_TIMESTAMP | SQL_TYPE_TIMESTAMP | SQL_SS_TIMESTAMPOFFSET |
SQL_DESC_DATETIME_INTERVAL_CODE | SQL_CODE_DATE | 0 | SQL_CODE_TIMESTAMP | SQL_CODE_TIMESTAMP | SQL_CODE_TIMESTAMP | 0 |
SQL_DESC_DATETIME_INTERVAL_PRECISION | 10 | 8,10..16 | 16 | 23 | 19, 21..27 | 26, 28..34 |
SQL_DESC_DISPLAY_SIZE | 10 | 8,10..16 | 16 | 23 | 19, 21..27 | 26, 28..34 |
SQL_DESC_FIXED_PREC_SCALE | SQL_FALSE | SQL_FALSE | SQL_FALSE | SQL_FALSE | SQL_FALSE | SQL_FALSE |
SQL_DESC_LENGTH | 10 | 8,10..16 | 16 | 2 | 19, 21..27 | 26, 28..34 |
SQL_DESC_LITERAL_PREFIX | ' | ' | ' | ' | ' | ' |
SQL_DESC_LITERAL_SUFFIX | ' | ' | ' | ' | ' | ' |
SQL_DESC_LOCAL_TYPE_NAME | date | time | smalldatetime | datetime | datetime2 | tanggalwaktulewat |
SQL_DESC_OCTET_LENGTH | 6 | 12 | 4 | 8 | 16 | 20 |
SQL_DESC_PRECISION | 0 | 0..7 | 0 | 3 | 0..7 | 0..7 |
SQL_DESC_SCALE | 0 | 0..7 | 0 | 3 | 0..7 | 0..7 |
SQL_DESC_SEARCHABLE | SQL_PRED_SEARCHABLE | SQL_PRED_SEARCHABLE | SQL_PRED_SEARCHABLE | SQL_PRED_SEARCHABLE | SQL_PRED_SEARCHABLE | SQL_PRED_SEARCHABLE |
SQL_DESC_TYPE | SQL_DATETIME | SQL_SS_TIME2 | SQL_DATETIME | SQL_DATETIME | SQL_DATETIME | SQL_SS_TIMESTAMPOFFSET |
SQL_DESC_TYPE_NAME | date | time | smalldatetime | datetime | datetime2 | tanggalwaktulewat |
SQL_DESC_UNSIGNED | SQL_TRUE | SQL_TRUE | SQL_TRUE | SQL_TRUE | SQL_TRUE | SQL_TRUE |
Lihat Juga
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk