CRecordset::Open

ВиртуальныйBOOLОткрытые (UINTnOpenType=AFX_DB_USE_DEFAULT_TYPE,LPCTSTRlpszSQL=,NULL,DWORDdwOptions=ни);
бросить ( CDBException, CMemoryException );

Возвращаемое значение

Ненулевое значение, если объект CRecordset был успешно открыт; в противном случае 0 Если CDatabase::Open (если под названием) возвращает 0.

Параметры

nOpenType

Примите значение по умолчанию, AFX_DB_USE_DEFAULT_TYPE, или использовать одно из следующих значений из перечисления OpenType:

lpszSQL

Указателем на строку с одним из следующих действий.:

dwOptions

Битовая маска, который можно указать комбинацию значений, перечисленных ниже. Некоторые из них являются взаимно исключающими. Значением по умолчанию является none.

Примечания

Необходимо вызвать эту функцию-член для запуска запроса, определенные в наборе записей. Прежде чем предоставить открытым, необходимо создать объект набора записей.

Этот набор записей подключение к источнику данных зависит как вы собрать набор записей перед вызовом открытым. Если объект CDatabase передается в конструктор набора записей, который не подключен к источнику данных, эта функция-член использует GetDefaultConnect для попытке открыть объект базы данных. Если значение NULL передается в конструктор набора записей, конструктор создает объект CDatabase для вас, и открытые попытки подключить объект базы данных. Для подробной информации о закрытия набора записей и связь этих различных обстоятельствах смотрите тесного.

Примечание   Доступ к источнику данных через объект CRecordset всегда разделяла. В отличие от класса CDaoRecordset нельзя использовать объект CRecordset для открытия источника данных с монопольным доступом.

При вызове открытым, запрос, обычно инструкцию SQL выберите , выбирает записи, основанные на критериях, указанных в следующей таблице.

Значение параметра lpszSQL Выбранных записей, определяется Пример
ЗНАЧЕНИЕ NULL Строка, возвращаемая GetDefaultSQL.
Имя таблицы SQL Все столбцы списка таблицы в DoFieldExchange или DoBulkFieldExchange.
 «Клиента»
Имя предопределенного запроса (хранимая процедура) Столбцы запроса определяется вернуться.
«{call OverDueAccts»}
- Выберите список столбцов из таблицы лист Указанные столбцы из указанной таблицы.
«ВЫБРАТЬ CustId, CustName от клиента»

! Предупреждение   Будьте внимательны, не вставить дополнительные пробелы в строке SQL. Например если вставить пробел между фигурная скобка и ВЫЗЫВАТЬ ключевое слово, MFC неправильно интерпретировать строку SQL как имя таблицы и включить его в инструкцией SELECT, который приведет к созданию исключения . Аналогично, если ваш предопределенный запрос использует параметр output, не вставлять пробелы между фигурных скобок и '?' символ. И наконец не добавьте пробел перед фигурная скобка в инструкции CALL или выберите ключевое слово в выбрать заявления.

Обычная процедура является передать NULL открытым; в этом случае открытый вызывает GetDefaultSQL. Если вы используете производного класса CRecordset , GetDefualtSQL дает имена таблицы, указанной в ClassWizard. Вместо этого можно указать другие сведения в параметре lpszSQL.

Все, что вы проходите, открытый создает окончательную строку SQL для запроса (строка может иметь предложения SQL где и ORDER BY , добавится к строке lpszSQL вы прошли), а затем выполняет запрос. Сконструированный строку можно проверить путем вызова GetSQL после вызова открытым. Для дополнительных сведений о том, как набор записей создает инструкцию SQL и выбирает записи, обратитесь к статье набор записей: как наборы записей выберите записей (ODBC) в Руководстве по Visual C++ программист.

Члены данных полей класса набора записей привязаны к столбцам данных, выбранных. Если возвращаются все записи, первая запись становится текущей записи.

Если требуется задать параметры для набора записей, таких как фильтра или сортировки, их укажите после создания объекта набора записей, но перед вызовом открытым. Для обновления записей в наборе записей, после того, как набор записей уже открыт, вызовите Requery.

Для получения дополнительных сведений, включая дополнительные примеры, обратитесь к статьям Набора записей (ODBC), набор записей: как наборы записей выберите записей (ODBC), и набор записей: создание и закрытие наборов записей (ODBC) в Руководстве по Visual C++ программист.

Пример

В следующих примерах кода показаны различные формы открытый вызов.

/ / rs является CRecordset или
/ / Производного от CRecordset объект

/ / Открыть rs, используя инструкцию SQL по умолчанию
/ / осуществить закладки и выключить
/ / Проверка автоматической грязный поля
RS.Открытый (CRecordset::snapshot, &NULL,
 nbsp;       CRecordset::useBookmarks |
         CRecordset::noDirtyFieldCheck);

/ / Пройти полный инструкции SELECT
/ / и открытыми как динамическое подмножество
RS.Открыть (CRecordset::dynaset,
         _T ("select L_Name от клиента"));

/ / Принимают все значения по умолчанию
RS.(Открытый)

Обзор CRecordsetЧлены класса | Иерархическая схема

См. также CRecordset::CRecordset, CRecordset::Close, CRecordset::GetDefaultSQL, CRecordset::GetSQL, CRecordset::m_strFilter, CRecordset::m_strSort, CRecordset::Requery

Index