Aracılığıyla paylaş


CDaoFieldExchange Sınıfı

DAO veritabanı sınıfları tarafından kullanılan DAO kayıt alanı değişimi (DFX) yordamlarını destekler.

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

Sözdizimi

class CDaoFieldExchange

Üyeler

Genel Yöntemler

Ad Tanım
CDaoFieldExchange::IsValidOperation Geçerli işlem güncelleştirilmekte olan alan türüne uygunsa sıfır olmayan döndürür.
CDaoFieldExchange::SetFieldType sonraki çağrısına SetFieldTypekadar DFX işlevlerine yapılan sonraki tüm çağrılarla temsil edilen kayıt kümesi veri üyesinin türünü (sütun veya parametre) belirtir.

Ortak Veri Üyeleri

Ad Tanım
CDaoFieldExchange::m_nOperation Kayıt kümesinin DoFieldExchange üye işlevine yapılan geçerli çağrı tarafından gerçekleştirilen DFX işlemi.
CDaoFieldExchange::m_prs DFX işlemlerinin gerçekleştirildiği kayıt kümesinin işaretçisi.

Açıklamalar

CDaoFieldExchange temel sınıfına sahip değildir.

Özel veri türleri için veri değişimi yordamları yazıyorsanız bu sınıfı kullanın; aksi takdirde, bu sınıfı doğrudan kullanmayacaksınız. DFX, CDaoRecordset nesnenizin alan veri üyeleriyle veri kaynağındaki geçerli kaydın karşılık gelen alanları arasında veri alışverişinde bulunur. DFX, veri kaynağından ve veri kaynağına her iki yönde de değişimi yönetir. Özel DFX yordamları yazma hakkında bilgi için bkz . Teknik Not 53 .

Dekont

DAO veritabanı sınıfları, Açık Veritabanı Bağlan ivity (ODBC) temelinde MFC veritabanı sınıflarından farklıdır. Tüm DAO veritabanı sınıf adları "CDao" ön ekini alır. DAO sınıflarıyla ODBC veri kaynaklarına erişmeye devam edebilirsiniz. Genel olarak, DAO'yu temel alan MFC sınıfları ODBC tabanlı MFC sınıflarından daha yeteneklidir. DAO tabanlı sınıflar, ODBC sürücüleri de dahil olmak üzere verilere kendi veritabanı altyapısı aracılığıyla erişebilir. Ayrıca, DAO'yu kendiniz çağırmak yerine sınıflar aracılığıyla tablo ekleme gibi Veri Tanımlama Dili (DDL) işlemlerini de destekler.

Dekont

DAO kayıt alanı değişimi (DFX), ODBC tabanlı MFC veritabanı sınıflarındaki ( , CRecordset) kayıt alanı değişimine (CDatabaseRFX) çok benzer. RFX'i anlarsanız, DFX'i kullanmayı kolaylaştırırsınız.

Nesnesi CDaoFieldExchange , DAO kayıt alanı değişiminin gerçekleşmesi için gereken bağlam bilgilerini sağlar. CDaoFieldExchange nesneleri, parametreleri ve alan veri üyelerini bağlama ve geçerli kaydın alanlarında çeşitli bayraklar ayarlama dahil olmak üzere bir dizi işlemi destekler. DFX işlemleri, içinde FieldType tarafından tanımlanan türlerin enumkayıt kümesi sınıfı veri üyelerinde CDaoFieldExchangegerçekleştirilir. Olası FieldType değerleri şunlardır:

  • CDaoFieldExchange::outputColumn alan veri üyeleri için.

  • CDaoFieldExchange::param parametre veri üyeleri için.

IsValidOperation üye işlevi, kendi özel DFX yordamlarınızı yazmak için sağlanır. CDaoRecordset::D oFieldExchange işlevlerinizde SetFieldType'i sık sık kullanacaksınız. DFX genel işlevleri hakkında ayrıntılı bilgi için bkz . Kayıt Alanı Değişim İşlevleri. Kendi veri türleriniz için özel DFX yordamları yazma hakkında bilgi için bkz . Teknik Not 53.

Devralma Hiyerarşisi

CDaoFieldExchange

Gereksinimler

Üst bilgi: afxdao.h

CDaoFieldExchange::IsValidOperation

Kendi DFX işlevinizi yazarsanız, geçerli işlemin belirli bir alan veri üye türünde (a CDaoFieldExchange::outputColumn veya aCDaoFieldExchange::param) gerçekleştirilip gerçekleştirilemeyeceğini belirlemek için işlevinizin başında çağrısında IsValidOperation bulunun.

BOOL IsValidOperation();

İade Değeri

Geçerli işlem güncelleştirilmekte olan alan türüne uygunsa sıfır olmayan.

