Класс CDaoQueryDef
Представляет определение запроса или QueryDef, как правило, сохраненный в базе данных.
Примечание.
Объект доступа к данным (DAO) поддерживается через Office 2013. DAO 3.6 является окончательной версией и устарела.
Синтаксис
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::GetConnect | Возвращает строка подключения, связанный с запросом. Строка подключения определяет источник данных. (Только для сквозных запросов 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::SetConnect | Задает строка подключения для сквозного запроса 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 отличаются от классов баз данных Microsoft Foundation (MFC) на основе open Database Connectivity (ODBC). Все имена классов базы данных DAO имеют префикс CDao. Вы по-прежнему можете получить доступ к источникам данных ODBC с помощью классов DAO. Как правило, классы MFC на основе DAO более способны, чем классы MFC на основе ODBC; Классы на основе DAO могут получать доступ к данным, включая драйверы ODBC, через собственный ядро СУБД. Классы на основе DAO также поддерживают операции языка определения данных (DDL), такие как добавление таблиц через классы, без вызова DAO напрямую.
Использование
Используйте объекты querydef либо для работы с существующим сохраненным запросом, либо для создания нового сохраненного запроса или временного запроса:
Во всех случаях сначала создайте
CDaoQueryDef
объект, указав указатель на объект CDaoDatabase , к которому принадлежит запрос.Затем выполните следующие действия в зависимости от того, что вы хотите:
Чтобы использовать существующий сохраненный запрос, вызовите функцию Open member объекта querydef, указав имя сохраненного запроса.
Чтобы создать сохраненный запрос, вызовите функцию создания элемента объекта querydef, указав имя запроса. Затем вызовите Добавление , чтобы сохранить запрос, добавив его в коллекцию QueryDefs базы данных.
Create
помещает запрос в открытое состояние, поэтому после вызоваCreate
не вызываетсяOpen
.Чтобы создать временный запрос, вызовите
Create
. Передайте пустую строку для имени запроса. Не вызывайтеAppend
.
Завершив использование объекта querydef, вызовите ее функцию-член Close , а затем уничтожить объект querydef.
Совет
Самый простой способ создать сохраненные запросы — создать их и сохранить в базе данных с помощью Microsoft Access. Затем их можно открыть и использовать в коде MFC.
Назначения
Объект querydef можно использовать для любого из следующих целей:
CDaoRecordset
Создание объектаВызов функции-члена объекта
Execute
для непосредственного выполнения запроса действия или сквозного запроса SQL
Объект querydef можно использовать для любого типа запроса, включая выбор, действие, перекрестное выполнение, удаление, обновление, добавление, создание таблицы, определение данных, сквозные, объединение и массовые запросы SQL. Содержимое инструкции SQL, которую вы предоставляете, определяет тип запроса. Сведения о типах запросов см. в функциях-членах и GetType
функциях-членахExecute
. Наборы записей обычно используются для запросов, возвращающих строки, обычно запросы с помощью 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.
Иерархия наследования
CDaoQueryDef
Требования
Заголовок: afxdao.h
CDaoQueryDef::Append
Вызовите эту функцию-член после вызова Create , чтобы создать новый объект querydef.
virtual void Append();
Замечания
Append
сохраняет запрос в базе данных путем добавления объекта в коллекцию QueryDefs базы данных. Запрос можно использовать в качестве временного объекта, не добавляя его, но если требуется сохранить его, необходимо вызвать Append
.
При попытке добавить временный объект querydef MFC создает исключение типа CDaoException.
CDaoQueryDef::CanUpdate
Вызовите эту функцию-член, чтобы определить, можно ли изменить значение querydef, например изменить его имя или строку SQL.
BOOL CanUpdate();
Возвращаемое значение
Ненулевое значение, если можно изменить запрос; в противном случае — 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, SetConnect, 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::GetConnect
Вызовите эту функцию-член, чтобы получить строка подключения, связанную с источником данных запроса.
CString GetConnect();
Возвращаемое значение
ОбъектCString
, содержащий строка подключения для запроса.
Замечания
Эта функция используется только с источниками данных ODBC и определенными драйверами ISAM. Он не используется с базами данных Microsoft Jet (.MDB
), в этом случае GetConnect
возвращает пустую строку. Дополнительные сведения см. в разделе SetConnect
.
Совет
Предпочтительным способом работы с таблицами 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
.
Замечания
Описание возвращаемых сведений смCDaoParameterInfo
. в paraminfo
структуре. Эта структура содержит элементы, соответствующие описательным сведениям, приведенным 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
DeletedbQUpdate
UpdatedbQAppend
ПрибавлятьdbQMakeTable
Создание таблицыdbQDDL
Определение данныхdbQSQLPassThrough
Сквозная передачаdbQSetOperation
СоюзdbQSPTBulk
Используется дляdbQSQLPassThrough
указания запроса, который не возвращает записи.
Примечание.
Чтобы создать сквозной запрос SQL, не устанавливайте константу dbSQLPassThrough
. Это автоматически устанавливается ядром СУБД Microsoft Jet при создании объекта querydef и задания строка подключения.
Сведения о строках SQL см. в разделе GetSQL. Сведения о типах запросов см. в разделе "Выполнение".
CDaoQueryDef::IsOpen
Вызовите эту функцию-член, чтобы определить, открыт ли CDaoQueryDef
объект в данный момент.
BOOL IsOpen() const;
Возвращаемое значение
Ненулевое CDaoQueryDef
значение, если объект открыт в данный момент; в противном случае — значение 0.
Замечания
Запрос должен находиться в открытом состоянии перед вызовом Execute
или созданием CDaoRecordset
объекта. Чтобы поместить запрос в открытое состояние, вызовите Create
(для нового запроса) или 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
.
Замечания
После открытия запроса можно вызвать ее Execute
функцию-член или использовать запрос для создания CDaoRecordset
объекта.
CDaoQueryDef::SetConnect
Вызовите эту функцию-член, чтобы задать строка подключения объекта querydef.
void SetConnect(LPCTSTR lpszConnect);
Параметры
lpszConnect
Строка, содержащая строка подключения для связанного объекта 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
функций-членов. Описание внешних баз данных см. в разделе SetConnect.
CDaoQueryDef::SetSQL
Вызовите эту функцию-член, чтобы задать инструкцию SQL, выполняемую запросом.
void SetSQL(LPCTSTR lpszSQL);
Параметры
lpszSQL
Строка, содержащая полную инструкцию SQL, подходящую для выполнения. Синтаксис этой строки зависит от СУБД, предназначенных для запроса. Обсуждение синтаксиса, используемого в ядре СУБД Microsoft Jet, см. в разделе "Создание инструкций SQL в коде" в справке DAO.
Замечания
Обычное использование SetSQL
настраивает объект querydef для использования в сквозном запросе SQL. (Синтаксис сквозных запросов SQL в целевой СУБД см. в документации по СУБД.
См. также
CObject
Класс
Диаграмма иерархии
CDaoRecordset
Класс
CDaoDatabase
Класс
CDaoTableDef
Класс
CDaoException
Класс