Bagikan melalui


Struktur CDaoIndexInfo

Struktur CDaoIndexInfo berisi informasi mengenai objek indeks yang ditentukan untuk objek akses data (DAO).

Sintaks

struct CDaoIndexInfo {
    CDaoIndexInfo();                    // Constructor
    CString m_strName;                  // Primary
    CDaoIndexFieldInfo* m_pFieldInfos;  // Primary
    short m_nFields;                    // Primary
    BOOL m_bPrimary;                    // Secondary
    BOOL m_bUnique;                     // Secondary
    BOOL m_bClustered;                  // Secondary
    BOOL m_bIgnoreNulls;                // Secondary
    BOOL m_bRequired;                   // Secondary
    BOOL m_bForeign;                    // Secondary
    long m_lDistinctCount;              // All

    // Below the // Implementation comment:
    // Destructor, not otherwise documented
};

Parameter

m_strName
Menamai objek bidang dengan unik. Untuk detailnya, lihat topik "Properti Nama" di Bantuan DAO.

m_pFieldInfos
Pointer ke array objek CDaoIndexFieldInfo yang menunjukkan bidang tabledef atau recordset mana yang merupakan bidang kunci dalam sebuah indeks. Setiap objek mengidentifikasi satu bidang pada indeks. Indeks default diurutkan dari kecil ke besar. Objek indeks bisa jadi memiliki satu atau beberapa bidang yang mewakili kunci indeks untuk setiap rekaman. Urutannya bisa naik, turun, atau kombinasi.

m_nFields
Jumlah bidang yang disimpan dalam m_pFieldInfos.

m_bPrimary
Jika properti Primer BENAR, objek indeks mewakili indeks utama. Indeks utama terdiri dari satu atau beberapa bidang yang secara unik mengidentifikasi semua rekaman di dalam tabel dalam urutan yang telah ditentukan sebelumnya. Karena bidang indeks harus unik, properti Unik objek Indeks juga diatur ke BENAR di DAO. Jika indeks utama terdiri dari lebih dari satu bidang, setiap bidang bisa berisi nilai duplikat, tetapi setiap kombinasi nilai dari semua bidang terindeks harus unik. Indeks utama terdiri dari sebuah kunci untuk tabel dan biasanya berisi bidang yang sama dengan kunci primer.

Ketika Anda mengatur kunci primer untuk tabel, kunci primer secara otomatis didefinisikan sebagai indeks utama untuk tabel. Untuk informasi selengkapnya, lihat topik "Properti Utama" serta "Properti Unik" di Bantuan DAO.

Catatan

Mungkin ada, paling banyak, satu indeks utama dalam sebuah tabel.

m_bUnique
Menunjukkan apakah objek indeks mewakili indeks unik untuk sebuah tabel. Jika properti ini BENAR, objek indeks mewakili indeks yang unik. Indeks unik terdiri dari satu atau beberapa bidang yang secara logis mengatur semua rekaman dalam tabel dalam urutan unik yang sudah ditentukan sebelumnya. Jika indeks terdiri dari satu bidang, nilai dalam bidang tersebut harus unik untuk seluruh tabel. Jika indeks terdiri dari lebih dari satu bidang, setiap bidang bisa berisi nilai duplikat, tetapi setiap kombinasi nilai dari semua bidang terindeks harus unik.

Jika properti Unik dan Utama dari objek indeks diatur ke BENAR, indeks unik dan utama: Ini secara unik mengidentifikasi semua rekaman dalam tabel dalam urutan logis yang telah ditentukan sebelumnya. Jika properti Utama diatur ke SALAH, indeks adalah indeks sekunder. Indeks sekunder (baik kunci dan nonkunci) secara logis menyusun rekaman dalam urutan yang telah ditentukan tanpa berfungsi sebagai pengidentifikasi untuk rekaman dalam tabel.

Untuk informasi selengkapnya, lihat topik "Properti Utama" serta "Properti Unik" di Bantuan DAO.

m_bClustered
Menunjukkan apakah objek indeks mewakili indeks berkluster untuk sebuah tabel. Jika properti ini BENAR, objek indeks mewakili indeks berkluster maka jika yang terjadi sebaliknya, indeks tidak terwakili. Indeks berkluster terdiri dari satu atau beberapa bidang nonkunci yang, diambil bersama-sama, menyusun semua rekaman dalam tabel dalam urutan yang telah ditentukan sebelumnya. Dengan indeks berkluster, data dalam tabel secara harfiah disimpan dalam urutan yang ditentukan oleh indeks berkluster. Indeks berkluster menyediakan akses efisien ke rekaman dalam sebuah tabel. Untuk informasi selengkapnya, lihat topik "Properti Berkluster" di Bantuan DAO.

Catatan

Properti Berkluster diabaikan untuk database yang menggunakan mesin database Microsoft Jet karena mesin database Jet tidak mendukung indeks berkluster.

