Genel bakış
Birçok durumda MFC'ın odbc veritabanı sınıflarıyla MFC'ın dao veritabanı sınıflarını kullanan uygulamalar göç istenebilir. Bu teknik not mfc odbc ve dao sınıfları arasındaki farkları en detaylı. İle akıl arasındaki farklılıklar, o aşırı isterseniz, odbc sınıflardan uygulamaları mfc sınıflarına geçirmek zor olmamalı.
Odbc için dao neden göç?
Neden uygulamalarının odbc veritabanı sınıflardan dao veritabanı sınıflarına geçirmek isteyebilirsiniz, ancak kararı mutlaka basit veya belirgin olmayan nedenlerle bir dizi vardır. Akılda tutulması gereken bir şey dao tarafından kullanılan Microsoft Jet veritabanı altyapısı için odbc sürücüsü olan herhangi bir odbc veri kaynağına okunur. odbc veritabanı sınıflarını kullanabilir veya kendiniz, ancak Microsoft Jet veritabanı altyapısı odbc veri okuyabilir doğrudan odbc çağrı daha verimli olabilir.
Odbc/dao karar kolay basit bazı durumlar vardır. Örneğin, yalnızca Microsoft Jet engine (erişim biçimi, FoxPro biçiminde, Excel formatında vb.) apaçık seçme dao veritabanı sınıflarını kullanmaktır doğrudan okuyabilen bir biçimde veri erişimi gerektiğinde.
Verilerinizi bir sunucuya veya farklı sunuculara çeşitli varken daha karmaşık durumlar ortaya çıkmaktadır. Bu durumda, odbc veritabanı sınıflarını veya dao veritabanı sınıflarını kullanmak zor bir karardır. İsterseniz türdeş olmayan birleşimler (birleştirme verileri sql Server ve Oracle gibi birden çok biçimde sunuculardan) gibi şeyler, sonra Microsoft Jet veritabanı altyapısı birleştirme gerçekleştirir, sizin için yerine kullanılan odbc veritabanı sınıflarını ya da doğrudan odbc denilen gerekli çalışmaları yapmaya zorluyor. Destekleyen sürücü imleçler odbc sürücüsü kullanıyorsanız, en iyi seçim odbc veritabanı sınıflarını olabilir.
Sen-ebilmek istemek-e verilen özel gereksinimleriniz için çeşitli yöntemler performansını sınamak için bazı örnek kod yazmak seçim karmaşık olabilir. Bu teknik not dao veritabanı sınıflarıyla odbc veritabanı sınıflardan geçiş kararı yaptığınız varsayılmaktadır.
Odbc veritabanı sınıflarını ve mfc dao veritabanı sınıflar arasındaki benzerlikler
Mfc odbc sınıfların özgün tasarım Microsoft Access ve Microsoft Visual Basic kullanılmaktadır dao nesne modeline bağlıdır. Bu, tüm bu bölümde listelenir odbc ve dao mfc sınıfları birçok ortak özellikleri olduğu anlamına gelir. Genel olarak, programlama modelleri aynıdır.
Birkaç benzerlikleri vurgulamak için:
Örneğin yordam veri almak için her iki model oluşturmak ve bir veritabanı nesnesi açmak için oluşturmak ve bir recordset nesnesi açar ve (taşı) olsa bazı işlemi gerçekleştirerek veri gidin.
Odbc ve dao mfc sınıflar arasındaki farklar
Dao derslere daha fazla nesneleri ve yöntemleri daha zengin bir dizi içerir, ancak bu bölümde sadece benzer sınıflar ve işlevler farklılıkları detay.
Muhtemele&n en belirgin farkları sınıflar arasındaki benzer sınıfları ve küresel işlevler için adı değişikliklerdir. Aşağıdaki liste, ad değişiklikleri ofnbsp gösterir; nesneleri, yöntemleri ve veritabanı sınıflarıyla ilişkili genel işlevler:
| Sınıf veya işlev | Mfc dao sınıfları eşdeğer |
| CDatabase | CDaoDatabase |
| CDatabase::ExecuteSQL | CDaoDatabase::Execute |
| CRecordset | CDaoRecordset |
| CRecordset::GetDefaultConnect | CDaoRecordset::GetDefaultDBName |
| CFieldExchange | CDaoFieldExchange |
| RFX_Bool | DFX_Bool |
| RFX_Byte | DFX_Byte |
| RFX_Int | DFX_Short |
| RFX_Long | DFX_Long |
| DFX_Currency | |
| RFX_Single | DFX_Single |
| RFX_Double | DFX_Double |
| RFX_Date * | DFX_Date (COleDateTime-tabanlı) |
| RFX_Text | DFX_Text |
| RFX_Binary | DFX_Binary |
| RFX_LongBinary | DFX_LongBinary |
* RFX_Date işlevi CTime ve TIMESTAMP_STRUCT göre.
Uygulamanızı etkiler ve daha basit ad değişikliklerini gerektiren işlevselliğini önemli değişiklikler aşağıda listelenmiştir.
Odbc sınıflarıyla mfc makrolar aracılığıyla bu seçenekleri tanımlamak için gerekli veya türleri numaralandırılan.
Dao sınıflarıyla dao üstbilgi dosyası (DBDAOINT. Bu seçeneklerin tanımını sağlarh). böylece recordset türü bir Enum CRecordsetüyesidir, ancak dao ile bunun yerine sabit olduğunu. Örneğin CRecordset türü odbc ama db_open_snapshot CDaoRecordset türünü belirtirken belirtirken anlık kullanabilirsiniz.
&Notnbsp; odbc (CRecordset) anlık sürücü ve odbc imleç kitaplığı kullanımına bağlı olarak güncelleştirilebilir olabilir dao (CDaoRecordset) anlık salt okunur. İmleç kitaplığı kullanıyorsanız, CRecordset anlık güncelleştirilebilir. Masaüstü Sürücü paketi 3.0 Microsoft sürücülerinin herhangi bir odbc imleç kitaplığı kullanıyorsanız, CRecordset anlık salt okunur. Başka bir sürücü kullanıyorsanız, anlık görüntüleri (STATIC_CURSORS) salt okunur olup olmadığını görmek için sürücü belgelerine bakın.
Teknik notlar numarasına göre |nbsp; Teknik notlar kategorisine göre