Przegląd
W wielu sytuacjach może być pożądane migrowanie aplikacji, które wykorzystują MFC firmy ODBC bazy danych klas MFC firmy biblioteki zgodnooci DAO bazy danych klasy. Ta Uwaga techniczna będzie szczegółowo większość różnic między klas MFC ODBC i obiektów DAO. Z różnic w uwadze nie powinno być zbyt trudne do migracji aplikacji z klas ODBC do klas MFC, w razie potrzeby.
Dlaczego migracji z ODBC do DAO?
Istnieje szereg powodów dlaczego warto migracji aplikacji z klasami baz danych ODBC do klas bazy danych DAO, ale decyzja nie jest koniecznie proste lub oczywiste. Jedną rzeczą, którą należy pamiętać jest aparat bazy danych Microsoft Jet, który jest używany przez DAO można odczytać dowolne źródła danych ODBC, do którego masz sterownik ODBC. Może być bardziej efektywne użycie klas bazy danych ODBC lub wywołać ODBC bezpośrednio samodzielnie, ale aparat bazy danych Microsoft Jet może odczytać danych ODBC.
Istnieją pewne proste przypadki, które ułatwiają decyzji ODBC/DAO. Na przykład, gdy tylko potrzebujesz dostępu do danych w formacie, który aparatu Microsoft Jet można odczytać bezpośrednio (format programu Access, FoxPro formatu, format programu Excel itd.) oczywistym wyborze jest użycie klasy bazy danych DAO.
Bardziej złożonych przypadkach powstają, gdy danych istnieje na serwerze lub na szereg różnych serwerów. W tym przypadku decyzja o wykorzystaniu klasy bazy danych ODBC lub klasy bazy danych DAO jest trudne. Jeśli chcesz wykonać rzeczy jak heterogenicznych sprzężenia (sprzężenie danych z serwerów w wielu formatach takich jak SQL Server i Oracle), a następnie aparat bazy danych Microsoft Jet będzie wykonywać sprzężenie możesz zamiast wymuszanie możesz zrobić niezbędnych prac, jeśli używane klasami baz danych ODBC lub bezpośrednio o nazwie ODBC. Jeśli używasz sterownika ODBC, który obsługuje sterownik kursory, najlepszym może być klasy bazy danych ODBC.
Wybór może być skomplikowane, więc warto Piszemy kod próbki do testowania wydajności różnych metod, biorąc pod uwagę szczególne potrzeby. Ta Uwaga techniczna zakłada, że dokonano decyzji o migracji z klasami baz danych ODBC do klas bazy danych DAO.
Podobieństwa między klasami baz danych ODBC i klasami baz danych MFC DAO
Oryginalny projekt klas MFC ODBC była oparta na modelu obiektów DAO, które były używane w programie Microsoft Access i Microsoft Visual Basic. Oznacza to, że istnieje wiele cech wspólnych klas ODBC i DAO MFC, które zostaną nie wszystkie wymienione w niniejszej sekcji. Na ogół programowania modele są takie same.
Aby podświetlić kilka podobieństw:
Na przykład w przypadku obydwu modeli procedura pobierania danych jest do tworzenia i otworzyć obiektu bazy danych, Utwórz i otworzyć obiektu recordset i przejść (przenieś) Chociaż dane wykonywania niektórych operacji.
Różnice między ODBC i klas DAO MFC
Klas obiektów DAO zawierać więcej obiektów i bogatszy zestaw metod, ale w tej sekcji tylko będzie szczegółowo różnice w podobnych klasy i funkcje.
Prawdopodobnie najbardziej oczywiste różnice między klasami są zmiany nazw klas podobne i funkcje globalne. &Na poniższej liście przedstawiono ofnbsp zmiany nazwy; obiekty, metody i funkcje globalne związane z klasami baz danych:
| Klasa lub funkcji | Odpowiednik klas MFC DAO |
| 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-systemem) |
| RFX_Text | DFX_Text |
| RFX_Binary | DFX_Binary |
| RFX_LongBinary | DFX_LongBinary |
* Funkcję RFX_Date opiera się na CTime i TIMESTAMP_STRUCT.
Poniżej wymieniono zasadnicze zmiany funkcjonalne, które mogą wpływać na aplikacji i wymagają więcej niż prosta nazwa zmian.
Z klasami ODBC MFC wymagane do zdefiniowania tych opcji za pomocą makra lub wyliczane typów.
Z klas obiektów DAO DAO zawiera definicję tych opcji w pliku nagłówka (DBDAOINT.H). zatem typ rekordów jest wyliczany członkiem CRecordset, ale z DAO jest stała zamiast. Na przykład może używać migawki podczas określania typu CRecordset w ODBC, ale DB_OPEN_SNAPSHOT , określając typ CDaoRecordset.
Uwaga Migawki DAO (CDaoRecordset) są tylko do odczytu, podczas gdy migawek ODBC (CRecordset) może być niemożliwa w zależności od sterowników i wykorzystanie Biblioteka kursorów ODBC. Jeśli używasz Biblioteka kursorów, CRecordset migawek jest aktualizowalna. Jeśli używasz tych sterowników Microsoft Desktop Driver Pack 3.0 bez Biblioteka kursorów ODBC migawek CRecordset są przeznaczone tylko do odczytu. Jeśli używasz innego sterownika, sprawdź dokumentację kierowcy, aby sprawdzić, czy migawek (STATIC_CURSORS) są tylko do odczytu.
Uwagi techniczne przez liczbę |nbsp; Uwagi techniczne według kategorii