Класс CDaoQueryDef

Представляет определение запроса или QueryDef, как правило, сохраненный в базе данных.

Синтаксис

class CDaoQueryDef : public CObject

Участники

Открытые конструкторы

Имя Описание
CDaoQueryDef::CDaoQueryDef Формирует объект CDaoQueryDef. Следующий звонок Open или Create, в зависимости от ваших потребностей.

Открытые методы

Имя Описание
CDaoQueryDef::Append Добавляет запрос к коллекции QueryDefs базы данных в качестве сохраненного запроса.
CDaoQueryDef::CanUpdate Возвращает ненулевое значение, если запрос может обновить базу данных.
CDaoQueryDef::Close Закрывает объект querydef. Уничтожайте объект C++ после завершения работы с ним.
CDaoQueryDef::Create Создает базовый объект DAO querydef. Используйте запрос в качестве временного запроса или вызов Append , чтобы сохранить его в базе данных.
CDaoQueryDef::Execute Выполняет запрос, определенный объектом querydef.
CDaoQueryDef::Get Подключение Возвращает строка подключения, связанный с запросом. Строка подключения определяет источник данных. (Только для сквозных запросов SQL; в противном случае пустая строка.)
CDaoQueryDef::GetDateCreated Возвращает дату создания сохраненного запроса.
CDaoQueryDef::GetDateLastUpdated Возвращает дату последнего обновления сохраненного запроса.
CDaoQueryDef::GetFieldCount Возвращает количество полей, определенных в запросе.
CDaoQueryDef::GetFieldInfo Возвращает сведения о указанном поле, определенном в запросе.
CDaoQueryDef::GetName Возвращает имя запроса.
CDaoQueryDef::GetODBCTimeout Возвращает значение времени ожидания, используемое ODBC (для запроса ODBC) при выполнении запроса. Это определяет, сколько времени требуется для выполнения действия запроса.
CDaoQueryDef::GetParameterCount Возвращает количество параметров, определенных для запроса.
CDaoQueryDef::GetParameterInfo Возвращает сведения о указанном параметре для запроса.
CDaoQueryDef::GetParamValue Возвращает значение указанного параметра в запрос.
CDaoQueryDef::GetRecordsAffected Возвращает количество записей, затронутых запросом действия.
CDaoQueryDef::GetReturnsRecords Возвращает ненулевое значение, если запрос, определенный запросом, возвращает записи.
CDaoQueryDef::GetSQL Возвращает строку SQL, указывающую запрос, определенный в запросе.
CDaoQueryDef::GetType Возвращает тип запроса: удаление, обновление, добавление, создание таблицы и т. д.
CDaoQueryDef::IsOpen Возвращает ненулевое значение, если запрос открыт и может быть выполнен.
CDaoQueryDef::Open Открывает существующее значение querydef, хранящееся в коллекции QueryDefs базы данных.
CDaoQueryDef::Set Подключение Задает строка подключения для сквозного запроса SQL в источнике данных ODBC.
CDaoQueryDef::SetName Задает имя сохраненного запроса, заменив имя, используемое при создании запроса.
CDaoQueryDef::SetODBCTimeout Задает значение времени ожидания, используемое ODBC (для запроса ODBC) при выполнении запроса.
CDaoQueryDef::SetParamValue Задает для запроса значение указанного параметра.
CDaoQueryDef::SetReturnsRecords Указывает, возвращает ли запрос запись. Установка этого атрибута в значение TRUE допустима только для сквозных запросов SQL.
CDaoQueryDef::SetSQL Задает строку SQL, указывающую запрос, определенный в запросе.

Открытые члены данных

Имя Описание
CDaoQueryDef::m_pDAOQueryDef Указатель на интерфейс OLE для базового объекта DAO querydef.
CDaoQueryDef::m_pDatabase Указатель на CDaoDatabase объект, с которым связан запрос. Запрос может быть сохранен в базе данных или нет.

Замечания

Querydef — это объект доступа к данным, содержащий инструкцию SQL, описывающую запрос, и его свойства, такие как Date Create и ODBC Timeout. Можно также создавать временные объекты querydef, не сохраняя их, но это удобно ( и гораздо эффективнее) для сохранения часто используемых повторно запросов в базе данных. Объект CDaoDatabase поддерживает коллекцию, называемую коллекцией QueryDefs, которая содержит сохраненные запросы.

