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.
Kesesuaian
Versi Diperkenalkan: Kepatuhan Standar ODBC 3.0: ISO 92
Summary
SQLGetDescRec mengembalikan pengaturan atau nilai saat ini dari beberapa bidang dalam catatan deskriptor. Kolom yang diterima menggambarkan nama, tipe data, dan penyimpanan data kolom atau parameter.
Syntax
SQLRETURN SQLGetDescRec(
SQLHDESC DescriptorHandle,
SQLSMALLINT RecNumber,
SQLCHAR * Name,
SQLSMALLINT BufferLength,
SQLSMALLINT * StringLengthPtr,
SQLSMALLINT * TypePtr,
SQLSMALLINT * SubTypePtr,
SQLLEN * LengthPtr,
SQLSMALLINT * PrecisionPtr,
SQLSMALLINT * ScalePtr,
SQLSMALLINT * NullablePtr);
Arguments
DescriptorHandle
[Masukan] Pegangan deskriptor.
RecNumber
[Input] Menunjukkan catatan deskriptor dari mana aplikasi mencari informasi. Catatan deskriptor diberi nomor dari 1, dengan catatan nomor 0 adalah catatan penanda buku.
Argumen RecNumber harus kurang dari atau sama dengan nilai SQL_DESC_COUNT. Jika RecNumber kurang dari atau sama dengan SQL_DESC_COUNT tetapi baris tersebut tidak berisi data untuk kolom atau parameter, pemanggilan ke SQLGetDescRec akan mengembalikan nilai default dari bidang-bidang tersebut. (Untuk informasi lebih lanjut, lihat "Inisialisasi Bidang Deskriptor" di SQLSetDescField.)
Name
[Output] Penunjuk ke buffer untuk mengembalikan bidang SQL_DESC_NAME untuk catatan deskriptor.
Jika Name adalah NULL, StringLengthPtr tetap akan mengembalikan total jumlah karakter (tidak termasuk karakter null-termination untuk data karakter) yang tersedia untuk dikembalikan di buffer yang diarahkan oleh Name.
BufferLength
[Input] Panjang buffer *Name , dalam karakter.
StringLengthPtr
[Output] Penunjuk ke buffer untuk mengembalikan jumlah karakter data yang tersedia untuk dikembalikan di buffer *Name , kecuali karakter null-terminasi. Jika jumlah karakter lebih besar atau sama dengan BufferLength, data dalam *Name dipotong menjadi BufferLength dikurangi panjang karakter null-terminasi, dan null-terminated oleh driver.
TypePtr
[Output] Pointer ke buffer untuk mengembalikan nilai field SQL_DESC_TYPE untuk catatan deskriptor.
SubTipePtr
[Output] Untuk catatan yang tipenyanya SQL_DATETIME atau SQL_INTERVAL, ini adalah penunjuk ke buffer untuk mengembalikan nilai field SQL_DESC_DATETIME_INTERVAL_CODE.
LengthPtr
[Output] Pointer ke buffer untuk mengembalikan nilai field SQL_DESC_OCTET_LENGTH untuk catatan deskriptor.
PrecisionPtr
[Output] Penunjuk ke buffer untuk mengembalikan nilai field SQL_DESC_PRECISION untuk catatan deskriptor.
ScalePtr
[Output] Pointer ke buffer untuk mengembalikan nilai field SQL_DESC_SCALE untuk catatan deskriptor.
NullablePtr
[Output] Pointer ke buffer untuk mengembalikan nilai field SQL_DESC_NULLABLE untuk catatan deskriptor.
Returns
SQL_SUCCESS, SQL_SUCCESS_WITH_INFO, SQL_ERROR, SQL_NO_DATA, atau SQL_INVALID_HANDLE.
SQL_NO_DATA dikembalikan jika RecNumber lebih besar dari jumlah catatan deskriptor saat ini.
SQL_NO_DATA dikembalikan jika DescriptorHandle adalah handle IRD dan pernyataan tersebut dalam status prepared atau execute tetapi tidak ada kursor terbuka yang terkait dengannya.
Diagnostics
Ketika SQLGetDescRec mengembalikan SQL_ERROR atau SQL_SUCCESS_WITH_INFO, nilai SQLSTATE terkait dapat diperoleh dengan memanggil SQLGetDiagRec dengan HandleType SQL_HANDLE_DESC dan HandleDescriptorHandle. Tabel berikut mencantumkan nilai SQLSTATE yang biasanya dikembalikan oleh SQLGetDescRec dan menjelaskan masing-masing dalam konteks fungsi ini; notasi "(DM)" mendahului deskripsi SQLSTATE yang dikembalikan oleh Driver Manager. Kode pengembalian yang terkait dengan setiap nilai SQLSTATE SQL_ERROR, kecuali disebutkan sebaliknya.
| SQLSTATE | Kesalahan | Deskripsi |
|---|---|---|
| 01000 | Peringatan umum | Pesan informasi khusus driver. (Fungsi mengembalikan SQL_SUCCESS_WITH_INFO.) |
| 01004 | Data string, terpotong kanan | Buffer *Name tidak cukup besar untuk mengembalikan seluruh bidang deskriptor. Oleh karena itu, bidang tersebut dipangkas. Panjang bidang deskriptor tanpa terpotong dikembalikan dalam *StringLengthPtr. (Fungsi mengembalikan SQL_SUCCESS_WITH_INFO.) |
| 07009 | Indeks deskriptor tidak valid |
Argumen FieldIdentifier adalah field record, argumen RecNumber diatur ke 0, dan argumen DescriptorHandle adalah handle IPD. (DM) Argumen RecNumber diatur ke 0, dan atribut pernyataan SQL_ATTR_USE_BOOKMARKS diatur ke SQL_UB_OFF, dan argumen DescriptorHandle adalah handle IRD. Argumen RecNumber kurang dari 0. |
| 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 SQLGetDiagRec di buffer *MessageText menjelaskan kesalahan dan penyebabnya. |
| HY001 | Kesalahan alokasi memori | Driver tidak dapat mengalokasikan memori yang diperlukan untuk mendukung eksekusi atau penyelesaian fungsi. |
| HY007 | Pernyataan terkait tidak disiapkan | DescriptorHandle terkait dengan IRD, dan handle pernyataan yang terkait tidak dalam status siap atau dieksekusi. |
| HY010 | Kesalahan urutan fungsi | (DM) DescriptorHandle dikaitkan dengan StatementHandle yang fungsi eksekusi asinkron (bukan yang ini) dipanggil dan masih berjalan saat fungsi ini dipanggil. (DM) DescriptorHandle dikaitkan dengan StatementHandle yang dipanggil dan dikembalikan SQL_NEED_DATA SQLExecute, SQLExecDirect, SQLBulkOperations, atau SQLSetPos. Fungsi ini dipanggil sebelum data dikirim untuk semua parameter atau kolom data-at-execution. (DM) Fungsi yang dijalankan secara asinkron dipanggil untuk pegangan koneksi yang terkait dengan DescriptorHandle. Fungsi asinkron ini masih berjalan saat SQLGetDescRec dipanggil. |
| HY013 | Kesalahan manajemen memori | Panggilan fungsi tidak dapat diproses karena objek memori yang mendasar tidak dapat diakses, mungkin karena kondisi memori yang rendah. |
| 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 | Waktu tunggu koneksi habis | 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 DescriptorHandle tidak mendukung fungsi tersebut. |
Komentar
Sebuah aplikasi dapat memanggil SQLGetDescRec untuk mengambil nilai dari field deskriptor berikut untuk satu kolom atau parameter:
SQL_DESC_NAME
SQL_DESC_TYPE
SQL_DESC_DATETIME_INTERVAL_CODE (untuk catatan yang tipenya SQL_DATETIME atau SQL_INTERVAL)
SQL_DESC_OCTET_LENGTH
SQL_DESC_PRECISION
SQL_DESC_SCALE
SQL_DESC_NULLABLE
SQLGetDescRec tidak mengambil nilai untuk field header.
Sebuah aplikasi dapat mencegah pengembalian pengaturan bidang dengan mengatur argumen yang sesuai dengan bidang tersebut menjadi null pointer.
Ketika sebuah aplikasi memanggil SQLGetDescRec untuk mengambil nilai field yang tidak terdefinisi untuk tipe deskriptor tertentu, fungsi mengembalikan SQL_SUCCESS tetapi nilai yang dikembalikan untuk field tersebut tidak terdefinisi. Misalnya, memanggil SQLGetDescRec untuk bidang SQL_DESC_NAME atau SQL_DESC_NULLABLE dari APD atau ARD akan mengembalikan nilai SQL_SUCCESS tetapi tidak terdefinisi untuk bidang tersebut.
Ketika sebuah aplikasi memanggil SQLGetDescRec untuk mengambil nilai field yang didefinisikan untuk tipe deskriptor tertentu tetapi tidak memiliki nilai default dan belum diatur, fungsi tersebut mengembalikan SQL_SUCCESS tetapi nilai yang dikembalikan untuk field tersebut tidak terdefinisi. Untuk informasi lebih lanjut, lihat "Inisialisasi Bidang Deskriptor" di SQLSetDescField.
Nilai field juga dapat diambil secara individual dengan memanggil SQLGetDescField. Untuk deskripsi bidang dalam header atau catatan deskriptor, lihat SQLSetDescField. Untuk informasi selengkapnya tentang deskriptor, lihat Deskriptor.
Fungsi Terkait
| Untuk informasi mengenai | Lihat |
|---|---|
| Mengikat kolom | Fungsi SQLBindCol |
| Mengikat parameter | Fungsi SQLBindParameter |
| Mendapatkan bidang deskriptor | Fungsi SQLGetDescField |
| Mengatur beberapa bidang deskriptor | Fungsi SQLSetDescRec |