Fungsi SQLNumResultCols
Kesesuaian
Versi diperkenalkan: Kepatuhan Standar ODBC 1.0: ISO 92
Ringkasan
SQLNumResultCols mengembalikan jumlah kolom dalam tataan hasil.
Sintaks
SQLRETURN SQLNumResultCols(
SQLHSTMT StatementHandle,
SQLSMALLINT * ColumnCountPtr);
Argumen
StatementHandle
[Input] Handel pernyataan.
ColumnCountPtr
[Output] Penunjuk ke buffer untuk mengembalikan jumlah kolom dalam tataan hasil. Jumlah ini tidak menyertakan kolom marka buku terikat.
Kembali
SQL_SUCCESS, SQL_SUCCESS_WITH_INFO, SQL_STILL_EXECUTING, SQL_ERROR, atau SQL_INVALID_HANDLE.
Diagnostik
Ketika SQLNumResultCols mengembalikan SQL_ERROR atau SQL_SUCCESS_WITH_INFO, nilai SQLSTATE terkait dapat diperoleh dengan memanggil SQLGetDiagRec dengan HandleType SQL_HANDLE_STMT dan Handle of StatementHandle. Tabel berikut mencantumkan nilai SQLSTATE yang umumnya dikembalikan oleh SQLNumResultCols dan menjelaskan masing-masing dalam konteks fungsi ini; notasi "(DM)" mendahului deskripsi SQLSTATEs 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.) |
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. |
HY008 | Operasi dibatalkan | Pemrosesan asinkron diaktifkan untuk StatementHandle. Fungsi ini dipanggil, dan sebelum selesai dieksekusi, SQLCancel atau SQLCancelHandle dipanggil pada StatementHandle; fungsi kemudian dipanggil lagi pada StatementHandle. Fungsi ini dipanggil, dan sebelum selesai dieksekusi, SQLCancel atau SQLCancelHandle dipanggil pada StatementHandle dari utas yang berbeda dalam aplikasi multithread. |
HY010 | Kesalahan urutan fungsi | (DM) Fungsi eksekusi asinkron dipanggil untuk handel koneksi yang terkait dengan StatementHandle. Fungsi asinkron ini masih dijalankan ketika fungsi SQLNumResultsCols dipanggil. (DM) SQLExecute, SQLExecDirect, atau SQLMoreResults dipanggil untuk StatementHandle dan dikembalikan SQL_PARAM_DATA_AVAILABLE. Fungsi ini dipanggil sebelum data diambil untuk semua parameter yang dialirkan. (DM) Fungsi ini dipanggil sebelum memanggil SQLPrepare atau SQLExecDirect untuk StatementHandle. (DM) Fungsi eksekusi asinkron (bukan yang ini) dipanggil untuk StatementHandle dan masih dijalankan ketika fungsi ini dipanggil. (DM) SQLExecute, SQLExecDirect, SQLBulkOperations, atau SQLSetPos dipanggil untuk StatementHandle dan dikembalikan SQL_NEED_DATA. Fungsi ini dipanggil sebelum data dikirim untuk semua parameter atau kolom data-at-execution. Lihat Fungsi SQLPrepare untuk detail tentang kapan handel pernyataan dapat dibebaskan. |
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 | Kesalahan waktu habis 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 StatementHandle tidak mendukung fungsi. |
IM017 | Polling dinonaktifkan dalam mode pemberitahuan asinkron | Setiap kali model pemberitahuan digunakan, polling dinonaktifkan. |
IM018 | SQLCompleteAsync belum dipanggil untuk menyelesaikan operasi asinkron sebelumnya pada handel ini. | Jika panggilan fungsi sebelumnya pada handel mengembalikan SQL_STILL_EXECUTING dan jika mode pemberitahuan diaktifkan, SQLCompleteAsync harus dipanggil pada handel untuk melakukan pasca-pemrosesan dan menyelesaikan operasi. |
SQLNumResultCols dapat mengembalikan SQLSTATE apa pun yang dapat dikembalikan oleh SQLPrepare atau SQLExecute saat dipanggil setelah SQLPrepare dan sebelum SQLExecute, tergantung pada kapan sumber data mengevaluasi pernyataan SQL yang terkait dengan pernyataan.
Komentar
SQLNumResultCols dapat dipanggil dengan sukses hanya ketika pernyataan dalam status siap, dijalankan, atau diposisikan.
Jika pernyataan yang terkait dengan StatementHandle tidak mengembalikan kolom, SQLNumResultCols menetapkan *ColumnCountPtr ke 0.
Jumlah kolom yang dikembalikan oleh SQLNumResultCols adalah nilai yang sama dengan bidang SQL_DESC_COUNT IRD.
Untuk informasi selengkapnya, lihat Apakah Kumpulan Hasil Dibuat? dan Bagaimana Metadata Digunakan?.
Fungsi Terkait
Untuk informasi tentang | Lihat |
---|---|
Mengikat buffer ke kolom dalam tataan hasil | Fungsi SQLBindCol |
Membatalkan pemrosesan pernyataan | Fungsi SQLCancel |
Mengembalikan informasi tentang kolom dalam tataan hasil | Fungsi SQLColAttribute |
Mengembalikan informasi tentang kolom dalam tataan hasil | Fungsi SQLDescribeCol |
Menjalankan pernyataan SQL | Fungsi SQLExecDirect |
Menjalankan pernyataan SQL yang disiapkan | Fungsi SQLExecute |
Mengambil blok data atau menggulir melalui kumpulan hasil | Fungsi SQLFetchScroll |
Mengambil satu baris atau blok data dalam arah terusan saja | Fungsi SQLFetch |
Mengambil bagian atau semua kolom data | Fungsi SQLGetData |
Menyiapkan pernyataan SQL untuk eksekusi | Fungsi SQLPrepare |
Mengatur opsi gulir kursor | Fungsi SQLSetStmtAttr |