Примечание.

Классы базы данных DAO отличаются от классов баз данных MFC на основе Подключение тивности открытой базы данных (ODBC). Все имена классов базы данных DAO имеют префикс CDao. Вы по-прежнему можете получить доступ к источникам данных ODBC с помощью классов DAO. Как правило, классы MFC на основе DAO более способны, чем классы MFC на основе ODBC; Классы на основе DAO могут получать доступ к данным, включая драйверы ODBC, через собственный ядро СУБД. Классы на основе DAO также поддерживают операции языка определения данных (DDL), такие как добавление таблиц через классы, без вызова DAO напрямую.

Использование

Используйте объекты querydef либо для работы с существующим сохраненным запросом, либо для создания нового сохраненного запроса или временного запроса:

  1. Во всех случаях сначала создайте CDaoQueryDef объект, указав указатель на объект CDaoDatabase , к которому принадлежит запрос.

  2. Затем выполните следующие действия в зависимости от того, что вы хотите:

    • Чтобы использовать существующий сохраненный запрос, вызовите функцию Open member объекта querydef, указав имя сохраненного запроса.

    • Чтобы создать сохраненный запрос, вызовите функцию создания элемента объекта querydef, указав имя запроса. Затем вызовите Добавление , чтобы сохранить запрос, добавив его в коллекцию QueryDefs базы данных. Create помещает запрос в открытое состояние, поэтому после вызова не вызывайте CreateOpen.

    • Чтобы создать временный запрос, вызовите Create. Передайте пустую строку для имени запроса. Не вызывайте Append.

Завершив использование объекта querydef, вызовите ее функцию-член Close , а затем уничтожить объект querydef.

Совет

Самый простой способ создать сохраненные запросы — создать их и сохранить в базе данных с помощью Microsoft Access. Затем их можно открыть и использовать в коде MFC.

Назначения

Объект querydef можно использовать для любого из следующих целей:

  • CDaoRecordset Создание объекта

  • Вызов функции-члена объекта Execute для непосредственного выполнения запроса действия или сквозного запроса SQL

Объект querydef можно использовать для любого типа запроса, включая выбор, действие, перекрестное выполнение, удаление, обновление, добавление, создание таблицы, определение данных, сквозные, объединение и массовые запросы SQL. Тип запроса определяется содержимым предоставленной инструкции SQL. Сведения о типах запросов см. в функциях-членах ExecuteGetType . Наборы записей обычно используются для запросов, возвращающих строки, как правило, с помощью SELECT ... FROM ключевое слово. Execute чаще всего используется для массовых операций. Дополнительные сведения см. в разделе Execute и CDaoRecordset.

Запросы и наборы записей

Чтобы использовать объект querydef для создания CDaoRecordset объекта, обычно создается или открывается запрос, как описано выше. Затем создайте объект набора записей, передав указатель на объект querydef при вызове CDaoRecordset::Open. Передаваемая функция запроса должна находиться в открытом состоянии. Дополнительные сведения см. в классе CDaoRecordset.

Невозможно использовать запрос для создания набора записей (наиболее распространенного использования для запроса), если он не находится в открытом состоянии. Поместите запрос в открытое состояние, вызвав либоOpen.Create

Внешние базы данных

Объекты Querydef — предпочтительный способ использования собственного диалекта SQL внешнего ядра СУБД. Например, можно создать запрос Transact SQL (как используется в Microsoft SQL Server) и сохранить его в объекте querydef. Если необходимо использовать SQL-запрос, не основанный на ядре СУБД Microsoft Jet, необходимо предоставить строка подключения, указывающий на внешний источник данных. Запросы с допустимыми строка подключения обходят ядро СУБД и передают запрос непосредственно внешнему серверу базы данных для обработки.

Совет

