Набор записей. Создание и закрытие наборов записей (ODBC)
Примечание.
Мастер потребителя MFC ODBC недоступен в Visual Studio 2019 и более поздних версиях. При этом вы по-прежнему можете создать потребитель вручную.
Этот раздел относится к классам ODBC библиотеки MFC.
Чтобы использовать набор записей, создайте объект набора записей и вызовите его функцию элемента Open
, чтобы выполнить запрос набора записей и выбрать записи. После завершения работы с набором записей закройте и удалите объект.
В этом разделе рассматриваются следующие вопросы.
Создание наборов записей во время выполнения
Перед созданием объектов набора записей в программе обычно вы записываете классы набора записей для конкретного приложения. Дополнительные сведения об этом предварительном этапе см. в разделе Добавление объекта-получателя ODBC MFC.
Откройте динамическое подмножество данных или объект моментального снимка, чтобы выбрать записи из источника данных. Тип создаваемого объекта зависит от того, что необходимо сделать с данными в приложении и что поддерживает ваш драйвер ODBC. Дополнительные сведения см. в разделе Динамическое подмножество данных и Моментальный снимок.
Открытие набора записей
Создайте объект класса, производного от
CRecordset
.Вы можете создать объект в куче или в кадре стека функции.
При необходимости измените поведение набора записей по умолчанию. Доступные параметры см. в разделе Настройка параметров набора записей.
Вызовите функцию элемента Open объекта.
В конструкторе передайте указатель на объект CDatabase
или передайте значение NULL, чтобы использовать объект временной базы данных, который платформа создает и открывает на основе строки подключения, возвращенной функцией элемента GetDefaultConnect. Объект CDatabase
может уже быть подключен к источнику данных.
Вызов к Open
использует SQL для выбора записей из источника данных. Первая выбранная запись (если таковые имеются) становится текущей записью. Значения полей этой записи хранятся в элементах данных полей объекта набора записей. Если записи были выбраны, функции элементов IsBOF
и IsEOF
возвращают 0.
В вызове Open у вас есть следующие возможности.
Укажите, является ли набор записей динамическим подмножеством или моментальным снимком. По умолчанию наборы записей открываются как моментальные снимки. Или вы можете указать набор записей только с перемещением вперед, который позволяет только прямую прокрутку по одной записи за раз.
По умолчанию набор записей использует тип по умолчанию, хранящийся в элементе данных
CRecordset
m_nDefaultType
. Мастера пишут код для инициализацииm_nDefaultType
в тип набора записей, выбранный в мастере. Вместо того чтобы принять это значение по умолчанию, можно заменить другой тип набора записей.Укажите строку, чтобы заменить инструкцию SQL SELECT по умолчанию, которую создает набор записей.
Укажите, предоставляется ли набор записей только для чтения или только для добавления. Наборы записей могут допускать полное обновление по умолчанию, но вы можете ограничить его только добавлением новых записей или запретить все обновления.
Приведенный ниже пример показывает, как открыть объект моментального снимка только для чтения класса CStudentSet
— класса конкретного приложения:
// Construct the snapshot object
CStudentSet rsStudent( NULL );
// Set options if desired, then open the recordset
if(!rsStudent.Open(CRecordset::snapshot, NULL, CRecordset::readOnly))
return FALSE;
// Use the snapshot to operate on its records...
После вызова Open
используйте функции элементов и элементы данных объекта для работы с записями. В некоторых случаях может потребоваться повторный запрос или обновление набора записей, чтобы включить изменения, которые произошли в источнике данных. Дополнительные сведения см. в разделе Recordset: Requerying a Recordset (ODBC).
Совет
Строка подключения, которую вы используете во время разработки, может не совпадать со строкой подключения, которая требуется вашим конечным пользователям. Сведения об обобщении приложения в этой связи см. в статье "Источник данных: управление подключениями (ODBC)".
Настройка параметров набора записей
После создания объекта набора записей и перед вызовом Open
для выбора записей может потребоваться задать некоторые параметры для управления поведением набора записей. Для всех наборов записей у вас есть следующие возможности.
Укажите фильтр для ограничения выбора записей.
Укажите порядок сортировки записей.
Укажите параметры, чтобы выбирать записи с помощью данных, полученных или вычисленных в среде выполнения.
Можно также задать следующий параметр, если условия подходящие:
- Если набор записей является обновляемым и поддерживает параметры блокировки, укажите метод блокировки, используемый для обновлений.
Примечание.
Чтобы повлиять на выбор записей, необходимо настроить эти параметры перед вызовом функции элемента Open
.
Закрытие набора записей
Когда вы закончите с набором записей, вы должны удалить его и освободить память.
Закрытие набора записей
Вызовите его функцию элемента Close.
Уничтожьте объект набора записей.
Если вы объявили его в кадре стека функции, объект будет удален автоматически, когда выйдет за пределы области действия. В противном случае используйте
delete
оператор.
Close
освобождает обработку HSTMT
набора записей. Он не удаляет объект C++.
См. также
Набор записей (ODBC)
Набор записей. Прокрутка (ODBC)
Набор записей. Добавление, обновление и удаление записей (ODBC)