m_bIgnoreNulls
Menunjukkan apakah ada entri indeks untuk rekaman yang memiliki nilai Null di bidang indeksnya. Jika properti ini BENAR, bidang dengan nilai Null tidak memiliki sebuah entri indeks. Untuk membuat pencarian rekaman menggunakan bidang dengan lebih cepat, Anda bisa menentukan indeks untuk bidang tersebut. Jika Anda mengizinkan entri Null dalam bidang terindeks serta memperkirakan ada banyak entri menjadi Null, Anda bisa mengatur properti IgnoreNulls untuk objek indeks ke BENAR untuk mengurangi jumlah ruang penyimpanan yang digunakan indeks. Pengaturan properti IgnoreNulls serta pengaturan properti yang Diperlukan bersama-sama menentukan apakah rekaman dengan nilai indeks Null memiliki entri indeks, seperti yang ditunjukkan tabel berikut ini.

IgnoreNulls Wajib Null di bidang indeks
Benar Salah Nilai null diizinkan; tidak ada entri indeks yang ditambahkan.
Salah Salah Nilai null diizinkan; entri indeks ditambahkan.
Benar atau Salah Benar Nilai null tidak diizinkan; tidak ada entri indeks yang ditambahkan.

Untuk informasi selengkapnya, lihat topik "Properti IgnoreNulls" di Bantuan DAO.

m_bRequired
Menunjukkan apakah objek indeks DAO membutuhkan nilai non-Null. Jika properti ini BENAR, objek indeks tidak memperbolehkan nilai Null. Untuk informasi selengkapnya, lihat topik "Properti yang Dibutuhkan" di Bantuan DAO.

Tip

Saat Anda bisa mengatur properti ini untuk objek indeks DAO atau objek bidang (dimuat oleh tabeldef, recordset, atau objek querydef), atur properti tersebut untuk objek bidang. Validitas pengaturan properti untuk objek bidang diperiksa sebelum objek indeks.

m_bForeign
Menunjukkan apakah objek indeks mewakili kunci asing dalam sebuah tabel. Jika properti ini BENAR, indeks mewakili kunci asing dalam tabel. Kunci asing terdiri dari satu atau beberapa bidang dalam tabel asing yang secara unik mengidentifikasi sebuah baris dalam tabel utama. Mesin database Microsoft Jet membuat objek indeks untuk tabel asing serta mengatur properti Asing saat Anda membuat hubungan yang memberlakukan integritas referensial. Untuk informasi selengkapnya, lihat topik "Properti Asing" di Bantuan DAO.

m_lDistinctCount
Menunjukkan jumlah nilai unik untuk objek indeks yang disertakan dalam tabel terkait. Periksa properti DistinctCount untuk menentukan jumlah nilai unik, atau kunci, dalam sebuah indeks. Kunci apa pun dihitung hanya sekali, meskipun mungkin ada beberapa kemunculan nilai tersebut jika indeks mengizinkan nilai duplikat. Informasi ini berguna dalam aplikasi yang mencoba untuk mengoptimalkan akses data dengan mengevaluasi informasi indeks. Jumlah nilai unik juga dikenal sebagai kardinalitas objek indeks. Properti DistinctCount tidak akan selalu memperlihatkan jumlah kunci aktual pada waktu tertentu. Misalnya, perubahan yang disebabkan oleh transaksi yang dibatalkan tidak langsung terlihat di properti DistinctCount. Untuk informasi selengkapnya, lihat topik "Properti DistinctCount" di Bantuan DAO.

Keterangan

Referensi ke Primer, Sekunder, serta Semua yang di atas menunjukkan bagaimana informasi dikembalikan oleh GetIndexInfo fungsi anggota di kelas CDaoTableDef dan CDaoRecordset.

Objek indeks tidak diperlihatkan oleh sebuah kelas MFC. Sebagai gantinya, objek DAO yang mendasar objek MFC kelas CDaoTableDef atau CDaoRecordset berisi kumpulan objek indeks, yang disebut koleksi Indeks. Kelas-kelas ini menyediakan fungsi anggota untuk mengakses item individual informasi indeks, atau Anda dapat mengakses semuanya sekaligus menggunakan objek CDaoIndexInfo dengan memanggil fungsi anggota GetIndexInfodari objek yang mengandungnya.

CDaoIndexInfo memiliki konstruktor dan destruktor untuk mengalokasikan serta membatalkan alokasi informasi bidang indeks dengan benar di m_pFieldInfos.

Informasi yang diambil oleh fungsi anggota GetIndexInfo dari objek tabledef disimpan dalam struktur CDaoIndexInfo. Panggil fungsi anggota GetIndexInfo dari objek yang berisi tabledef dan pada kumpulan Indeks tabledef ini, objek indeks disimpan. CDaoIndexInfo juga mendefinisikan fungsi anggota Dumpdalam pembangunan debug. Anda bisa menggunakan Dump untuk membuang konten CDaoIndexInfo dari suatu objek.

Persyaratan

Header: afxdao.h

Baca juga

Struktur, Gaya, Panggilan Balik, serta Peta Pesan
CDaoTableDef::GetIndexInfo