MFC: Belgeler ve Görünümler ile Veritabanı Sınıflarını Kullanma
MFC veritabanı sınıflarını — DAO veya ODBC — belge/görünüm mimarisi ile ya da olmadan kullanabilirsiniz. Bu konu belgeler ve görünümlerle çalışmayı vurgulamaktadır. Şunu açıklar:
Belgenizdeki ana görünüm olarak bir CRecordView ya da CDaoRecordView nesnesi kullanarak form tabanlı bir uygulamayı nasıl yazarsınız.
Belgelerinizde ve görünümlerinizde kayıt kümesi nesnelerini nasıl kullanırsınız.
Diğer noktalar.
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 veriyi incelediği, girdiği veya düzenlediği denetimleri içeren bir formdur. Uygulamanızı form temelli hale getirmek için CRecordView veya CDaoRecordView sınıfını kullanın. MFC Uygulaması Sihirbazı'nı çalıştırdığınızda ve ODCB istemci türünü Veritabanı Desteği sayfasında seçtiğinizde, proje görünüm sınıfı için CRecordView kullanır. Sihirbazlar artık DAO öğesini desteklemiyor, bundan böyle CDaoRecordView öğesini kullanmak istiyorsanız elle kodlamalısınız.
Biçim tabanlı bir uygulamada, her kayıt görüntüleme nesnesi bir CRecordset ya da CDaoRecordset nesnesine işaretçi barındırır. Çerçeve'nın kayıt alanı değişim (RFX) mekanizması kayıt kümesi ile veri kaynağı arasında veri değişimi yapar. İletişim verisi değişimi(DDX) mekanizması kayıt kümesi nesnesinin alan veri üyeleri ile formdaki denetimleri arasında veri değişimi yapar. CRecordView veya CDaoRecordView form üzerinde kayıtlar arasında gezinmek için varsayılan işleyici işlevlerini de sağlar.
Uygulama Sihirbazı'nı kullanarak form tabanlı bir uygulama oluşturmak için bakınız: Form Tabanlı Bir MFC Uygulaması Oluşturmak ve Veritabanı Desteği, MFC Uygulaması Sihirbazı.
Formalara yönelik tam açıklama için bkz. Kayıt Görüntüleme.
Belgeler ve Görünümlerde Kayıt Kümeleri Kullanmak
Birçok basit form tabanlı uygulama için belge gerekmez. Uygulamanızın daha karmaşıksa, büyük olasılıkla veri kaynağına bağlanan CDatabase ya da CDaoDatabase nesnesini saklayarak veritabanı proxy'si olarak bir belgeyi kullanmak istersiniz. Form tabanlı uygulamalar genellikle görünümde bir kayıt kümesi nesnesine bir işaretçi depolar. Veritabanı uygulamalarının diğer türleri kayıt kümelerini ve CDatabase veya CDaoDatabase nesnesini belgede depolar. Belgeleri veritabanı uygulamalarında kullanmak için bazı olanaklar şunlardır:
Kayıt kümesine yerel bağlamda erişiyorsanız, ihtiyacınız doğrultusunda belgenin üye işlevlerinde veya görünümünde yerel olarak bir CRecordset ya da CDaoRecordset nesnesi oluşturun.
Bir fonksiyon içerisinde yerel değişken olarak bir kayıt kümesi nesnesi bildirin. NULL öğesini oluşturucuya geçirin; bunu yapmanız çerçevenin sizin için geçici bir CDatabase veya CDaoDatabase nesnesi oluşturmasına neden olur. Alternatif olarak, CDatabase veya CDaoDatabase nesnesine bir işaretçi geçirin. İşlevin içindeki kayıt kümesini kullanın ve işlev çıkınca bırakın otomatik olarak sonlansın.
Kayıt kümesi yapıcısını null geçtiğinizde, çerçeve onu açabilmek için kayıt kümesinin GetDefaultConnect üye işlevi tarafından geri verilen bilgiyi CDatabase veya CDaoDatabase nesneyi kullanır. Sihirbazlar GetDefaultConnect öğesini sizin için uygular.
Belgenizin ömrü içerisinde bir kayıt kümesine erişiyorsanız bir veya birden fazla CRecordset ya da CDaoRecordset nesnesini belgenizin içinde saklayın.
Kayıt kümesi nesnelerini belgeyi başlattığınızda veya gerekli olduğunda oluşturun. Zaten varsa, kayıt kümesine bir işaretçi döndüren ya da henüz yoksa, oluşturan ve kayıt kümesini açan bir işlev yazabilirsiniz. Gerekli olduğu şekilde kayıt kümesini kapatın, silin ve yeniden oluşturun veya kayıtları yenilemek için Yeniden sorgula üye işlevini çağırın.
Belgenizin ömrü içerisinde bir veri kaynağına erişiminiz varsa, içine bir CDatabase veya CDaoDatabase nesnesi gömün ya da içinde bir işaretçiyi CDatabase veya CDaoDatabase nesnesine saklayın.
CDatabase ya da CDaoDatabase nesnesi sizin veri kaynağınıza bir bağlantı yönetir. Nesne belge oluşturma sırasında otomatik olarak oluşturulur ve belge başlattığınızda Açık üye işlevini çağırırsınız. Belge üye işlevlerinde kayıt kümesi nesneleri oluştururken, belgenin CDatabase veya CDaoDatabase öğesine bir işaretçi geçin. Bu, her kayıt kümesini kendi veri kaynağıyla ilişkilendirir. Belge kapandığında veritabanı nesnesi genellikle yok edilir. Bir işlevin kapsamından çıktıklarında kayıt kümesi nesneleri genellikle yok edilir.
Diğer Etkenler
Form tabanlı uygulamalarda genellikle herhangi bir çerçeve belge serileştirme mekanizması yoktur, bu nedenle New ve Aç komutlarını Dosya menüsünde kaldırmak, devre dışı bırakmak ya da değiştirmek isteyebilirsiniz. Seri Hale Getirme: Seri Hale Getirme ve Veritabanı Giriş/Çıkış Karşılaştırması makalesine bakın.
Ortamın destekleyebileceği birçok kullanıcı arabirimi fırsatından yararlanmak isteyebilirsiniz. Örneğin, ayırıcı bir penceresinde birden fazla CRecordView veya CDaoRecordView nesnesi kullanabilir, farklı birçok belge arabirimi (MDI) alt penceresinde birden fazla kayıt kümesini açabilirsiniz, vb.
CRecordView ya da CDaoRecordView veya başka bir şey ile uygulanıp uygulanmadığı fark etmeksizin görüntülediklerinizi yazdırmak isteyebilirsiniz. CRecordView ve CDaoRecordView, CFormView öğesinden türetilmiş sınıflar olarak yazdırmayı desteklemez, ancak OnPrint üye işlevini geçersiz kılarak yazdırmaya izin verebilirsiniz. Daha fazla bilgi için bkz. sınıf CFormView.
Belgeleri ve görünümleri kullanmak istemeyebilirsiniz. Bu durumda bkz. MFC: Belgeler ve Görünümler Olmadan Veritabanı Sınıflarını Kullanma.