Шаг 169 - Объект QueryDef

Описание
Объект QueryDef представляет сохраненное определение запроса в базе данных Microsoft Jet или временное определение запроса в рабочей области ODBCDirect.

Замечания
Объект QueryDef используют для определения запроса. Например, данный объект позволяет:

  1. С помощью свойства SQL задать или возвратить определение запроса.
  2. Задать или возвратить параметры запроса с помощью семейства Parameters объекта QueryDef.
  3. С помощью свойства Type возвратить значение, показывающее, выполняется ли в запросе выборка записей из существующей таблицы, создание новой таблицы, вставка записей из одной таблицы в другую, удаление записей или обновление записей.
  4. С помощью свойства MaxRecords ограничить количество записей, возвращаемых в запросе.
  5. С помощью свойства ODBCTimeout указать интервал ожидания для возвращения записей. Свойство ODBCTimeout применимо к любым запросам, в которых осуществляется доступ к данным ODBC.

В рабочей области Microsoft Jet пользователь также имеет возможность:

  1. С помощью свойства ReturnsRecords указать возвращение записей в запрос. Свойство ReturnsRecords определено только для запросов к серверу SQL.
  2. Использовать свойство Connect для создания запроса к серверу SQL, выполняющего запрос к базе данных ODC.

В рабочей области ODBCDirect пользователь также имеет возможность:

  1. С помощью свойства Prepare определить, следует ли вызывать программный интерфейс (API) ODBC SQLPrepare при выполнении запроса.
  2. С помощью свойства CacheSize определить временный буфер, в который помещаются записи, возвращаемые запросом.

Кроме того, имеется возможность создания временных объектов QueryDef. В отличие от постоянных объектов QueryDef, временные объекты QueryDef не сохраняются на диске и не добавляются в семейство QueryDefs. Временные объекты QueryDef полезны в запросах, которые повторно запускаются во время выполнения, но не требуются в сохраненном виде, в особенности, если их инструкции SQL создаются во время выполнения.
Постоянный объект QueryDef в рабочей области Microsoft Jet фактически является откомпилированной инструкцией SQL. Запросы с помощью постоянных объектов QueryDef выполняются существенно быстрее, чем при запуске эквивалентной инструкции SQL в методе OpenRecordset, поскольку при этом ядро базы данных Microsoft Jet не должно компилировать запрос перед его запуском.
Рекомендуется при доступе к внешней базе данных ядро Microsoft Jet использовать в объектах QueryDef версию языка SQL, используемую внешней базой данных. Например, можно создать запрос к серверу Microsoft SQL Server и сохранить его в объекте QueryDef. При необходимости использовать запрос SQL, предназначенный для ядра базы данных, отличного от Microsoft Jet, следует задать строку свойства Connect, указывающую внешний источник данных. Запрос с допустимым значением свойства Connect передается для обработки непосредственно на сервер внешней базы данных в обход ядра Microsoft Jet.
Для создания нового объекта QueryDef следует использовать метод CreateQueryDef. Если в рабочей области Microsoft Jet указать строку для аргумента имя или явно задать в свойстве Name нового объекта QueryDef строку, не являющуюся пустой строкой, будет создан постоянный объект QueryDef, который будет автоматически добавлен в семейство QueryDefs и сохранен на диске. Если задать пустую строку в аргументе имя или в свойстве Name, будет создан временный объект QueryDef.
В рабочей области ODBCDirect объект QueryDef всегда является временным. Все открытые объекты QueryDef содержатся в семействе QueryDefs. Закрытие объекта QueryDef приводит к его автоматическому удалению из семейства QueryDefs.
При ссылках на объект QueryDef используют его порядковый номер в семействе или значение свойства Name (имя):

QueryDefs(0)
QueryDefs("имя")
QueryDefs![имя]

Для ссылок на временные объекты QueryDef могут использоваться только объектные переменные, которым были присвоены эти объекты.


Предыдущий Шаг | Следующий Шаг | Оглавление
Автор Каев Артем - 10.04.2002