Bagikan melalui


Fungsi JetIndexRecordCount

Berlaku untuk: Windows | Windows Server

Fungsi JetIndexRecordCount

Fungsi JetIndexRecordCount menghitung jumlah entri dalam indeks saat ini dari posisi saat ini ke depan. Posisi saat ini disertakan dalam hitungan. Jumlahnya bisa lebih besar dari jumlah total rekaman dalam tabel jika indeks saat ini melebihi kolom multinilai dan instans kolom memiliki beberapa nilai. Jika tabel kosong, maka 0 akan dikembalikan untuk hitungan.

    JET_ERR JET_API JetIndexRecordCount(
      __in          JET_SESID sesid,
      __in          JET_TABLEID tableid,
      __out         unsigned long* pcrec,
      __in          unsigned long crecMax
    );

Parameter

sesid

Sesi yang digunakan untuk panggilan ini.

tableid

Kursor yang digunakan untuk panggilan ini.

pcrec

Penunjuk ke nilai panjang yang tidak ditandatangani untuk menerima hitungan.

crecMax

Jumlah maksimum rekaman yang akan dihitung. Nilai crecMax 0 menunjukkan bahwa jumlahnya tidak terbatas.

Tampilkan Nilai

Fungsi ini mengembalikan jenis data JET_ERR dengan salah satu kode pengembalian berikut. Untuk informasi selengkapnya tentang kemungkinan kesalahan ESE, lihat Kesalahan Mesin Penyimpanan yang Dapat Diperluas dan Parameter Penanganan Kesalahan.

Menampilkan kode

Deskripsi

JET_errSuccess

Operasi berhasil diselesaikan.

JET_errClientRequestToStopJetService

Operasi tidak dapat diselesaikan karena semua aktivitas pada instans yang terkait dengan sesi telah berhenti sebagai akibat dari panggilan ke JetStopService.

JET_errInstanceUnavailable

Operasi tidak dapat diselesaikan karena instans yang terkait dengan sesi mengalami kesalahan fatal yang mengharuskan akses ke semua data dicabut untuk melindungi integritas data tersebut.

Windows XP: Nilai yang dikembalikan ini diperkenalkan di Windows XP.

JET_errNoCurrentRecord

Kursor saat ini tidak ada di rekaman dan tabel tidak kosong.

Windows XP, Windows Server 2003, Windows 2000 Server, dan Windows 2000 Professional: Jika kursor diposisikan pada indeks kosong atau rentang indeks, maka JetIndexRecordCount secara keliru mengembalikan JET_errNoCurrentRecord.

JET_errNotInitialized

Operasi tidak dapat diselesaikan karena instans yang terkait dengan sesi belum diinisialisasi.

JET_errRestoreInProgress

Operasi tidak dapat diselesaikan karena operasi pemulihan sedang berlangsung pada instans yang terkait dengan sesi.

JET_errSessionSharingViolation

Sesi yang sama tidak dapat digunakan untuk lebih dari satu utas secara bersamaan.

Windows XP: Nilai yang dikembalikan ini diperkenalkan di Windows XP.

JET_errTermInProgress

Operasi tidak dapat diselesaikan karena instans yang terkait dengan sesi sedang dimatikan.

Jika fungsi ini berhasil, jumlah pasti entri indeks termasuk posisi saat ini dan hingga crecMax (jika bukan 0), dikembalikan dalam panjang yang tidak ditandatangani yang diarahkan oleh pcrec.

Jika fungsi ini gagal, tidak ada perubahan yang dilakukan pada memori yang dialokasikan sebelumnya.

Keterangan

Jika tabel tidak kosong, maka kursor harus diposisikan ke rekaman untuk memulai hitungan. Hitungan akan mencakup rekaman ini, dan menghitung maju hingga batas yang diberikan dalam crecMax. Jika crecMax adalah 0 maka operasi akan terus menghitung hingga akhir indeks.

Rentang indeks dapat digunakan untuk membangun batasan akhir indeks buatan untuk hitungan. Dengan cara ini, subrang indeks dapat dihitung dengan tepat. Kursor harus diposisikan ke baris pertama dalam rentang. Akhir kunci rentang harus dibuat dan kemudian JetSetIndexRange harus digunakan untuk mengatur rentang atas, baik secara inklusif atau eksklusif. Terakhir, JetIndexRecordCount harus dipanggil untuk menghitung rentang dengan tepat.

JetIndexRecordCount mematuhi semantik transaksi dan mengembalikan hitungan yang akurat untuk sesi tertentu ini dalam status transaksi saat ini.

JetIndexRecordCount mengakses halaman daun indeks untuk menghitung entri dengan tepat. Akibatnya, ia dapat melakukan banyak I/O dan bisa lambat. Batasan crecMax harus digunakan untuk mencegah beban yang berlebihan. Jika rentang besar, maka mungkin untuk menghitung rentang dengan cara yang diperkirakan menggunakan JetGetRecordPosition.

Windows XP, Windows Server 2003, Windows 2000 Server, dan Windows 2000 Professional: Jika kursor diposisikan pada indeks kosong atau rentang indeks, maka JetIndexRecordCount secara keliru mengembalikan JET_errNoCurrentRecord daripada mengembalikan jumlah rekaman nol. Aplikasi harus memeriksa untuk melihat apakah indeks atau rentang indeks kosong dalam kasus ini.

Persyaratan

Persyaratan Nilai

Klien

Memerlukan Windows Vista, Windows XP, atau Windows 2000 Professional.

Server

Memerlukan Windows Server 2008, Windows Server 2003, atau Windows 2000 Server.

Header

Dinyatakan dalam Esent.h.

Pustaka

Gunakan ESENT.lib.

DLL

Membutuhkan ESENT.dll.

Lihat juga

JET_ERR
JET_SESID
JET_TABLEID
JetGetRecordPosition
JetSetIndexRange
JetStopService