Fungsi JetRetrieveColumns

Berlaku untuk: Windows | Windows Server

Fungsi JetRetrieveColumns

Fungsi JetRetrieveColumns mengambil beberapa nilai kolom dari rekaman saat ini dalam satu operasi. Array struktur JET_RETRIEVECOLUMN digunakan untuk menjelaskan kumpulan nilai kolom yang akan diambil, dan untuk menjelaskan buffer output untuk setiap nilai kolom yang akan diambil.

    JET_ERR JET_API JetRetrieveColumns(
      __in          JET_SESID sesid,
      __in          JET_TABLEID tableid,
      __in_out_opt  JET_RETRIEVECOLUMN* pretrievecolumn,
      __in          unsigned long cretrievecolumn
    );

Parameter

sesid

Sesi yang digunakan untuk panggilan ini.

tableid

Kursor yang digunakan untuk panggilan ini.

pretrievecolumn

Penunjuk ke array dari satu atau beberapa struktur JET_RETRIEVECOLUMN . Setiap struktur mencakup deskripsi nilai kolom mana yang akan diambil dan tempat menyimpan data yang dikembalikan.

cretrievecolumn

Jumlah struktur JET_RETRIEVECOLUMN dalam array yang diberikan oleh pretrievecolumn.

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_errBadItagSequence

Nilai angka urutan kolom multinilai yang tidak valid telah diteruskan dalam pretinfo-itagSequence>. Nilai yang valid untuk angka urutan nilai kolom multinilai adalah 1 atau lebih besar. Nilai 0 (nol) valid untuk fungsi ini tetapi tidak valid untuk JetRetrieveColumn.

JET_errBadColumnId

ID kolom yang diberikan berada di luar batas hukum ID kolom.

JET_errClientRequestToStopJetService

Tidak dimungkinkan untuk menyelesaikan operasi karena semua aktivitas pada instans yang terkait dengan sesi telah berhenti sebagai akibat dari panggilan ke JetStopService.

JET_errColumnNotFound

Kolom yang dijelaskan oleh columnid yang diberikan tidak ada dalam tabel.

JET_errIndexTuplesCannotRetrieveFromIndex

Kolom yang diindeks sebagai substring tidak dapat diambil dari indeks, karena hanya sebagian kecil kolom yang biasanya ada di setiap entri indeks.

JET_errInvalidBufferSize

Dalam beberapa kasus, buffer yang diberikan untuk kolom ambil harus berukuran cukup untuk mengembalikan jumlah nilai kolom apa pun. Misalnya, kolom escrow yang dapat diperbarui disesuaikan agar konsisten untuk konteks transaksional sesi panggilan dan penyesuaian ini memerlukan buffer yang disediakan oleh pemanggil. Jika ruang buffer tidak cukup disediakan, maka JET_errInvalidBufferSize dikembalikan dan tidak ada data kolom apa pun yang dikembalikan.

JET_errInvalidgrbit

Opsi yang disediakan tidak diketahui atau kombinasi ilegal dari pengaturan bit yang diketahui.

JET_errInvalidParameter

Satu atau beberapa parameter yang diberikan salah. Ini dapat terjadi jika retinfo.cbStruct lebih kecil dari ukuran JET_RETINFO.

JET_errInstanceUnavailable

Tidak dimungkinkan untuk menyelesaikan operasi karena instans yang terkait dengan sesi telah mengalami kesalahan fatal yang mengharuskan akses ke semua data dicabut untuk melindungi integritas data tersebut.

Windows XP: Kesalahan ini hanya akan dikembalikan oleh Windows XP dan rilis yang lebih baru.

JET_errNoCurrentRecord

Kursor tidak diposisikan pada rekaman. Ini dapat terjadi karena berbagai alasan. Misalnya, ini akan terjadi jika kursor saat ini diposisikan setelah rekaman terakhir pada indeks saat ini.

JET_errNotInitialized

Tidak dimungkinkan untuk menyelesaikan operasi karena instans yang terkait dengan sesi belum diinisialisasi.

JET_errRestoreInProgress

Tidak dimungkinkan untuk menyelesaikan operasi 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: Kesalahan ini hanya akan dikembalikan oleh Windows XP dan rilis yang lebih baru.

JET_errTermInProgress

Tidak dimungkinkan untuk menyelesaikan operasi karena instans yang terkait dengan sesi sedang dimatikan.

JET_wrnBufferTruncated

Seluruh nilai kolom tidak dapat diambil karena buffer yang diberikan lebih kecil dari ukuran kolom.

Jika berhasil, data kolom dan ukuran kolom dikembalikan dalam buffer yang disediakan yang dijelaskan dalam array struktur JET_RETRIEVECOLUMN . Jika itagSequence diatur ke 0 (nol) untuk menunjukkan bahwa jumlah instans bidang multinilai diinginkan alih-alih data kolom, maka jumlah instans kolom multinilai dikembalikan di bidang itagSequence itu sendiri. Setiap struktur JET_RETRIEVECOLUMN memiliki bidang kesalahan yang berisi peringatan untuk kolom yang diambil. Jika kolom bernilai NULL , maka kode kesalahan akan diatur ke JET_wrnColumnNull.

Jika gagal, lokasi kursor dibiarkan tidak berubah dan tidak ada data yang disalin ke dalam buffer yang disediakan.

Keterangan

JetRetrieveColumns mendukung satu fitur yang tidak dilakukan JetRetrieveColumn . Ini adalah kemampuan untuk mengambil jumlah instans kolom multinilai. Tujuan dari fitur ini adalah untuk memungkinkan aplikasi mengambil semua nilai kolom. Ini dapat dilakukan dengan terlebih dahulu menentukan jumlah nilai yang dimiliki kolom. Selanjutnya, panjangnya dapat ditentukan dengan memanggil JetRetrieveColumns lagi dengan satu struktur JET_RETRIEVECOLUMN dialokasikan untuk setiap nilai untuk menentukan panjang data kolom. Ini dapat dilakukan dengan melewati pointer pvDataNULL dengan cbMax 0 (nol) dan mengambil panjang kolom dalam cbActual. Panggilan ketiga dan terakhir dapat dilakukan dengan memori yang dialokasikan untuk data nilai kolom.

Jika ada kolom yang diambil terpotong karena buffer panjang yang tidak mencukup, API akan mengembalikan JET_wrnBufferTruncated. Namun, kesalahan lain, JET_wrnColumnNull hanya dikembalikan di bidang kesalahan di JET_RETRIEVECOLUMN. Alasannya adalah bahwa aplikasi sering ingin memastikan bahwa semua data telah diambil dan mengembalikan kesalahan ini dari JetRetrieveColumns memfasilitasi pemahaman 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
JET_RETRIEVECOLUMN
JetEnumerateColumns
JetRetrieveColumn
JetSetColumns