MFC: Belgeler ve Görünümler ile Veritabanı Sınıflarını Kullanma
MFC veritabanı sınıflarını belge/görünüm mimarisiyle veya mimarisi olmadan kullanabilirsiniz. Bu konu, belgeler ve görünümlerle çalışmayı vurgular. Bu, şu açıklamayı açıklar:
Belgenizde ana görünüm olarak bir
CRecordView
nesne kullanarak form tabanlı uygulama yazma.Belgelerinizde ve görünümlerinizde kayıt kümesi nesnelerini kullanma.
Alternatifler için bkz . MFC: Belgeler ve Görünümler Olmadan Veritabanı Sınıflarını Kullanma.
Form Tabanlı Uygulama Yazma
Birçok veri erişim uygulaması formları temel alır. Kullanıcı arabirimi, kullanıcının verileri incelediği, girdiği veya düzenlediği denetimleri içeren bir formdur. Uygulama formunuzu temel almak için sınıfını CRecordView
kullanın. MFC Uygulama Sihirbazı'nı çalıştırdığınızda ve Veritabanı Desteği sayfasında ODBC istemci türünü seçtiğinizde, proje görünüm sınıfı için kullanırCRecordView
.
Form tabanlı bir uygulamada, her kayıt görünümü nesnesi bir CRecordset
nesnenin işaretçisini depolar. Çerçevenin kayıt alanı değişimi (RFX) mekanizması, kayıt kümesi ile veri kaynağı arasında veri alışverişi gerçekleştirir. İletişim kutusu veri değişimi (DDX) mekanizması, kayıt kümesi nesnesinin alan veri üyeleriyle formdaki denetimler arasında veri alışverişi gerçekleştirir. CRecordView
ayrıca, kayıttan formdaki kayda gitmek için varsayılan komut işleyici işlevleri sağlar.
Uygulama sihirbazıyla form tabanlı bir uygulama oluşturmak için bkz . Form Tabanlı MFC Uygulaması ve Veritabanı Desteği Oluşturma, MFC Uygulama Sihirbazı.
Formların tam tartışması için bkz . Kayıt Görünümleri.
Belgelerde ve Görünümlerde Kayıt Kümelerini Kullanma
Birçok basit form tabanlı uygulamada belge gerekmez. Uygulamanız daha karmaşıksa, büyük olasılıkla veri kaynağına bağlanan bir nesneyi depolayan CDatabase
bir belgeyi veritabanı için ara sunucu olarak kullanmak istersiniz. Form tabanlı uygulamalar genellikle görünümde bir kayıt kümesi nesnesinin işaretçisini depolar. Diğer türdeki veritabanı uygulamaları, kayıt kümelerini ve CDatabase
nesneyi belgede depolar. Veritabanı uygulamalarında belge kullanımıyla ilgili bazı olasılıklar şunlardır:
Yerel bağlamda bir kayıt kümesine erişiyorsanız, gerektiğinde belgenin veya görünümün üye işlevlerinde yerel olarak bir
CRecordset
nesne oluşturun.Bir kayıt kümesi nesnesini bir işlevde yerel değişken olarak bildirme. Oluşturucuya NULL geçirerek çerçevenin sizin için geçici
CDatabase
bir nesne oluşturmasına ve açmasına neden olur. Alternatif olarak, bir nesneyeCDatabase
bir işaretçi geçirin. İşlev içindeki kayıt kümesini kullanın ve işlevden çıkıldığında otomatik olarak yok edilmesine izin verin.Bir kayıt kümesi oluşturucusunun NULL değerini geçirdiğinizde, çerçeve bir nesne oluşturmak
CDatabase
ve nesneyi açmak için kayıt kümesininGetDefaultConnect
üye işlevi tarafından döndürülen bilgileri kullanır. Sihirbazlar sizin için uygularGetDefaultConnect
.Belgenizin ömrü boyunca bir kayıt kümesine erişiyorsanız, belgenize bir veya daha fazla
CRecordset
nesne ekleyin.Belgeyi başlatırken veya gerektiğinde kayıt kümesi nesnelerini oluşturun. Zaten varsa kayıt kümesine bir işaretçi döndüren veya henüz yoksa kayıt kümesini oluşturup açan bir işlev yazabilirsiniz. Kayıt kümesini gerektiği gibi kapatın, silin ve yeniden oluşturun veya kayıtları yenilemek için üye işlevini çağırın
Requery
.Belgenizin kullanım ömrü boyunca bir veri kaynağına erişiyorsanız, bir
CDatabase
nesne ekleyin veya içindeki birCDatabase
nesnenin işaretçisini depolayın.CDatabase
nesnesi, veri kaynağınızla bağlantıyı yönetir. Nesne, belge oluşturma sırasında otomatik olarak oluşturulur ve belgeyi başlatırken üye işlevini çağırırsınızOpen
. Belge üyesi işlevlerinde kayıt kümesi nesneleri oluşturduğunuzda, belgeninCDatabase
nesnesine bir işaretçi geçirirsiniz. Bu, her kayıt kümesini kendi veri kaynağıyla ilişkilendirir. Veritabanı nesnesi genellikle belge kapatıldığında yok edilir. Kayıt kümesi nesneleri genellikle bir işlevin kapsamından çıktıklarında yok edilir.
Diğer Faktörler
Form tabanlı uygulamaların genellikle çerçevenin belge serileştirme mekanizması için herhangi bir kullanımı yoktur, bu nedenle Dosya menüsündeki Yeni ve Aç komutlarını kaldırmak, devre dışı bırakmak veya değiştirmek isteyebilirsiniz. Serileştirme: Serileştirme ve Veritabanı Girişi/Çıkışı makalesine bakın.
Çerçevenin destekleyebilecek birçok kullanıcı arabirimi olanağından da yararlanmak isteyebilirsiniz. Örneğin, bir bölücü penceresinde birden çok CRecordView
nesne kullanabilir, birden çok kayıt kümesini farklı belge arabirimi (MDI) alt pencerelerinde açabilir ve bu şekilde devam edebilirsiniz.
İster ile uygulanan CRecordView
bir form ister başka bir şey olsun, görünümünüzdeki her şeyin yazdırılmasını uygulamak isteyebilirsiniz. sınıfından CFormView
CRecordView
türetilen sınıflar yazdırmayı OnPrint
desteklemez, ancak yazdırmaya izin vermek için üye işlevini geçersiz kılabilirsiniz. Daha fazla bilgi için bkz. CFormView sınıfı.
Belgeleri ve görünümleri hiç kullanmak istemeyebilirsiniz. Bu durumda bkz . MFC: Belgeler ve Görünümler Olmadan Veritabanı Sınıflarını Kullanma.