Описание
Объект QueryDef представляет сохраненное определение запроса в базе данных Microsoft Jet или временное определение запроса в рабочей области ODBCDirect.
Замечания
Объект QueryDef используют для определения запроса. Например, данный объект позволяет:
В рабочей области Microsoft Jet пользователь также имеет возможность:
В рабочей области ODBCDirect пользователь также имеет возможность:
Кроме того, имеется возможность создания временных объектов 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 могут использоваться только объектные переменные, которым были присвоены эти объекты.