Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Bazen veritabanı uygulamalarınızda çerçevenin belge/görünüm mimarisini kullanmak istemeyebilirsiniz. Bu konu açıklar:
Belge serileştirme gibi belgeleri kullanmanız gerekmediğinde.
En az belge kullanan bir uygulamayla çalışma.
Belge veya görünüm olmadan bir uygulamayı yapılandırma.
Belgelere İhtiyacınız Olmadığında
Bazı uygulamaların ayrı bir belge kavramı vardır. Bu uygulamalar genellikle Dosya Aç komutuyla depolama alanından bir dosyanın tamamını veya çoğunu belleğe yükler. Güncellenmiş dosyayı "Dosya Kaydet" veya "Farklı Kaydet" komutlarıyla bir kerede depolama alanına geri yazarlar. Kullanıcının gördüğü şey bir veri dosyasıdır.
Ancak bazı uygulama kategorileri için belge gerekmez. Veritabanı uygulamaları işlemler açısından çalışır. Uygulama bir veritabanından kayıtları seçer ve bunları genellikle birer birer kullanıcıya sunar. Kullanıcının gördüğü genellikle tek bir geçerli kayıttır ve bu kayıt bellekteki tek kayıt olabilir.
Uygulamanız veri depolamak için bir belge gerektirmiyorsa, çerçevenin belge/görünüm mimarisinin bir kısmını veya tümünü kullanabilirsiniz. Ne kadar vazgeçtiğiniz, tercih ettiğiniz yaklaşıma bağlıdır. Şunları yapabilirsiniz:
Veri kaynağınızla bağlantıyı depolamak için en düşük belgeyi kullanın, ancak serileştirme gibi normal belge özelliklerinden vazgeçin. Bu, verilerin çeşitli görünümlerini ve tüm görünümleri eşitlemek, hepsini bir kerede güncelleştirmek vb. istediğinizde kullanışlıdır.
Görünüm kullanmak yerine doğrudan içine çizim yaptığınız bir çerçeve pencere kullanın. Bu durumda, belgeyi atlar ve çerçeve penceresi nesnesinde veri veya veri bağlantılarını depolarsınız.
Belgeler ve Görünümler için Uygulama Sihirbazı Seçenekleri
MFC Uygulama Sihirbazı'nın Veritabanı desteğini seçin bölümünde aşağıdaki tabloda listelenen çeşitli seçenekler vardır. Bir uygulama oluşturmak için MFC Uygulama Sihirbazı'nı kullanırsanız, tüm bu seçenekler belgeler ve görünümlere sahip uygulamalar oluşturur. Bazı seçenekler, gereksiz belge işlevselliğini atlayan belgeler ve görünümler sağlar. Daha fazla bilgi için bkz . Veritabanı Desteği, MFC Uygulama Sihirbazı.
| Seçenek | Görünüm | Belge |
|---|---|---|
| Hiçbiri | den CView türetilmiştir. |
Veritabanı desteği sağlamaz. Bu varsayılan seçenektir. Uygulama Türü, MFC Uygulama Sihirbazı sayfasında Belge/görünüm mimarisi desteği seçeneğini seçerseniz, Dosya menüsünde serileştirme ve Yeni, Aç, Kaydet ve Farklı Kaydet komutları da dahil olmak üzere tam belge desteği alırsınız. Bkz. Belge Içermeyen Uygulamalar. |
| Yalnızca başlık dosyaları |
CView'dan türetilmiştir. |
Uygulamanız için temel veritabanı desteği düzeyini sağlar. Afxdb.h içerir. Bağlantı kitaplıkları ekler, ancak veritabanına özgü sınıflar oluşturmaz. Kayıt kümelerini daha sonra oluşturabilir ve kayıtları incelemek ve güncelleştirmek için kullanabilirsiniz. |
| Dosya desteği olmayan veritabanı görünümü | Türetilen CRecordView |
Belge desteği sağlar, ancak serileştirme desteği sağlamaz. Belge kayıt kümesini depolayabilir ve birden çok görünümü koordine edebilir; serileştirmeyi veya Yeni, Aç, Kaydet ve Farklı Kaydet komutlarını desteklemez. Bkz. En Az Belgeli Uygulamalar. Veritabanı görünümü eklerseniz, verilerin kaynağını belirtmeniz gerekir. Veritabanı üst bilgi dosyalarını, bağlantı kitaplıklarını, kayıt görünümünü ve kayıt kümesini içerir. (Yalnızca |
| Dosya desteğine sahip veritabanı görünümü | Türetilen CRecordView |
Serileştirme ve belgeyle ilgili Dosya menüsü komutları da dahil olmak üzere tam belge desteği sağlar. Veritabanı uygulamaları genellikle dosya başına değil kayıt başına olarak çalışır ve bu nedenle serileştirme gerekmez. Ancak, serileştirme için özel bir kullanımınız olabilir. Bkz. En Az Belgeli Uygulamalar. Veritabanı görünümü eklerseniz, verilerin kaynağını belirtmeniz gerekir. Veritabanı üst bilgi dosyalarını, bağlantı kitaplıklarını, kayıt görünümünü ve kayıt kümesini içerir. (Yalnızca |
Serileştirmeye alternatifler ve serileştirme için alternatif kullanımlar hakkında bir tartışma için bkz . Serileştirme: Seri hale getirme ve Veritabanı Girişi/Çıkışı.
En Az Belge içeren uygulamalar
MFC Uygulama Sihirbazı'nın form tabanlı veri erişim uygulamalarını destekleyen iki seçeneği vardır. Her seçenek, türetilmiş bir CRecordViewgörünüm sınıfı ve belge oluşturur. Ayrıntılandırılmayan içerikler açısından farklılık gösterirler.
Dosya Desteği Olmayan Belge
Belge serileştirmeye ihtiyacınız yoksa, dosya desteği olmadan veritabanı görünümü uygulama sihirbazı veritabanı seçeneğini belirleyin. Belge aşağıdaki yararlı amaçlara hizmet eder:
Bir nesneyi depolamak için uygun bir
CRecordsetyerdir.Bu kullanım normal belge kavramlarını paralel hale getirmektedir: belge verileri (veya bu örnekte bir kayıt kümesini) depolar ve görünüm belgenin bir görünümüdür.
Uygulamanız birden çok görünüm (birden çok kayıt görünümü gibi) sunuyorsa, belge görünümlerin koordinasyonunu destekler.
Birden çok görünüm aynı verileri gösteriyorsa, herhangi bir görünüm verileri değiştirdiğinde tüm görünümlerde güncelleştirmeleri koordine etmek için üye işlevini kullanabilirsiniz
CDocument::UpdateAllViews.
Bu seçeneği genellikle basit form tabanlı uygulamalar için kullanırsınız. Uygulama sihirbazı, bu tür uygulamalar için otomatik olarak uygun bir yapıyı destekler.
Dosya Desteği Olan Belge
Belgeyle ilgili Dosya menüsü komutları ve belge serileştirme için alternatif bir kullanımınız olduğunda, uygulama sihirbazı veritabanı seçeneğini Dosya desteğiyle veritabanı görünümü'nü seçin. Programınızın veri erişimi bölümü için, belgeyi Dosya Desteği Olmayan Belge'de açıklandığı gibi kullanabilirsiniz. Örneğin, kullanıcının tercihlerini veya diğer yararlı bilgileri depolayan serileştirilmiş bir kullanıcı profili belgesini okumak ve yazmak için belgenin serileştirme özelliğini kullanabilirsiniz. Daha fazla fikir için bkz . Serileştirme: Serileştirme ve Veritabanı Girişi/Çıkışı.
Uygulama sihirbazı bu seçeneği destekler, ancak belgeyi seri hale getiren kodu yazmanız gerekir. Serileştirilmiş bilgileri belge veri üyelerinde depolayın.
Belge Içermeyen Uygulamalar
Bazen belge veya görünüm kullanmayan bir uygulama yazmak isteyebilirsiniz. Belgeler olmadan, verilerinizi (nesne gibi CRecordset ) çerçeve penceresi sınıfınızda veya uygulama sınıfınızda depolarsınız. Ek gereksinimler, uygulamanın bir kullanıcı arabirimi sunup sunmadığına bağlıdır.
Kullanıcı Arabirimi ile Veritabanı Desteği
Başka bir kullanıcı arabiriminiz varsa (örneğin, konsol komut satırı arabiriminden farklı bir arabirim), uygulamanız bir görüntü içerisine değil, doğrudan çerçeve penceresinin istemci alanına çizer. Böyle bir uygulama, ana kullanıcı arabirimi için CRecordView, CFormView veya CDialog kullanmaz, ancak normalde sıradan iletişim kutuları için CDialog kullanır.
Belge Olmadan Uygulama Yazma
Uygulama sihirbazı belgeler olmadan uygulama oluşturmayı desteklemediğinden, kendi CWinApptüretilmiş sınıfınızı yazmanız ve gerekirse bir CFrameWnd veya CMDIFrameWnd sınıfı da oluşturmanız gerekir.
CWinApp::InitInstance öğesini geçersiz kılın ve bir uygulama nesnesini şu şekilde bildirin:
CYourNameApp theApp;
Çerçeve hala ileti eşleme mekanizmasını ve diğer birçok özelliği sağlar.
Kullanıcı Arabiriminden Ayrı Veritabanı Desteği
Bazı uygulamaların kullanıcı arabirimine hiç ihtiyacı yoktur veya yalnızca çok basit bir arabirime ihtiyaç duyar. Örneğin, şunları yazdığınızı varsayalım:
Diğer uygulamalar (istemciler) tarafından, uygulama ile veri kaynağı arasındaki verilerin özel olarak işlenmesi için çağrılan bir ara veri erişim nesnesi.
Verileri kullanıcı müdahalesi olmadan işleyen bir uygulama; örneğin, verileri bir veritabanı biçiminden diğerine veya hesaplamalar yapan ve toplu güncelleştirmeler yapan bir uygulama.
Nesnenin CRecordset sahibi hiçbir belge olmadığından, bunu CWinApp türetilmiş uygulama sınıfınızda gömülü bir veri üyesi olarak depolamak isteyebilirsiniz. Alternatifler şunlardır:
Kalıcı bir
CRecordsetnesne hiç tutmamak. Null değerini kayıt kümesi sınıf oluşturucularınıza geçirebilirsiniz. Bu durumda, çerçeve kayıt kümesininCDatabaseüye işlevindeki bilgileri kullanarak geçiciGetDefaultConnectbir nesne oluşturur. Bu en olası alternatif yaklaşımdır.CRecordsetNesneyi genel değişken yapma. Bu değişken, geçersiz kılmanızdaCWinApp::InitInstancedinamik olarak oluşturduğunuz bir kayıt kümesi nesnesinin işaretçisi olmalıdır. Bu, çerçeve başlatılmadan önce nesneyi oluşturma girişimini önler.Bir belge veya görünüm bağlamında yaptığınız gibi kayıt kümesi nesnelerini kullanma. Uygulamanızın veya çerçeve penceresi nesnelerinin üye işlevlerinde kayıt kümeleri oluşturun.