Açıklamalar

DFX mekanizması tarafından gerçekleştirilen işlemlerin bazıları, olası alan türlerinden yalnızca birine uygulanır. Mevcut DFX işlevlerinin modelini izleyin.

Özel DFX yordamları yazma hakkında ek bilgi için bkz . Teknik Not 53.

CDaoFieldExchange::m_nOperation

Alan değişim nesnesiyle ilişkili CDaoRecordset nesnesinde gerçekleştirilecek işlemi tanımlar.

Açıklamalar

nesnesi, CDaoFieldExchange kayıt kümesindeki bir dizi farklı DFX işleminin bağlamını sağlar.

Dekont

Aşağıdaki MarkForAddNew ve SetFieldNull işlemleri altında açıklanan PSEUDONULL değeri, Null alanlarını işaretlemek için kullanılan bir değerdir. DAO kayıt alanı değişim mekanizması (DFX), hangi alanların açıkça Null olarak işaretlendiğini belirlemek için bu değeri kullanır. COleDateTime ve COleCurrency alanları için PSEUDONULL gerekli değildir.

Olası değerleri m_nOperation şunlardır:

Operation Tanım
AddToParameterList SQL deyiminin PARAMETERS yan tümcesini oluşturur.
AddToSelectList SQL deyiminin SELECT yan tümcesini oluşturur.
BindField Veritabanındaki bir alanı uygulamanızdaki bir bellek konumuna bağlar.
BindParam Kayıt kümesinin sorgusu için parametre değerlerini ayarlar.
Fixup Bir alan için Null durumunu ayarlar.
AllocCache Kayıt kümesindeki "kirli" alanları denetlemek için kullanılan önbelleği ayırır.
StoreField Geçerli kaydı önbelleğe kaydeder.
LoadField Kayıt kümesindeki önbelleğe alınmış veri üyesi değişkenlerini geri yükler.
FreeCache Kayıt kümesindeki "kirli" alanları denetlemek için kullanılan önbelleği boşaltır.
SetFieldNull Bir alanın durumunu Null ve değerini PSEUDONULL olarak ayarlar.
MarkForAddNew PSEUDONULL değilse alanları "kirli" olarak işaretler.
MarkForEdit Önbellekle eşleşmeyen alanları "kirli" olarak işaretler.
SetDirtyField "Kirli" olarak işaretlenmiş alan değerlerini ayarlar.
DumpField Alanın içeriğinin dökümünü oluşturur (yalnızca hata ayıklama).
MaxDFXOperation Giriş denetimi için kullanılır.

CDaoFieldExchange::m_prs

Nesneyle ilişkilendirilmiş CDaoRecordset nesnesinin işaretçisini CDaoFieldExchange içerir.

Açıklamalar

CDaoFieldExchange::SetFieldType

Sınıfınızın CDaoRecordset geçersiz kılmasını çağırSetFieldType.DoFieldExchange

void SetFieldType(UINT nFieldType);

Parametreler

nFieldType
içinde bildirilen CDaoFieldExchangeve aşağıdakilerden biri olabilecek enum FieldType değeri:

  • CDaoFieldExchange::outputColumn

  • CDaoFieldExchange::param

Açıklamalar

Normalde ClassWizard bu çağrıyı sizin için yazar. Kendi işlevinizi yazıyorsanız ve işlevinizi DoFieldExchange yazmak için sihirbazı kullanıyorsanız, alan haritasının dışında kendi işlevinize çağrılar ekleyin. Sihirbazı kullanmazsanız, alan eşlemesi olmaz. Çağrı, sınıfınızın her alan veri üyesi için bir tane olmak üzere DFX işlevlerine yapılan çağrıların önüne geçmekte ve alan türünü olarak CDaoFieldExchange::outputColumntanımlamaktadır.

Kayıt kümesi sınıfınızı parametreleştirirseniz, tüm parametre veri üyeleri (alan eşlemesi dışında) için DFX çağrıları eklemeniz ve bu çağrıların önüne çağrısı eklemeniz SetFieldTypegerekir. değerini CDaoFieldExchange::paramgeçirin. (Bunun yerine, CDaoQueryDef ve parametre değerlerini ayarlayın.)

Genel olarak, alan veri üyeleri veya parametre veri üyeleriyle ilişkili her DFX işlev çağrısı grubunun önünde öğesine SetFieldTypeyapılan bir çağrı bulunmalıdır. Her SetFieldType çağrının nFieldType parametresi, çağrıyı izleyen SetFieldType DFX işlev çağrıları tarafından temsil edilen veri üyelerinin türünü tanımlar.

Ayrıca bkz.

Hiyerarşi Grafiği
CDaoRecordset Sınıfı