CDaoRecordset::Open

віртуальний недійсним відкрити (int nOpenType = AFX_DAO_USE_DEFAULT_TYPE, LPCTSTR lpszSQL = NULL, int nOptions= 0 );
кинути (CDaoException, CMemoryException);

віртуальний недійсним відкритих (CDaoTableDef *pTableDef,int nOpenType = dbOpenTable, int nOptions= 0 );
кинути (CDaoException, CMemoryException);

віртуальний недійсним відкритих (CDaoQueryDef *pQueryDef,int nOpenType = dbOpenDynaset, int nOptions= 0 );
кинути (CDaoException, CMemoryException);

Параметри

nOpenType

Одне з таких значень:

lpszSQL

Рядковий вказівник, що містить одну з нижченаведених дій:

nOptions

Один або декілька параметрів, перераховані нижче. Значення за промовчанням — 0. Можливих значень є наступні:

pTableDef

 Вказівник на об'єкт CDaoTableDef . Ця версія є тільки для таблиці тип набори записів. Під час використання цього параметра, використовується не CDaoDatabase він використовується для будівництва CDaoRecordset ; скоріше, використовується база даних, в якому проживає в tabledef.

pQueryDef

Вказівник на об'єкт CDaoQueryDef . Ця версія є дійсним тільки для динамічного набору і знімок тип набори записів. Під час використання цього параметра, використовується не CDaoDatabase він використовується для будівництва CDaoRecordset ; скоріше, використовується база даних, в якому проживає в querydef.

Зауваження

Ви повинні викликати цей член функції для отримання записів для набір записів. Перед викликом, відкриті, ви повинні побудувати набору записів об'єкта. Є кілька способів зробити це:

Для версії Відкрити що використовує параметр lpszSQL після відкриття набір записів можна отримати записи в одному з кількома способами. Перший варіант, це DFX функцій у вашому DoFieldExcha&nge. Другий варіант полягає у використанні динамічного прив'язування на виклик функції-члена GetFieldValue . Ці параметри можуть бути реалізовані окремо або у поєднанні. Якщо вони поєднуються, вам доведеться пройти в SQL-операторі себе на виклик Open. Докладніше про динамічний прив'язування, перегляньте статтю записів DAO: зв'язування записів динамічно в Visual C++ програміста керівництво.nbsp;

Під час використання друга версія відкритого де ви передати у CDaoTableDef об'єкті, отриманий стовпців будуть доступні для вас, щоб прив'язати через DoFieldExchange і DFX механізм, і/або прив'язати динамічно через GetFieldValue.

Примітка   Ви можете зателефонувати відкриті за допомогою CDaoTableDef об'єкт для таблиці тип набори записів.

Під час використання третя версія відкритого де ви передати у CDaoQueryDef об'єкті, що запит буде виконано, а отриманий стовпці буде доступний для вас bind через DoFieldExchange і DFX механізм, і/або прив'язати динамічно через GetFieldValue.

Примітка   Ви можете зателефонувати відкриті за допомогою CDaoQueryDef об'єкт для динамічного набору і знімок тип набори записів.

До першої версії Відкрити що використовує параметр lpszSQL записи вибираються на основі критеріїв, показано в нижченаведеній таблиці.

Значення параметра lpszSQL Записи вибрано визначається Приклад
NULL Рядок, повернутих GetDefaultSQL.
Комами список один або кілька tabledefs і/або імен querydef. Усі стовпці, представлені в DoFieldExchange.
"Клієнт"
Виберіть стовпець списку від Таблиця список Указаний стовпці з указаного tabledef(s) та/або querydef(s).
"Виберіть CustId, CustName
ВІД клієнта"

Звичайна процедура є передати NULL відкритим; у цьому випадку, відкриті закликає GetDefaultSQL, переналаштовуваною член функції, що ClassWizard генерує при створенні CDaoRecordset-отриманих клас. Це значення дає tabledef(s) та/або querydef ім'я, указане в ClassWizard. Замість цього можна вказати іншу інформацію в параметрі lpszSQL.

Все, що ви проходите, відкриті конструкції останній рядок SQL для запиту (рядок може мати SQL де і замовлення на положення додається рядок lpszSQL , який ви пройшли) і потім виконує запит. Ви можете вивчити рядок побудовані за номером GetSQL після виклику відкриті.

Поле даних члени ваш клас набору записів пов'язані стовпців даних, який вибрано. Якщо будь-які записи повертаються, перший запис стає поточний запис.

Якщо потрібно настроїти параметри набору записів, наприклад, фільтрування або сортування, встановити m_strSort або m_strFilter після ви побудувати набору записів об'єкта, але перш ніж ви називаєте відкритим. Якщо ви хочете оновити записи у наборі записів, після того, як набір записів уже відкрито, зателефонуйте Повторний запит.

Якщо ви називаєте відкриті для динамічного набору або знімок набору записів або джерела даних, що відноситься до SQL-оператора або tabledef, який представляє вкладені таблиці, ви можете використовувати dbOpenTable для аргументу тип»; Якщо ви робите, MFC кидає виключення. Щоб визначити, чи tabledef об'єкт представляє вкладені таблиці, створення об'єкта CDaoTableDef і його функцію член GetConnect.

DbSeeChanges прапор слід використовувати, якщо ви хочете трепінгувати зміни, зроблені іншим користувачем або в іншій програмі на комп'ютері, коли ви редагування або видалення записі. Наприклад, якщо два користувачі почати редагування записі, перший користувач, який член функцію оновлення успішно. Коли другий користувач називається оновлення , CDaoException викидають. Аналогічним чином, якщо другий користувач намагається викликати, Видалити , щоб видалити запис, і його вже було змінено користувачем перший, CDaoException відбувається.

Як правило, якщо користувач отримує цю CDaoException під час оновлення, слід оновити вміст поля і отримання знову змінених значень. Якщо за винятком відбувається на видалення, ваш код може відображати нові записувати дані користувача і повідомлення про те, які даними, нещодавно змінився. На даний момент ваш код може запитувати підтвердження, що користувач все ще хоче, щоб видалити запис.

Порада Використання лише для вперед прокручування параметр (dbForwardOnly) для підвищення продуктивності, коли ваш додаток робить один прохід через набір записів, які відкриті з джерела даних ODBC.

Щоб отримати додаткові відомості про відкриття набори записів, перегляньте статті записів DAO: створення набори записів і ДАО: створення, відкриття та закриття об'єктів DAO в Visual C++ програміста керівництва. Для отримання додаткової інформації зверніться до розділу "OpenRecordset метод" у довідці DAO.

Огляд CDaoRecordsetЧлени класу | Ієрархічна діаграма

Дивіться також CDaoRecordset::Close, CDaoRecordset::CDaoRecordset

Index