Fungsi SQLRowCount
Kesesuaian
Versi diperkenalkan: Kepatuhan Standar ODBC 1.0: ISO 92
Ringkasan
SQLRowCount mengembalikan jumlah baris yang terpengaruh oleh pernyataan UPDATE, INSERT, atau DELETE ; operasi SQL_ADD, SQL_UPDATE_BY_BOOKMARK, atau SQL_DELETE_BY_BOOKMARK di SQLBulkOperations; atau operasi SQL_UPDATE atau SQL_DELETE di SQLSetPos.
Sintaks
SQLRETURN SQLRowCount(
SQLHSTMT StatementHandle,
SQLLEN * RowCountPtr);
Argumen
StatementHandle
[Input] Handel pernyataan.
RowCountPtr
[Output] Arahkan ke buffer untuk mengembalikan jumlah baris. Untuk pernyataan UPDATE, INSERT, dan DELETE , untuk operasi SQL_ADD, SQL_UPDATE_BY_BOOKMARK, dan SQL_DELETE_BY_BOOKMARK di SQLBulkOperations, dan untuk operasi SQL_UPDATE atau SQL_DELETE di SQLSetPos, nilai yang dikembalikan dalam *RowCountPtr adalah jumlah baris yang terpengaruh oleh permintaan atau -1 jika jumlah baris yang terpengaruh tidak tersedia.
Saat SQLExecute, SQLExecDirect, SQLBulkOperations, SQLSetPos, atau SQLMoreResults dipanggil, bidang SQL_DIAG_ROW_COUNT struktur data diagnostik diatur ke jumlah baris, dan jumlah baris di-cache dengan cara yang bergantung pada implementasi. SQLRowCount mengembalikan nilai jumlah baris yang di-cache. Nilai jumlah baris yang di-cache valid sampai handel pernyataan diatur kembali ke status yang disiapkan atau dialokasikan, pernyataan dieksteksi ulang, atau SQLCloseCursor dipanggil. Perhatikan bahwa jika fungsi telah dipanggil sejak bidang SQL_DIAG_ROW_COUNT diatur, nilai yang dikembalikan oleh SQLRowCount mungkin berbeda dari nilai di bidang SQL_DIAG_ROW_COUNT karena bidang SQL_DIAG_ROW_COUNT diatur ulang ke 0 dengan panggilan fungsi apa pun.
Untuk pernyataan dan fungsi lain, driver dapat menentukan nilai yang dikembalikan dalam *RowCountPtr. Misalnya, beberapa sumber data mungkin dapat mengembalikan jumlah baris yang dikembalikan oleh pernyataan SELECT atau fungsi katalog sebelum mengambil baris.
Catatan
Banyak sumber data tidak dapat mengembalikan jumlah baris dalam tataan hasil sebelum mengambilnya; untuk interoperabilitas maksimum, aplikasi tidak boleh mengandalkan perilaku ini.
Kembali
SQL_SUCCESS, SQL_SUCCESS_WITH_INFO, SQL_ERROR, atau SQL_INVALID_HANDLE.
Diagnostik
Saat SQLRowCount 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 SQLRowCount 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.) |
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. |
HY010 | Kesalahan urutan fungsi | (DM) Fungsi eksekusi asinkron dipanggil untuk handel koneksi yang terkait dengan StatementHandle. Fungsi asinkron ini masih dijalankan ketika fungsi SQLRowCount 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 SQLExecute, SQLExecDirect, SQLBulkOperations, atau SQLSetPos untuk StatementHandle. (DM) Fungsi eksekusi asinkron 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. |
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. |
Komentar
Jika pernyataan SQL terakhir yang dijalankan pada handel pernyataan bukan pernyataan UPDATE, INSERT, atau DELETE atau jika argumen Operasi dalam panggilan sebelumnya ke SQLBulkOperations tidak SQL_ADD, SQL_UPDATE_BY_BOOKMARK, atau SQL_DELETE_BY_BOOKMARK, atau jika argumen Operasi dalam panggilan sebelumnya ke SQLSetPos tidak SQL_UPDATE atau SQL_DELETE, nilai *RowCountPtr ditentukan driver. Untuk informasi selengkapnya, lihat Menentukan Jumlah Baris yang Terpengaruh.
Fungsi Terkait
Untuk informasi tentang | Lihat |
---|---|
Menjalankan pernyataan SQL | Fungsi SQLExecDirect |
Menjalankan pernyataan SQL yang disiapkan | Fungsi SQLExecute |