Обзор
Во многих ситуациях может быть желательным для переноса приложений, которые используют классы баз данных MFC ODBC для базы данных классов MFC DAO. Эта техническая записка подробно большинство различий между классами MFC ODBC и DAO. С различия в виду он не должен быть слишком сложным для миграции приложений из классов ODBC классов MFC при необходимости.
Почему мигрировать из ODBC в DAO?
Существует ряд причин, почему вы можете перенести приложения классы базы данных ODBC для базы данных классов DAO, однако решение не всегда простой или очевидной. Одно дело иметь в виду, что базы данных Microsoft Jet, используемая DAO можно считывается любой источник данных ODBC, для которого установлен драйвер ODBC. Она может быть более эффективным для использования классов баз данных ODBC или вызова ODBC непосредственно сами, но базы данных Microsoft Jet может читать данных ODBC.
Есть некоторые простые случаи, которые делают ODBC/DAO решение легко. Например, когда требуется только доступ к данным в формате, который в Microsoft Jet может читать непосредственно (формат Microsoft Access, FoxPro формат, формат Excel и т. д.) очевидным выбором является использование классов базы данных DAO.
Более сложные случаи возникают, когда ваши данные существуют на сервере или на целый ряд различных серверов. В этом случае решение использовать классы базы данных ODBC или DAO классы баз данных является сложной. Если вы хотите сделать что-то вроде гетерогенные соединения (соединения данных с серверов в различных форматах, таких как SQL Server и Oracle), то Microsoft Jet database engine выполнит соединение для вас, а не заставить вас делать необходимую работу, если используемые классы баз данных ODBC или непосредственно под названием ODBC. Если вы используете драйвер ODBC, который поддерживает драйвер курсоров, ваш лучший выбор могут быть классы базы данных ODBC.
Выбор может быть сложным, так что вы можете написать пример кода для проверки эффективности различных методов с учетом Ваших особых потребностей. Эта техническая записка предполагает, что вы приняли решение перейти от классов базы данных ODBC на классы DAO базы данных.
Сходство между классами базы данных ODBC и классы MFC DAO базы данных
Оригинальный дизайн классы MFC ODBC был основан на модели объектов DAO, которая используется в Microsoft Access и Microsoft Visual Basic. Это означает, что существует множество общих черт классов DAO MFC и ODBC, которые будут не все перечисленные в этом разделе. В целом модели программирования, то же самое.
Чтобы выделить несколько сходства:
Например в обеих моделях процедура для получения данных — для создания и открытия объекта базы данных, создание и открытие объекта набора записей и навигации (перемещения) хотя данных, выполнение некоторых операции.
Различия между классы DAO MFC и ODBC
Классы DAO включают больше объектов и богатый набор методов, но только в этом разделе подробно различия в похожие классы и функциональность.
Наиболее очевидные различия между классами, вероятно, являются изменения названий для аналогичных классов и глобальных функций. В следующем списке показаны изменения of  имя; объекты, методы и глобальные функции, связанные с классами базы данных:
| Класс или функция | Эквивалент в классы 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-на основе) |
| RFX_Text | DFX_Text |
| RFX_Binary | DFX_Binary |
| RFX_LongBinary | DFX_LongBinary |
* RFX_Date функция основана на CTime и TIMESTAMP_STRUCT.
Ниже перечислены основные изменения в функциях, которые могут повлиять на Ваше приложение и требует больше, чем простое имя изменений.
С помощью классов ODBC MFC необходимо определить эти параметры через макросы или перечислениях.
С помощью классов DAO DAO предоставляет определение этих вариантов в заголовочном файле (DBDAOINT.H). Таким образом тип набора записей перечисляемые членом CRecordset, но с Дао это константа вместо этого. К примеру вы будет использовать снимок при указании типа CRecordset в ODBC, но DB_OPEN_SNAPSHOT , указывая тип CDaoRecordset.
Примечание Дао (CDaoRecordset) снимки доступны только для чтения, в то время как ODBC (CRecordset) снимков можно обновлять в зависимости от драйвера и использовании библиотеки курсоров ODBC. При использовании библиотеки курсоров CRecordset снимками обновляемым. Если вы используете какой-либо из драйверов Microsoft от Desktop 3.0 пакет драйверов без библиотеки курсоров ODBC, CRecordset снимки доступны только для чтения. Если вы используете другой драйвер, обратитесь к документации водителя чтобы узнать, если снимки (STATIC_CURSORS)-только для чтения.
Технические примечания по номеру |nbsp; Технические примечания по категориям