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 GetIndexInfo
dari 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 Dump
dalam 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
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk