Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Kesuaian
Versi Diperkenalkan: Kepatuhan Standar ODBC 3.0: ISO 92
Ringkasan
Fungsi SQLSetDescRec mengatur beberapa bidang deskriptor yang memengaruhi jenis data dan buffer yang terikat ke data kolom atau parameter.
Sintaksis
SQLRETURN SQLSetDescRec(
SQLHDESC DescriptorHandle,
SQLSMALLINT RecNumber,
SQLSMALLINT Type,
SQLSMALLINT SubType,
SQLLEN Length,
SQLSMALLINT Precision,
SQLSMALLINT Scale,
SQLPOINTER DataPtr,
SQLLEN * StringLengthPtr,
SQLLEN * IndicatorPtr);
Argumen
[Input] Handel deskriptor. Ini tidak boleh menjadi handel IRD.
[Input] Menunjukkan catatan deskriptor yang berisi bidang yang akan diatur. Rekaman deskriptor diberi nomor dari 0, dengan nomor rekaman 0 menjadi catatan bookmark. Argumen ini harus sama dengan atau lebih besar dari 0. Jika RecNumber lebih besar dari nilai SQL_DESC_COUNT, SQL_DESC_COUNTis berubah menjadi nilai RecNumber.
Tipe
[Input] Nilai untuk mengatur bidang SQL_DESC_TYPE untuk catatan deskriptor.
SubJenis
[Input] Untuk rekaman yang jenisnya SQL_DATETIME atau SQL_INTERVAL, ini adalah nilai untuk mengatur bidang SQL_DESC_DATETIME_INTERVAL_CODE.
Panjang
[Input] Nilai untuk mengatur bidang SQL_DESC_OCTET_LENGTH untuk catatan deskriptor.
Presisi
[Input] Nilai untuk mengatur bidang SQL_DESC_PRECISION untuk catatan deskriptor.
Skala
[Input] Nilai untuk mengatur bidang SQL_DESC_SCALE untuk catatan deskriptor.
DataPtr
[Input atau Output Yang Ditangguhkan] Nilai untuk mengatur bidang SQL_DESC_DATA_PTR untuk catatan deskriptor.
DataPtr dapat diatur ke penunjuk null.
Argumen DataPtr dapat diatur ke penunjuk null untuk mengatur bidang SQL_DESC_DATA_PTR ke penunjuk null. Jika handel dalam argumen
[Input atau Output Yang Ditangguhkan] Nilai untuk mengatur bidang SQL_DESC_OCTET_LENGTH_PTR untuk catatan deskriptor.
StringLengthPtr dapat diatur ke penunjuk null untuk mengatur bidang SQL_DESC_OCTET_LENGTH_PTR ke penunjuk null.
[Input atau Output Yang Ditangguhkan] Nilai untuk mengatur bidang SQL_DESC_INDICATOR_PTR untuk catatan deskriptor.
IndicatorPtr dapat diatur ke penunjuk null untuk mengatur bidang SQL_DESC_INDICATOR_PTR ke penunjuk null.
Kembali
SQL_SUCCESS, SQL_SUCCESS_WITH_INFO, SQL_ERROR, atau SQL_INVALID_HANDLE.
Diagnostik
Saat SQLSetDescRec
| SQLSTATE | Kesalahan | Deskripsi |
|---|---|---|
| 01000 | Peringatan umum | Pesan informasi khusus driver. (Fungsi mengembalikan SQL_SUCCESS_WITH_INFO.) |
| 07009 | Indeks deskriptor tidak valid | Argumen Argumen Argumen RecNumber lebih besar dari jumlah maksimum kolom atau parameter yang dapat didukung sumber data, dan argumen DescriptorHandle adalah APD, IPD, atau ARD. Argumen |
| 08S01 | Kegagalan tautan komunikasi | Tautan komunikasi antara driver dan sumber data tempat driver tersambung gagal sebelum fungsi selesai diproses. |
| HY000 | Kesalahan umum | Terjadi kesalahan yang tidak ada SQLSTATE tertentu dan tidak ada SQLSTATE khusus implementasi yang ditentukan. Pesan kesalahan yang dikembalikan oleh |
| HY001 | Kesalahan alokasi memori | Driver tidak dapat mengalokasikan memori yang diperlukan untuk mendukung eksekusi atau penyelesaian fungsi. |
| HY010 | Kesalahan urutan fungsi | (DM) (DM) (DM) Fungsi eksekusi asinkron dipanggil untuk handel koneksi yang terkait dengan DescriptorHandle. Fungsi asinkron ini masih dijalankan ketika fungsi (DM) |
| HY013 | Kesalahan manajemen memori | Panggilan fungsi tidak dapat diproses karena objek memori yang mendasar tidak dapat diakses, mungkin karena kondisi memori yang rendah. |
| HY016 | Tidak dapat mengubah deskriptor baris implementasi | Argumen |
| HY021 | Informasi deskriptor yang tidak konsisten | Bidang Tipe Informasi deskriptor yang diperiksa selama pemeriksaan konsistensi tidak konsisten. (Lihat "Pemeriksaan Konsistensi," nanti di bagian ini.) |
| HY090 | String atau panjang buffer tidak valid | (DM) Driver adalah driver ODBC |
| HY117 | Koneksi ditangguhkan karena status transaksi yang tidak diketahui. Hanya fungsi putuskan sambungan dan baca-saja yang diizinkan. | (DM) Untuk informasi selengkapnya tentang status ditangguhkan, lihat Fungsi SQLEndTran. |
| HYT01 | Batas waktu koneksi kedaluwarsa | Periode batas waktu koneksi kedaluwarsa sebelum sumber data merespons permintaan. Periode batas waktu koneksi diatur melalui SQLSetConnectAttr, SQL_ATTR_CONNECTION_TIMEOUT. |
| IM001 | Driver tidak mendukung fungsi ini | (DM) Driver yang terkait dengan |
Komentar
Aplikasi dapat memanggil SQLSetDescRec untuk mengatur bidang berikut untuk satu kolom atau parameter:
SQL_DESC_TYPE
SQL_DESC_DATETIME_INTERVAL_CODE (untuk rekaman yang jenisnya SQL_DATETIME atau SQL_INTERVAL)
SQL_DESC_OCTET_LENGTH
SQL_DESC_PRECISION
SQL_DESC_SCALE
SQL_DESC_DATA_PTR
SQL_DESC_OCTET_LENGTH_PTR
SQL_DESC_INDICATOR_PTR
Nota
Jika panggilan ke
Saat mengikat kolom atau parameter, SQLSetDescRec memungkinkan Anda mengubah beberapa bidang yang memengaruhi pengikatan tanpa memanggil SQLBindCol atau SQLBindParameter atau melakukan beberapa panggilan ke SQLSetDescField. SQLSetDescRec dapat mengatur bidang pada deskriptor yang saat ini tidak terkait dengan pernyataan. Perhatikan bahwa SQLBindParameter mengatur lebih banyak bidang daripada SQLSetDescRec, dapat mengatur bidang pada APD dan IPD dalam satu panggilan, dan tidak memerlukan handel deskriptor.
Nota
Atribut pernyataan SQL_ATTR_USE_BOOKMARKS harus selalu diatur sebelum memanggil SQLSetDescRec dengan argumen RecNumber 0 untuk mengatur bidang bookmark. Meskipun ini tidak wajib, sangat disarankan.
Pemeriksaan Konsistensi
Pemeriksaan konsistensi dilakukan oleh driver secara otomatis setiap kali aplikasi menetapkan bidang SQL_DESC_DATA_PTR APD, ARD, atau IPD. Jika salah satu bidang tidak konsisten dengan bidang lain, SQLSetDescRec akan mengembalikan SQLSTATE HY021 (Informasi deskriptor yang tidak konsisten).
Setiap kali aplikasi mengatur bidang SQL_DESC_DATA_PTR APD, ARD, atau IPD, driver memeriksa bahwa nilai bidang SQL_DESC_TYPE dan nilai yang berlaku untuk bidang SQL_DESC_TYPE tersebut valid dan konsisten. Pemeriksaan ini selalu dilakukan ketika SQLBindParameter atau SQLBindCol dipanggil atau ketika SQLSetDescRec dipanggil untuk APD, ARD, atau IPD. Pemeriksaan konsistensi ini mencakup pemeriksaan berikut pada bidang deskriptor:
Bidang SQL_DESC_TYPE harus merupakan salah satu jenis ODBC C atau SQL yang valid atau jenis SQL khusus driver. Bidang SQL_DESC_CONCISE_TYPE harus merupakan salah satu jenis ODBC C atau SQL yang valid atau jenis C atau SQL khusus driver, termasuk jenis tanggalwaktu dan interval yang ringkas.
Jika bidang rekaman SQL_DESC_TYPE SQL_DATETIME atau SQL_INTERVAL, bidang SQL_DESC_DATETIME_INTERVAL_CODE harus merupakan salah satu kode tanggalwaktu atau interval yang valid. (Lihat deskripsi bidang SQL_DESC_DATETIME_INTERVAL_CODE di SQLSetDescField.)
Jika bidang SQL_DESC_TYPE menunjukkan jenis numerik, bidang SQL_DESC_PRECISION dan SQL_DESC_SCALE diverifikasi agar valid.
Jika bidang SQL_DESC_CONCISE_TYPE adalah jenis data waktu atau tanda waktu, jenis interval dengan komponen detik, atau salah satu jenis data interval dengan komponen waktu, bidang SQL_DESC_PRECISION diverifikasi menjadi presisi detik yang valid.
Jika SQL_DESC_CONCISE_TYPE adalah jenis data interval, bidang SQL_DESC_DATETIME_INTERVAL_PRECISION diverifikasi menjadi nilai presisi depan interval yang valid.
Bidang SQL_DESC_DATA_PTR IPD biasanya tidak diatur; namun, aplikasi dapat melakukannya untuk memaksa pemeriksaan konsistensi bidang IPD. Pemeriksaan konsistensi tidak dapat dilakukan pada IRD. Nilai yang diatur ke bidang SQL_DESC_DATA_PTR IPD tidak benar-benar disimpan dan tidak dapat diambil dengan panggilan ke SQLGetDescField atau SQLGetDescRec; pengaturan dibuat hanya untuk memaksa pemeriksaan konsistensi.
Fungsi Terkait
| Untuk informasi tentang | Lihat |
|---|---|
| Mengikat kolom | Fungsi SQLBindCol |
| Mengikat parameter | Fungsi SQLBindParameter |
| Mendapatkan bidang deskriptor tunggal | Fungsi SQLGetDescField |
| Mendapatkan beberapa bidang deskriptor | Fungsi SQLGetDescRec |
| Mengatur bidang deskriptor tunggal | Fungsi SQLSetDescField |
Lihat Juga
Referensi API ODBC