Предпочтительным способом работы с таблицами ODBC является присоединение их к Microsoft Jet (. База данных MDB.

Дополнительные сведения см. в разделах "Объект QueryDef", "QueryDefs Collection" и "Объект CdbDatabase" в пакете SDK DAO.

Иерархия наследования

CObject

CDaoQueryDef

Требования

Header: afxdao.h

CDaoQueryDef::Append

Вызовите эту функцию-член после вызова Create , чтобы создать новый объект querydef.

virtual void Append();

Замечания

Append сохраняет запрос в базе данных путем добавления объекта в коллекцию QueryDefs базы данных. Запрос можно использовать в качестве временного объекта, не добавляя его, но если требуется сохранить его, необходимо вызвать Append.

При попытке добавить временный объект querydef MFC создает исключение типа CDaoException.

CDaoQueryDef::CanUpdate

Вызовите эту функцию-член, чтобы определить, можно ли изменить значение запроса, например изменить его имя или строку SQL.

BOOL CanUpdate();

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

Ненулевое значение, если разрешено изменять значение querydef; в противном случае — 0.

Замечания

Можно изменить значение querydef, если:

  • Он не основан на базе данных, открытой только для чтения.

  • У вас есть разрешения на обновление базы данных.

    Это зависит от того, реализованы ли функции безопасности. MFC не обеспечивает поддержку безопасности; Необходимо реализовать его самостоятельно, вызвав DAO напрямую или с помощью Microsoft Access. См. раздел "Свойства разрешений" в справке DAO.

CDaoQueryDef::CDaoQueryDef

Формирует объект CDaoQueryDef.

CDaoQueryDef(CDaoDatabase* pDatabase);

Параметры

pDatabase
Указатель на открытый объект CDaoDatabase .

Замечания

Объект может представлять существующий запрос, хранящийся в коллекции QueryDefs базы данных, новый запрос, хранящийся в коллекции, или временный запрос, который не должен храниться. Следующий шаг зависит от типа запроса:

  • Если объект представляет существующий запрос, вызовите функцию Open member объекта, чтобы инициализировать ее.

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

  • Если объект представляет временный запрос (не сохраняться в базе данных), вызовите Createпустую строку для имени запроса. После вызова Createинициализировать запрос, напрямую задав его атрибуты. Не вызывайте Append.

Чтобы задать атрибуты запроса, можно использовать функции-члены SetName, SetSQL, SetSQL, Set Подключение, SetODBCTimeout и SetReturnsRecords.

Завершив работу с объектом querydef, вызовите ее функцию -член Close . Если у вас есть указатель на запрос, используйте delete оператор для уничтожения объекта C++.

CDaoQueryDef::Close

Вызовите эту функцию-член после завершения использования объекта querydef.

virtual void Close();

Замечания

Закрытие запроса освобождает базовый объект DAO, но не уничтожает сохраненный объект DAO querydef или объект C++ CDaoQueryDef . Это не то же самое, что и CDaoDatabase::D eleteQueryDef, который удаляет запрос из коллекции QueryDefs базы данных в DAO (если не временный запрос).

CDaoQueryDef::Create

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

virtual void Create(
    LPCTSTR lpszName = NULL,
    LPCTSTR lpszSQL = NULL);

Параметры

lpszName
Уникальное имя запроса, сохраненного в базе данных. Дополнительные сведения о строке см. в разделе "Метод CreateQueryDef" в справке DAO. Если вы принимаете значение по умолчанию, пустая строка создается временный запрос. Такой запрос не сохраняется в коллекции QueryDefs.

lpszSQL
Строка SQL, определяющая запрос. Если вы принимаете значение NULL по умолчанию, необходимо позже вызвать SetSQL , чтобы задать строку. До этого запрос не определен. Однако можно использовать неопределенный запрос для открытия набора записей; Дополнительные сведения см. в разделе "Примечания". Перед добавлением запроса в коллекцию QueryDefs необходимо определить инструкцию SQL.

Замечания

Если передать имя в lpszName, можно вызвать Добавление , чтобы сохранить запрос в коллекции QueryDefs базы данных. В противном случае объект является временным запросом и не сохраняется. В любом случае запрос находится в открытом состоянии, и его можно использовать для создания объекта CDaoRecordset или вызова функции элемента Execute querydef.

Если вы не предоставляете инструкцию SQL в lpszSQL, вы не можете запустить запрос, Execute но его можно использовать для создания набора записей. В этом случае MFC использует инструкцию SQL набора записей по умолчанию.

CDaoQueryDef::Execute

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

virtual void Execute(int nOptions = dbFailOnError);

Параметры

nOptions
Целое число, определяющее характеристики запроса. Дополнительные сведения см. в разделе "Метод выполнения" в справке DAO. Оператор bitwise-OR (|) можно использовать для объединения следующих констант для этого аргумента:

  • dbDenyWrite Запретить разрешение на запись другим пользователям.

  • dbInconsistent Несогласованные обновления.

  • dbConsistent Согласованные обновления.

  • dbSQLPassThrough Сквозная передача SQL. Приводит к передаче инструкции SQL в базу данных ODBC для обработки.

  • dbFailOnError Значение по умолчанию. Откат обновлений, если возникает ошибка и сообщить об ошибке пользователю.

  • dbSeeChanges Создайте ошибку во время выполнения, если другой пользователь изменяет данные, которые вы редактируете.

Примечание.

Описание терминов "непоследовательный" и "согласованный", см. в разделе "Метод выполнения" в справке DAO.

Замечания

Объекты querydef, используемые для выполнения таким образом, могут представлять только один из следующих типов запросов:

  • Запросы действий

  • Запросы сквозной передачи SQL

Execute не работает для запросов, возвращающих записи, например выбор запросов. Execute обычно используется для запросов массовой операции, таких как UPDATE, INSERT или SELECT INTO, или для операций языка определения данных (DDL).

Совет

Предпочтительным способом работы с источниками данных ODBC является присоединение таблиц к Microsoft Jet (. База данных MDB. Дополнительные сведения см. в разделе "Доступ к внешним базам данных с помощью DAO" в справке DAO.

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

Если вы включаете оба dbInconsistent или dbConsistent если вы не включаете, результатом является значение по умолчанию dbInconsistent.

Execute не возвращает набор записей. Использование Execute запроса, который выбирает записи, приводит к тому, что MFC создает исключение типа CDaoException.

CDaoQueryDef::Get Подключение

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

CString GetConnect();

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

CString, содержащий строка подключения для запроса.

Замечания

Эта функция используется только с источниками данных ODBC и определенными драйверами ISAM. Он не используется с Microsoft Jet (. Базы данных MDB; В этом случае GetConnect возвращает пустую строку. Дополнительные сведения см. в разделе Set Подключение.

Совет

Предпочтительным способом работы с таблицами ODBC является присоединение их к таблицам ODBC. База данных MDB. Дополнительные сведения см. в разделе "Доступ к внешним базам данных с помощью DAO" в справке DAO.

Сведения о строка подключения см. в разделе "Свойство Подключение" в справке DAO.

CDaoQueryDef::GetDateCreated

Вызовите эту функцию-член, чтобы получить дату создания объекта querydef.

COleDateTime GetDateCreated();

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

Объект COleDateTime, содержащий дату и время создания запроса.

Замечания

Дополнительные сведения см. в разделе "Свойства DateCreated, LastUpdated" в справке DAO.

CDaoQueryDef::GetDateLastUpdated

Вызовите эту функцию-член, чтобы получить дату последнего обновления объекта querydef — при изменении любого из его свойств, таких как имя, строка SQL или его строка подключения.

COleDateTime GetDateLastUpdated();

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

Объект COleDateTime, содержащий дату и время последнего обновления запроса.

Замечания

Дополнительные сведения см. в разделе "Свойства DateCreated, LastUpdated" в справке DAO.

CDaoQueryDef::GetFieldCount

Вызовите эту функцию-член, чтобы получить количество полей в запросе.

short GetFieldCount();

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

Количество полей, определенных в запросе.

Замечания

GetFieldCount полезен для цикла по всем полям в запросе. Для этого используйте GetFieldCount в сочетании с GetFieldInfo.

CDaoQueryDef::GetFieldInfo

Вызовите эту функцию-член, чтобы получить различные типы сведений о поле, определенное в запросе.

void GetFieldInfo(
    int nIndex,
    CDaoFieldInfo& fieldinfo,
    DWORD dwInfoOptions = AFX_DAO_PRIMARY_INFO);

void GetFieldInfo(
    LPCTSTR lpszName,
    CDaoFieldInfo& fieldinfo,
    DWORD dwInfoOptions = AFX_DAO_PRIMARY_INFO);

Параметры

Nindex
Отсчитываемый от нуля индекс требуемого поля в коллекции полей запроса для поиска по индексу.

Fieldinfo
Ссылка на CDaoFieldInfo объект, возвращающий запрошенные сведения.

dwInfoOptions
Параметры, указывающие, какие сведения о поле для получения. Доступные параметры перечислены здесь вместе с тем, что они вызывают возврат функции:

  • AFX_DAO_PRIMARY_INFO (по умолчанию), тип, размер, атрибуты

  • AFX_DAO_SECONDARY_INFO первичные сведения плюс: порядковое положение, обязательный, разрешить нулевую длину, исходное поле, внешнее имя, исходную таблицу, сортировку порядка

  • AFX_DAO_ALL_INFO основная и вторичная информация плюс: значение по умолчанию, текст проверки, правило проверки

lpszName
Строка, содержащая имя требуемого поля для поиска по имени. Можно использовать CString.

Замечания

Описание сведений, возвращаемых в fieldinfo, см. в структуре CDaoFieldInfo. Эта структура содержит элементы, соответствующие описательным сведениям в dwInfoOptions выше. Если вы запрашиваете один уровень информации, вы также получите все предыдущие уровни информации.

CDaoQueryDef::GetName

Вызовите эту функцию-член, чтобы получить имя запроса, представленного запросом.

CString GetName();

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

Имя запроса.

Замечания

Имена querydef — это уникальные пользовательские имена. Дополнительные сведения о именах запросов см. в разделе "Свойство name" в справке DAO.

CDaoQueryDef::GetODBCTimeout

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

short GetODBCTimeout();

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

Количество секунд до истечения времени ожидания запроса.

Замечания

Сведения об этом ограничении времени см. в разделе "Свойство ODBCTimeout" в справке DAO.

Совет

Предпочтительным способом работы с таблицами ODBC является присоединение их к Microsoft Jet (. База данных MDB. Дополнительные сведения см. в разделе "Доступ к внешним базам данных с помощью DAO" в справке DAO.

CDaoQueryDef::GetParameterCount

Вызовите эту функцию-член, чтобы получить количество параметров в сохраненном запросе.

short GetParameterCount();

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

Количество параметров, определенных в запросе.

Замечания

GetParameterCount полезен для циклического просмотра всех параметров в запросе. Для этого используйте GetParameterCount в сочетании с GetParameterInfo.

Дополнительные сведения см. в разделах "Объект параметров", "Коллекция параметров" и "Объявление ПАРАМЕТРОВ (SQL)" в справке DAO.

CDaoQueryDef::GetParameterInfo

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

void GetParameterInfo(
    int nIndex,
    CDaoParameterInfo& paraminfo,
    DWORD dwInfoOptions = AFX_DAO_PRIMARY_INFO);

void GetParameterInfo(
    LPCTSTR lpszName,
    CDaoParameterInfo& paraminfo,
    DWORD dwInfoOptions = AFX_DAO_PRIMARY_INFO);

Параметры

Nindex
Отсчитываемый от нуля индекс требуемого параметра в коллекции параметров querydef для поиска по индексу.

paraminfo
Ссылка на объект CDaoParameterInfo , возвращающий запрошенные сведения.

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

  • имя AFX_DAO_PRIMARY_INFO (по умолчанию), тип

lpszName
Строка, содержащая имя требуемого параметра, для подстановки по имени. Можно использовать CString.

Замечания

Описание сведений, возвращаемых в paraminfo, см. в структуре CDaoParameterInfo. Эта структура содержит элементы, соответствующие описательным сведениям в dwInfoOptions выше.

Дополнительные сведения см. в разделе "Объявление ПАРАМЕТРОВ (SQL)" в справке DAO.

CDaoQueryDef::GetParamValue

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

virtual COleVariant GetParamValue(LPCTSTR lpszName);
virtual COleVariant GetParamValue(int nIndex);

Параметры

lpszName
Имя параметра, значение которого требуется, для поиска по имени.

Nindex
Отсчитываемый от нуля индекс параметра в коллекции параметров запроса для поиска по индексу. Это значение можно получить с помощью вызовов GetParameterCount и GetParameterInfo.

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

Объект класса COleVariant , содержащий значение параметра.

Замечания

Вы можете получить доступ к параметру по имени или по порядковой позиции в коллекции.

Дополнительные сведения см. в разделе "Объявление ПАРАМЕТРОВ (SQL)" в справке DAO.

CDaoQueryDef::GetRecordsAffected

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

long GetRecordsAffected();

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

Количество затронутых записей.

Замечания

Возвращаемое число не будет отражать изменения в связанных таблицах, когда каскадные обновления или удаления внесены в силу.

Дополнительные сведения см. в разделе "RecordsAffected Property" в справке DAO.

CDaoQueryDef::GetReturnsRecords

Вызовите эту функцию-член, чтобы определить, основан ли запрос на основе запроса, возвращающего записи.

BOOL GetReturnsRecords();

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

Ненулевое значение, если запрос основан на запросе, который возвращает записи; в противном случае — 0.

Замечания

Эта функция-член используется только для сквозных запросов SQL. Дополнительные сведения о запросах SQL см. в функции "Выполнение члена". Дополнительные сведения о работе с сквозными запросами SQL см. в функции-члене SetReturnsRecords .

Дополнительные сведения см. в разделе "Свойство ReturnsRecords" в справке DAO.

CDaoQueryDef::GetSQL

Вызовите эту функцию-член, чтобы получить инструкцию SQL, которая определяет запрос, на котором основан запрос.

CString GetSQL();

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

Инструкция SQL, определяющая запрос, на котором основан запрос.

Замечания

Затем вы, вероятно, анализируете строку для ключевое слово, имен таблиц и т. д.

Дополнительные сведения см. в разделах "Свойство SQL", "Сравнение Microsoft Jet ядро СУБД SQL и ANSI SQL" и "Запрос базы данных с помощью SQL в коде" в справке DAO.

CDaoQueryDef::GetType

Вызовите эту функцию-член, чтобы определить тип запроса запроса.

short GetType();

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

Тип запроса, определенного с помощью запроса. Дополнительные сведения см. в разделе "Примечания".

Замечания

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

  • dbQSelect Выберите

  • Действие dbQAction

  • dbQCrosstab Перекрестного

  • dbQDelete Delete

  • dbQUpdate Update

  • dbQAppend Добавить

  • dbQMakeTable Создание таблицы

  • dbQDDL Определение данных

  • dbQSQLPassThrough Сквозная передача

  • dbQSetOperation Союза

  • dbQSPTBulk Используется для dbQSQLPassThrough указания запроса, который не возвращает записи.

Примечание.

Чтобы создать сквозной запрос SQL, не устанавливайте константу dbSQLPassThrough . Это автоматически устанавливается ядром СУБД Microsoft Jet при создании объекта querydef и задания строка подключения.

Сведения о строках SQL см. в разделе GetSQL. Сведения о типах запросов см. в разделе "Выполнение".

CDaoQueryDef::IsOpen

Вызовите эту функцию-член, чтобы определить, открыт ли CDaoQueryDef объект в данный момент.

BOOL IsOpen() const;

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

Ненулевое CDaoQueryDef значение, если объект открыт в данный момент; в противном случае — значение 0.

Замечания

Запрос должен находиться в открытом состоянии перед вызовом Execute или созданием объекта CDaoRecordset . Чтобы поместить запрос в открытый вызов состояния либо Create (for new querydef), либо Open (для существующего запроса).

CDaoQueryDef::m_pDatabase

Содержит указатель на объект CDaoDatabase , связанный с объектом querydef.

Замечания

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

CDaoQueryDef::m_pDAOQueryDef

Содержит указатель на интерфейс OLE для базового объекта DAO querydef.

Замечания

Этот указатель предоставляется для полноты и согласованности с другими классами. Тем не менее, поскольку MFC довольно полностью инкапсулирует DAO querydefs, вам вряд ли потребуется. Если вы используете его, сделайте это осторожно , в частности, не изменяйте значение указателя, если вы не знаете, что вы делаете.

CDaoQueryDef::Open

Вызовите эту функцию-член для открытия запроса, ранее сохраненного в коллекции QueryDefs базы данных.

virtual void Open(LPCTSTR lpszName = NULL);

Параметры

lpszName
Строка, содержащая имя открываемого сохраненного запроса. Можно использовать CString.

Замечания

После открытия querydef можно вызвать функцию-член Execute или использовать querydef для создания объекта CDaoRecordset .

CDaoQueryDef::Set Подключение

Вызовите эту функцию-член, чтобы задать строка подключения объекта querydef.

void SetConnect(LPCTSTR lpszConnect);

Параметры

lpsz Подключение
Строка, содержащая строка подключения для связанного объекта CDaoDatabase.

Замечания

Строка подключения используется для передачи дополнительных сведений в ODBC и некоторых драйверов ISAM по мере необходимости. Он не используется для Microsoft Jet (. Базы данных MDB).

Совет

Предпочтительным способом работы с таблицами ODBC является присоединение их к таблицам ODBC. База данных MDB.

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

Дополнительные сведения о структуре строка подключения и примерах компонентов строка подключения см. в разделе "Свойство Подключение" в справке DAO.

CDaoQueryDef::SetName

Вызовите эту функцию-член, если вы хотите изменить имя запроса, которое не является временным.

void SetName(LPCTSTR lpszName);

Параметры

lpszName
Строка, содержащая новое имя для нетемпорного запроса в связанном объекте CDaoDatabase .

Замечания

Имена querydef являются уникальными, определяемыми пользователем именами. Перед добавлением объекта querydef в коллекцию QueryDefs можно вызвать SetName вызов.

CDaoQueryDef::SetODBCTimeout

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

void SetODBCTimeout(short nODBCTimeout);

Параметры

nODBCTimeout
Количество секунд до истечения времени ожидания запроса.

Замечания

Эта функция-член позволяет переопределить количество секунд по умолчанию до последующих операций с подключенным источником данных "время ожидания". Операция может истекать из-за проблем с доступом к сети, чрезмерного времени обработки запросов и т. д. Вызов SetODBCTimeout перед выполнением запроса с этим запросом, если вы хотите изменить значение времени ожидания запроса. (Так как ODBC повторно использует подключения, время ожидания одинаково для всех клиентов в одном подключении.)

Значение по умолчанию для времени ожидания запроса составляет 60 секунд.

CDaoQueryDef::SetParamValue

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

virtual void SetParamValue(
    LPCTSTR lpszName,
    const COleVariant& varValue);

virtual void SetParamValue(
    int nIndex,
    const COleVariant& varValue);

Параметры

lpszName
Имя параметра, значение которого необходимо задать.

varValue
Заданное значение; см. примечания.

Nindex
Порядковое положение параметра в коллекции параметров запроса. Это значение можно получить с помощью вызовов GetParameterCount и GetParameterInfo.

Замечания

Параметр должен быть уже установлен в составе строки SQL запроса. Вы можете получить доступ к параметру по имени или по порядковой позиции в коллекции.

Укажите значение, которое нужно задать в качестве COleVariant объекта. Сведения о настройке требуемого значения и типа в объекте COleVariant см. в классе COleVariant.

CDaoQueryDef::SetReturnsRecords

Вызовите эту функцию-член в рамках процесса настройки сквозного запроса SQL во внешнюю базу данных.

void SetReturnsRecords(BOOL bReturnsRecords);

Параметры

bReturnsRecords
Передайте значение TRUE, если запрос во внешней базе данных возвращает записи; в противном случае — ЗНАЧЕНИЕ FALSE.

Замечания

В таком случае необходимо создать запрос и задать его свойства с помощью других CDaoQueryDef функций-членов. Описание внешних баз данных см. в разделе Set Подключение.

CDaoQueryDef::SetSQL

Вызовите эту функцию-член, чтобы задать инструкцию SQL, выполняемую запросом.

void SetSQL(LPCTSTR lpszSQL);

Параметры

lpszSQL
Строка, содержащая полную инструкцию SQL, подходящую для выполнения. Синтаксис этой строки зависит от СУБД, предназначенных для запроса. Обсуждение синтаксиса, используемого в ядре СУБД Microsoft Jet, см. в разделе "Создание инструкций SQL в коде" в справке DAO.

Замечания

Обычное использование SetSQL настраивает объект querydef для использования в сквозном запросе SQL. (Синтаксис сквозных запросов SQL в целевой СУБД см. в документации по СУБД.

См. также

Класс CObject
Диаграмма иерархии
Класс CDaoRecordset
Класс CDaoDatabase
Класс CDaoTableDef
Класс CDaoException