Огляд
У багатьох ситуаціях може бути бажаним для перенесення програм, які використовуються ODBC MFC в базу даних класи класи бази даних DAO MFC. Ця технічна Примітка буде докладно більшість відмінностей між MFC ODBC і ДАО класи. З відмінності на увазі вона не повинна бути занадто важким для перенесення програм з ODBC класи класи MFC за бажанням.
Чому перенесення з ODBC DAO?
Є кілька причин, чому ви можете для перенесення програм з класів бази даних ODBC класи бази даних DAO, але рішення не обов'язково простий або очевидні. Одна справа мати на увазі, є Microsoft Jet database engine, який використовується DAO можна прочитати будь-якого джерела даних ODBC, для яких у вас є драйвер ODBC. Це може бути більш ефективного використання класів бази даних ODBC або зателефонуйте ODBC безпосередньо себе, але Microsoft Jet database engine читати даних ODBC.
Є деякі прості випадки, які роблять ODBC/DAO рішення легко. Наприклад, коли ви тільки повинні доступ до даних у форматі, що Microsoft реактивний двигун може читати безпосередньо (формат Access, FoxPro форматі, форматі Excel і так далі) очевидним вибором є використання класів бази даних DAO.
Більш складних випадках виникають, коли дані існує на сервері або на цілий ряд різних серверах. У цьому випадку, рішення про використання бази даних ODBC класів або бази даних DAO класів є важким. Якщо ви хочете, щоб робити речі, як об'єднання різнорідних (об'єднання даних з серверів в декількох форматах, як SQL Server і Oracle), то обробник баз даних Microsoft Jet буде виконувати об'єднання для вас, а не змушує вас зробити роботу необхідно, якщо ви користувалися класи бази даних ODBC або безпосередньо під назвою ODBC. Якщо використовується драйвер ODBC, які підтримує драйвер курсори, ваш кращий вибір, можливо, класи бази даних ODBC.
Вибір може бути складно, так що ви можете написати деякі приклади коду, перевірити ефективність різних методів з огляду на ваші особливі потреби. Цей технічне Примітка припускає, що ви прийняли рішення для перенесення з бази даних ODBC класи класи бази даних DAO.
Схожість між класи бази даних ODBC і класи бази даних MFC DAO
Оригінальний дизайн класи MFC ODBC була заснована на DAO об'єктну модель, яка використовується в Microsoft Access і Microsoft Visual Basic. Це означає, що існує багато спільних можливостей ODBC і ДАО MFC класи, які будуть не всі перераховані в цьому розділі. Загалом, програмування моделей однакові.
Щоб виділити кілька подібності:
Наприклад, в обох моделей процедура для отримання даних для створення та відкриття об'єкта бази даних, створення відкриття набору записів об'єкта та навігації (перехід) хоча дані, виконує деякі операції.
Відмінності між ODBC і ДАО MFC класи
ДАО класи включити більше об'єктів і багатше набір методів, але цей розділ буде тільки докладно відмінності в такі класи і функціональність.
Мабуть, найбільш очевидних відмінностей між класами, аналогічні класи та глобальні функції, зміна імені. Нижченаведений список показує ім'я зміни 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 знімків, оновлювану. Без бібліотеку курсора ODBC у разі використання Microsoft драйверів від робочого драйвера оновлення 3.0, CRecordset знімків призначені лише для читання. Якщо використовується інший драйвер, перевірте документації водія, щоб побачити, якщо знімки (STATIC_CURSORS), доступні лише для читання.
Технічні примітки за номером |nbsp; Технічні примітки за категоріями