Ненульовий, якщо об'єкт CRecordset успішно відкрито; в іншому випадку 0, якщо CDatabase::Open (якщо назвати) повертає 0.
Параметри
nOpenType
Приймати значення за замовчуванням, AFX_DB_USE_DEFAULT_TYPE, або використовувати одне з таких значень від enumOpenType:
CRecordset::dy&nasetnbsp; Набір записів з напрямку письма прокручування. Членство та впорядкування записів, визначається, коли відкрити набір записів, але зміни, зроблені іншим користувачам значення даних є видимими, після операції вибірки. Dynasets, також відомий як набір ключів driven набори записів.
CRecordset::s&napshotnbsp; Набір статичних записів з напрямку письма прокручування. Членство та впорядкування записів, визначається, коли відкрити набір записів; значення даних визначається, коли записи приніс. Зміни, внесені іншими користувачами, не є видимими, доки набір записів є закривали і.
CRecordset::dy&namicnbsp; Набір записів з напрямку письма прокручування. Зміни, внесені іншими користувачами на членство, замовлення та даних значення відображаються після операції вибірки. Зверніть увагу, що багато драйвери ODBC не підтримує цей тип набору записів.
CRecordset::forwardO&nlynbsp; Набір записів доступний лише для читання з лише вперед прокручування.
Для CRecordsetзначення за промовчанням — CRecordset::snapshot. Значення за промовчанням механізм дозволяє взаємодіяти з ODBC CRecordset і ДАО CDaoRecordset, які мають різні настройки, майстри Visual c + +.
Щоб отримати додаткові відомості про ці типи набір записів, перегляньте статтю Набір записів (ODBC) в Visual C++ програміста керівництва. Для отримання додаткової інформації перегляньте статтю "За допомогою блоку і прокручуємо курсори" в SDK програміста ODBC посилання.
Застереження Якщо потрібний тип не підтримується, рамках кидає виключення.
lpszSQL
Рядковий вказівник, що містить одну з нижченаведених дій:
НУЛЬОВИЙ вказівник.
Назва таблиці.
Інструкцію SQL, Виберіть (за бажанням з SQL де або Замовлення на застереження).
Телефонуйте заяву вказує ім'я попередньо визначений запит (збережені процедури). Будьте обережні, не вставляти пробіли між фігурна дужка і ЗАТЕЛЕФОНУВАТИ ключове слово.
Щоб отримати додаткові відомості про цей рядок перегляньте таблицю та обговорення ClassWizard про роль під зауваження.
Примітка Порядок стовпців у наборі результатів має відповідати порядку на RFX або змінити базову RFX викликів функцій у ваш DoFieldExchange або DoBulkFieldExchange функції.
dwOptions
Бітова маска, який можна вказати комбінації значень, наведених нижче. Деякі з них є взаємовиключними. Значення за промовчанням — Ні.
CRecordset::nonenbsp; Немає набору параметрів. Це значення параметра є взаємовиключним з іншими цінностями. За замовчуванням набір записів може бути оновлений з редагування або Видалення і дозволяє додавання нових записів з Add&New. Updatability від на джерело даних, а також на nOpenType варіант ви вказуєте. Оптимізація для доповнення навалом недоступний. Отримання рядка навалом розглядатись не будуть. Видалених записів не буде пропущено під час переходів набір записів. Закладки недоступні. Перевірка автоматичного брудні галузі здійснюється.
CRecordset::appendOnlynbsp; Не дозволяє Редагувати або Видалити на набір записів. Дозволити Add&New тільки. Цей параметр є взаємовиключним з CRecordset::readOnly.
CRecordset::readO&nlynbsp; Відкрити набір записів доступний лише для читання. Цей параметр є взаємовиключним з CRecordset::appendOnly.
CRecordset::optimizeBulkAdd Використовувати підготовлені SQL-оператор для оптимізації, додавши багато записів за один раз. Застосовується тільки, якщо ви не використовуєте функції ODBC API SQLSetPos оновити набір записів. Перше оновлення визначає, які поля позначені брудні. Цей параметр є взаємовиключним з CRecordset::useMultiRowFetch.
CRecordset::useMultiRowFetch Здійснення навалом рядок отримання дозволити кілька рядків будуть отримані в одному fetch операції. Це додаткові функції, призначені для підвищення продуктивності; Однак, навалом поле запису exchange не підтримує ClassWizard. Цей параметр є взаємовиключним з CRecordset::optimizeBulkAdd. Зауважте, що якщо вказати CRecordset::useMultiRowFetch, виберіть параметр CRecordset::noDirtyFieldCheck вмикається автоматично (подвійна буферізація не будуть доступні); на тільки для вперед набори записів параметр CRecordset::useExtendedFetch вмикається автоматично. Щоб отримати додаткові відомості про отримання рядків навалом, перегляньте статтю набір записів: вилучення записів у базову (ODBC) в Visual C++ програміста керівництво.
CRecordset::skipDeletedRecords Пропустити всі видалені записи, при навігації по набір записів. Це буде Низька продуктивність в деяких відносно доставки. Цей параметр неприпустимий для тільки для вперед набори записів. Зверніть увагу, що CRecordset::skipDeletedRecords схожа драйвера, упаковка, який означає, що видалених рядків видаляються з набору записів. Однак, якщо драйвер пакети записи, потім вона буде пропустити лише ті записи, які видалення; Він не буде пропустити записи, що видалені інших користувачів, поки відкрито набір записів. CRecordset::skipDeletedRecords буде пропустити рядків, видалення інших користувачів.
CRecordset::useBookmarks Може використовувати закладки у наборі записів, якщо підтримується. Закладки повільне витягнення даних, а підвищення продуктивності для навігаційних даних. Не діє на вперед лише набори записів. Докладніше, перегляньте статтю набір записів: закладки і абсолютна позиції (ODBC) в Visual C++ програміста керівництво.
CRecordset::noDirtyFieldChecknbsp; Вимкнути автоматичне брудні поле Перевірка (подвійна буферізація). Це дозволить підвищити продуктивність; Однак, вам потрібно вручну позначити поля як брудні за номером SetFieldDirty , член SetField&Null функції.Зверніть увагу, що подвійна буферізація в класі, CRecordset схожий на подвійна буферізація класу CDaoRecordset. Однак, у CRecordset, не можна ввімкнути подвійна буферізація на окремі поля; Ви або увімкнути для всіх полів або вимкнути для всіх полів. Щоб отримати додаткові відомості про подвійна буферізація, перегляньте статтю ДАО ДАО запис обміну даними: подвійна буферізація записи в Visual C++ програміста керівництво. Зауважте, що якщо вказати параметр CRecordset::useMultiRowFetch, потім CRecordset::noDirtyFieldCheck вмикається автоматично; Однак, SetFieldDirty та SetFieldNull неможливо використовувати набори записів, які навалом рядок вибірка.
CRecordset::executeDirect Не використовуйте готові SQL-оператор. Для підвищення ефективності вказати цей параметр, якщо член функція Повторний запит ніколи не називали.
CRecordset::useExte&ndedFetchnbsp; Здійснення SQLExtendedFetch замість того, щоб SQLFetch. Це зроблено для реалізації навалом рядок отримання на вперед лише набори записів. Якщо вказано параметр CRecordset::useMultiRowFetch на набір записів доступний лише для вперед, потім CRecordset::useExtendedFetch вмикається автоматично.
CRecordset::userAllocMultiRowBuffers Користувач буде виділити буферів зберігання даних. Використовуйте цей параметр разом з CRecordset::useMultiRowFetch , якщо ви хочете розмістити на своєму власному зберігання; в іншому випадку рамках автоматично виділяти необхідні для зберігання. Докладніше, перегляньте статтю набір записів: вилучення записів у базову (ODBC) в Visual C++ програміста керівництва. Зверніть увагу, що визначення CRecordset::userAllocMultiRowBuffers без зазначення CRecordset::useMultiRowFetch призведе затвердження.
Зауваження
Ви повинні зателефонувати цієї функції-члена запустити запит, визначений набір записів. Перед викликом, відкриті, ви повинні побудувати набору записів об'єкта.
Цей набір записів підключення до джерела даних залежить від того, як побудовано набір записів перед викликом відкритим. Якщо ви передаєте CDatabase об'єкт в конструктор набір записів, які не підключено до джерела даних, цей член функція використовує GetDefaultConnect для відкриття об'єкта бази даних. Якщо ви передаєте NULL в recordset Конструктор, конструктор конструкції CDatabase об'єкт для вас, і відкриті намагається підключитися до об'єкта бази даних. Докладну інформацію про закриття записів та підключення до цих різних обставин побачити Закрити.
Примітка Доступ до джерела даних через CRecordset об'єкт завжди Загальні. На відміну від CDaoRecordset клас CRecordset об'єкт не можна використовувати для відкриття джерела даних для монопольного доступу.
Коли ви називаєте відкрито, на, зазвичай заяви SQL Виберіть , добору записів на основі критеріїв, показано в нижченаведеній таблиці.
Значення параметра lpszSQL
Записи вибрано визначається
Приклад
NULL
Рядок, повернутих GetDefaultSQL.
Ім'я таблиці SQL
Усі стовпці таблиці списку в DoFieldExchange або DoBulkFieldExchange.
"Клієнт"
Ім'я попередньо визначений запит (збережених процедур)
Стовпці, які визначено запит для повернення.
"{виклик OverDueAccts}"
Виберіть стовпець списку від Таблиця список
Указаний стовпці з указаного одну або декілька таблиць.
"Виберіть CustId, CustName від клієнта"
! Попередження Будьте обережні, не вставляти прогалин у ваш SQL рядок. Наприклад, якщо вставити пробіли між фігурна дужка і ЗАТЕЛЕФОНУВАТИ ключове слово MFC буде інтерпретувати як ім'я таблиці, рядок SQL і включити його в Виберіть заяву, яка призведе до виключення бути кинуті. Аналогічним чином, якщо попередньо визначений запит використовує виводу-параметр, не вставляти пробіл між фігурна дужка і що '?' символ. Нарешті, ви повинні не вставити пробіли перед фігурна дужка в заяві, ЗАТЕЛЕФОНУЙТЕ або перед Виберіть ключове слово в Виберіть заявою.
Звичайна процедура є передати NULLвідкритим; При цьому, Відкрити дзвінки GetDefaultSQL. Якщо ви використовуєте похідного класу CRecordset , GetDefualtSQL дає ім'я таблиці, вказаний в ClassWizard. Замість цього можна вказати іншу інформацію в параметрі lpszSQL.
Все, що ви проходите, відкриті конструкції останній рядок SQL для запиту (рядок може мати SQL де і ORDER BY положення, що додається до рядка lpszSQL , який ви пройшли) і потім виконує запит. Ви можете вивчити побудовані рядок за номером GetSQL після виклик Open. За додаткові відомості про те, як набір записів конструкції інструкцію SQL і відбору записів, перегляньте статтю набір записів: як набори записів виберіть записи (ODBC) в Visual C++ програміста керівництво.
Поле даних члени ваш клас набору записів пов'язані стовпців даних, який вибрано. Якщо будь-які записи повертаються, перший запис стає поточний запис.
Якщо потрібно настроїти параметри набору записів, наприклад, фільтрування або сортування, вкажіть ці після того, як ви побудувати набору записів об'єкта, але перш ніж ви називаєте відкриті. Якщо ви хочете оновити записи у наборі записів, після того, як набір записів уже відкрито, зателефонуйте Повторний запит.
У наведених нижче прикладах показати різні форми відкритий виклик.
/ / rs є на CRecordset або
/ / CRecordset, отриманих об'єкта
/ / Відкриті rs, використовуючи стандартний SQL-оператор,
/ / реалізувати закладки та вимкнення
/ / Перевірка брудні полів
RS.Відкрити (CRecordset::snapshot, &NULL,
nbsp; CRecordset::useBookmarks |
CRecordset::noDirtyFieldCheck);
/ / Пройти повне Оператор SELECT
/ / і відкритим як в динамічних бібліотек
RS.Відкрийте (CRecordset::dynaset,
_T ("виберіть L_Name від клієнта"));
/ / Прийняти всі настройки за замовчуванням
RS.(Відкриті)