Aracılığıyla paylaş


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:

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ı CRecordViewkullanı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 nesneye CDatabase 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ümesinin GetDefaultConnect üye işlevi tarafından döndürülen bilgileri kullanır. Sihirbazlar sizin için uygular GetDefaultConnect .

  • 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 bir CDatabase 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ız Open . Belge üyesi işlevlerinde kayıt kümesi nesneleri oluşturduğunuzda, belgenin CDatabase 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 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 CFormViewCRecordView 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.

Ayrıca bkz.

MFC Veritabanı Sınıfları