Aracılığıyla paylaş


CDaoIndexInfo Yapısı

Yapı, CDaoIndexInfo veri erişim nesneleri (DAO) için tanımlanan bir dizin nesnesi hakkında bilgi içerir.

Not

DAO, Office 2013 aracılığıyla desteklenir. DAO 3.6 son sürümdür ve eski olarak kabul edilir.

Sözdizimi

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
};

Parametreler

m_strName
Alan nesnesini benzersiz olarak adlandırın. Ayrıntılar için DAO Yardımı'ndaki "Ad Özelliği" konusuna bakın.

m_pFieldInfos
Hangi tablo tanımı veya kayıt kümesi alanlarının dizindeki önemli alanlar olduğunu gösteren CDaoIndexFieldInfo nesneleri dizisine yönelik bir işaretçi. Her nesne dizinde bir alan tanımlar. Varsayılan dizin sıralama artandır. Dizin nesnesi, her kayıt için dizin anahtarlarını temsil eden bir veya daha fazla alana sahip olabilir. Bunlar artan, azalan veya bir birleşim olabilir.

m_nFields
içinde m_pFieldInfosdepolanan alanların sayısı.

m_bPrimary
Birincil özellik TRUE ise, dizin nesnesi birincil dizini temsil eder. Birincil dizin, bir tablodaki tüm kayıtları önceden tanımlanmış sırada benzersiz olarak tanımlayan bir veya daha fazla alandan oluşur. Dizin alanının benzersiz olması gerektiğinden, Index nesnesinin Unique özelliği da DAO'da TRUE olarak ayarlanır. Birincil dizin birden fazla alandan oluşuyorsa, her alan yinelenen değerler içerebilir, ancak tüm dizinlenmiş alanlardaki her değer bileşimi benzersiz olmalıdır. Birincil dizin, tablo için bir anahtardan oluşur ve genellikle birincil anahtarla aynı alanları içerir.

Bir tablo için birincil anahtar ayarladığınızda, birincil anahtar otomatik olarak tablonun birincil dizini olarak tanımlanır. Daha fazla bilgi için DAO Yardımı'ndaki "Birincil Özellik" ve "Benzersiz Özellik" konularına bakın.

Not

Tabloda en fazla bir birincil dizin olabilir.

m_bUnique
Dizin nesnesinin tablo için benzersiz bir dizini temsil edip etmediğini gösterir. Bu özellik TRUE ise, dizin nesnesi benzersiz bir dizini temsil eder. Benzersiz dizin, bir tablodaki tüm kayıtları benzersiz, önceden tanımlanmış bir sırada mantıksal olarak yerleştiren bir veya daha fazla alandan oluşur. Dizin bir alandan oluşuyorsa, bu alandaki değerlerin tablonun tamamı için benzersiz olması gerekir. Dizin birden fazla alandan oluşuyorsa, her alan yinelenen değerler içerebilir, ancak tüm dizinlenmiş alanlardaki her değer bileşimi benzersiz olmalıdır.

Bir dizin nesnesinin hem Benzersiz hem de Birincil özellikleri TRUE olarak ayarlanırsa, dizin benzersiz ve birincildir: Tablodaki tüm kayıtları önceden tanımlanmış, mantıksal bir sırada benzersiz olarak tanımlar. Birincil özelliği YANLIŞ olarak ayarlanırsa, dizin ikincil bir dizindir. İkincil dizinler (hem anahtar hem de anahtar olmayan), tablodaki kayıtlar için tanımlayıcı işlevi görmeden kayıtları önceden tanımlanmış bir sırada mantıksal olarak düzenler.

Daha fazla bilgi için DAO Yardımı'ndaki "Birincil Özellik" ve "Benzersiz Özellik" konularına bakın.

m_bClustered
Dizin nesnesinin tablo için kümelenmiş dizini temsil edip etmediğini gösterir. Bu özellik TRUE ise, dizin nesnesi kümelenmiş bir dizini temsil eder; aksi takdirde, yapmaz. Kümelenmiş dizin, bir tablodaki tüm kayıtları önceden tanımlanmış bir sırada yerleştiren bir veya daha fazla anahtar olmayan alandan oluşur. Kümelenmiş dizinde, tablodaki veriler tam anlamıyla kümelenmiş dizin tarafından belirtilen sırada depolanır. Kümelenmiş dizin, tablodaki kayıtlara verimli erişim sağlar. Daha fazla bilgi için DAO Yardımı'ndaki "Kümelenmiş Özellik" konusuna bakın.

Not

Jet veritabanı altyapısı kümelenmiş dizinleri desteklemediğinden, Microsoft Jet veritabanı altyapısını kullanan veritabanları için Kümelenmiş özelliği yoksayılır.

