Поделиться через


Набор записей. Архитектура (ODBC)

Данный раздел относится к классам ODBC библиотеки MFC.

В этом разделе описаны элементы данных, составляющие архитектуру объекта набора записей.

  • Элементы данных полей

  • Элементы данных параметров

  • Использование элементов данных m_nFields и m_nParams

ПримечаниеПримечание

В этом разделе приведены сведения, относящиеся к объектам, производным от класса CRecordset, в котором групповая выборка строк не реализована.Если групповая операция со строками реализуется, архитектура определяется аналогичным образом.Описание различий см. в разделе Набор записей: групповая выборка записей ODBC.

Образец класса

При использовании мастера потребителей ODBC библиотеки MFC в Мастере добавления класса для объявления класса набора записей, производного от класса CRecordset, результирующий класс в общем виде будет иметь структуру, как показано в следующем образце класса:

class CCourse : public CRecordset
{
public:
   CCourse(CDatabase* pDatabase = NULL);
   ...
   CString m_strCourseID;
   CString m_strCourseTitle;
   CString m_strIDParam;
};

В начале класса мастер записывает набор элементов данных полей.При создании класса необходимо указать один или несколько элементов данных полей.Если класс является параметризованным, как и образец класса (с помощью элемента данных m_strIDParam), необходимо вручную добавить элементы данных параметров.Добавление параметров в класс с помощью мастера не поддерживается.

Элементы данных полей

Самыми важными элементами в классе набора записей являются элементы данных полей.Для каждого столбца, выбранного в источнике данных, класс содержит элемент данных соответствующего для этого столбца типа.Например, образец класса, показанный в начале данного раздела, имеет два элемента данных полей, относящихся к типу CString. Это элементы данных m_strCourseID и m_strCourseTitle.

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

При переходе пользователя к новой записи платформа использует элементы данных полей для представления текущей записи.Платформа обновляет элементы данных полей, заменяя значения предыдущей записи.Элементы данных полей также используются для обновления текущей и добавления новых записей.В процессе обновления записи необходимо указать значения для обновления. Для этого необходимо присвоить значения непосредственно элементу или элементам данных полей.

Элементы данных параметров

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

Как правило, параметр помогает сузить выбор, как показано в следующем примере.На основе образца класса, рассмотренного в начале данного раздела, объект набора записей может выполнить следующую инструкцию SQL:

SELECT CourseID, CourseTitle FROM Course WHERE CourseID = ?

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

SELECT CourseID, CourseTitle FROM Course WHERE CourseID = MATH101

С помощью определения элементов данных параметров платформа получает сведения о параметрах в строке SQL.Платформа осуществляет связывание параметра, и таким образом ODBC узнает, на какие значения необходимо заменить местозаполнитель.В приведенном примере результирующий набор записей содержит только запись из таблицы "Course", в которой столбцу "CourseID" было присвоено значение MATH101.Выбираются все указанные столбцы для данной записи.Можно задать такое количество параметров (и местозаполнителей), которое необходимо.

ПримечаниеПримечание

MFC не выполняет с параметрами никаких действий: в частности, в них не выполняется замена текста.Вместо этого MFC только сообщает ODBC, откуда необходимо получить параметры, после чего ODBC извлекает данные и выполняет необходимую параметризацию.

ПримечаниеПримечание

Порядок следования параметров имеет значение.Сведения о порядке следования параметров и другую информацию о параметрах см. в разделе Набор записей. Использование параметров для наборов записей (ODBC).

Использование элементов данных m_nFields и m_nParams

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

Дополнительные сведения и примеры см. в разделе Обмен полями записей. Использование RFX.

См. также

Основные понятия

Набор записей (ODBC)

Набор записей. Объявление класса таблицы (ODBC)

Обмен данными полями записей (RFX)