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. Uygulamanızı form tabanlı yapmak için CRecordView sınıfını kullanın. MFC Uygulama Sihirbazı'nı çalıştırdığınızda ve Veritabanı Desteği sayfasında ODBC istemci tipini seçtiğinizde, proje görünüm sınıfı için CRecordView kullanır.

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 CDatabase nesnesine 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şturucusuna NULL geçirdiğinizde, çerçeve, bir CDatabase nesnesi oluşturmak ve 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 GetDefaultConnect gerçekleştirir.

  • 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.

Görünümünüzde, CRecordView ile uygulanan bir form veya başka bir şey olsun, her ne varsa yazdırılmasını sağlamak isteyebilirsiniz. CFormView'den türetilen sınıflar olarak, CRecordView yazdırmayı desteklemez, ancak yazdırmaya izin vermek için OnPrint ü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ı