m_bIgnoreNulls
Dizin alanlarında Null değerleri olan kayıtlar için dizin girdileri olup olmadığını gösterir. Bu özellik TRUE ise, Null değerleri olan alanların dizin girdisi yoktur. Alan kullanarak kayıt aramayı daha hızlı hale getirmek için, alan için bir dizin tanımlayabilirsiniz. Dizine alınan bir alanda Null girişlere izin verirseniz ve girişlerin çoğunun Null olmasını bekliyorsanız, dizinin kullandığı depolama alanı miktarını azaltmak için dizin nesnesinin IgnoreNulls özelliğini TRUE olarak ayarlayabilirsiniz. IgnoreNulls özellik ayarı ve Gerekli özellik ayarı, aşağıdaki tabloda gösterildiği gibi Null dizin değerine sahip bir kaydın dizin girişi olup olmadığını belirler.

IgnoreNulls Zorunlu Dizin alanında null
Doğru Yanlış Null değere izin verilir; dizin girdisi eklenmedi.
False False Null değere izin verilir; dizin girdisi eklendi.
Doğru veya Yanlış True Null değere izin verilmiyor; dizin girdisi eklenmedi.

Daha fazla bilgi için DAO Yardımı'ndaki "IgnoreNulls Özelliği" konusuna bakın.

m_bRequired
BIR DAO dizin nesnesinin Null olmayan bir değer gerektip gerektirmediğini gösterir. Bu özellik TRUE ise, dizin nesnesi Null değere izin vermez. Daha fazla bilgi için DAO Yardımı'ndaki "Gerekli Özellik" konusuna bakın.

İpucu

Bu özelliği bir DAO dizin nesnesi veya alan nesnesi (tablo tanımı, kayıt kümesi veya sorgu tanımı nesnesi tarafından kapsanan) için ayarlayabileceğiniz durumlarda, alan nesnesi için ayarlayın. Alan nesnesi için özellik ayarının geçerliliği, dizin nesnesinden önce denetlendi.

m_bForeign
Dizin nesnesinin tablodaki yabancı anahtarı temsil edip etmediğini gösterir. Bu özellik TRUE ise, dizin bir tablodaki yabancı anahtarı temsil eder. Yabancı anahtar, bir yabancı tablodaki birincil tablodaki bir satırı benzersiz olarak tanımlayan bir veya daha fazla alandan oluşur. Microsoft Jet veritabanı altyapısı, yabancı tablo için bir dizin nesnesi oluşturur ve bilgi tutarlılığını zorlayan bir ilişki oluşturduğunuzda Foreign özelliğini ayarlar. Daha fazla bilgi için DAO Yardımı'ndaki "Yabancı Özellik" konusuna bakın.

m_lDistinctCount
İlişkili tabloya dahil edilen dizin nesnesi için benzersiz değerlerin sayısını gösterir. Bir dizindeki benzersiz değerlerin veya anahtarların sayısını belirlemek için DistinctCount özelliğini denetleyin. Dizin yinelenen değerlere izin verirse bu değerin birden çok tekrarı olsa bile, herhangi bir anahtar yalnızca bir kez sayılır. Bu bilgiler, dizin bilgilerini değerlendirerek veri erişimini iyileştirmeye çalışan uygulamalarda kullanışlıdır. Benzersiz değerlerin sayısı, dizin nesnesinin kardinalitesi olarak da bilinir. DistinctCount özelliği her zaman belirli bir zamanda gerçek anahtar sayısını yansıtmaz. Örneğin, bir işlem geri alma işleminin neden olduğu bir değişiklik DistinctCount özelliğine hemen yansıtılmaz. Daha fazla bilgi için DAO Yardımı'ndaki "DistinctCount Özelliği" konusuna bakın.

Açıklamalar

Yukarıdaki Birincil, İkincil ve Tümü'ne yapılan başvurular, bilgilerin CDaoTableDef ve CDaoRecordset sınıflarındaki üye işlevi tarafından GetIndexInfo nasıl döndürüldiğini gösterir.

Dizin nesneleri bir MFC sınıfı tarafından temsil edilmez. Bunun yerine, CDaoTableDef veya CDaoRecordset sınıfının MFC nesnelerini temel alan DAO nesneleri Indexes koleksiyonu olarak adlandırılan bir dizin nesneleri koleksiyonu içerir. Bu sınıflar, dizin bilgilerinin tek tek öğelerine erişmek için üye işlevleri sağlar veya içeren nesnenin GetIndexInfo üye işlevini çağırarak bunların tümüne bir nesneyle aynı CDaoIndexInfo anda erişebilirsiniz.

CDaoIndexInfo içinde dizin alanı bilgilerini m_pFieldInfosdüzgün bir şekilde ayırmak ve serbest bırakmak için bir oluşturucu ve bir yıkıcıya sahiptir.

Tabledef nesnesinin GetIndexInfo üye işlevi tarafından alınan bilgiler bir CDaoIndexInfo yapıda depolanır. GetIndexInfo Dizin koleksiyonunda dizin nesnesinin depolandığı içeren tabledef nesnesinin üye işlevini çağırın. CDaoIndexInfo ayrıca hata ayıklama derlemelerinde bir Dump üye işlevi tanımlar. Bir CDaoIndexInfo nesnenin içeriğini dökümü için kullanabilirsinizDump.

Gereksinimler

Üstbilgi: afxdao.h

Ayrıca bkz.

Yapılar, Stiller, Geri Çağrılar ve İleti Eşlemeleri
CDaoTableDef::GetIndexInfo