CDaoQueryDef
类
表示通常保存在数据库中的查询定义(即“querydef”)。
注意
通过 Office 2013 支持数据访问对象(DAO)。 DAO 3.6 是最终版本,已过时。
语法
class CDaoQueryDef : public CObject
成员
公共构造函数
名称 | 描述 |
---|---|
CDaoQueryDef::CDaoQueryDef | 构造 CDaoQueryDef 对象。 下次调用 Open 或 Create ,具体取决于你的需要。 |
公共方法
名称 | 描述 |
---|---|
CDaoQueryDef::Append | 将 querydef 作为保存的查询附加到数据库的 QueryDefs 集合。 |
CDaoQueryDef::CanUpdate | 如果查询可以更新数据库,则返回非零。 |
CDaoQueryDef::Close | 关闭 querydef 对象。 完成后销毁 C++ 对象。 |
CDaoQueryDef::Create | 创建基础 DAO querydef 对象。 使用 querydef 作为临时查询,或调用 Append 将其保存在数据库中。 |
CDaoQueryDef::Execute | 执行 querydef 对象定义的查询。 |
CDaoQueryDef::GetConnect | 返回与此 querydef 关联的连接字符串。 连接字符串标识数据源。 (仅适用于 SQL 直通查询;否则为空字符串。) |
CDaoQueryDef::GetDateCreated | 返回创建已保存查询的日期。 |
CDaoQueryDef::GetDateLastUpdated | 返回上次更新已保存查询的日期。 |
CDaoQueryDef::GetFieldCount | 返回 querydef 定义的字段数。 |
CDaoQueryDef::GetFieldInfo | 返回有关查询中定义的指定字段的信息。 |
CDaoQueryDef::GetName | 返回 querydef 的名称。 |
CDaoQueryDef::GetODBCTimeout | 当执行 querydef 时,返回 ODBC (用于 ODBC 查询)使用的超时值,该值确定允许查询的操作完成多长时间。 |
CDaoQueryDef::GetParameterCount | 返回为查询定义的参数的数量。 |
CDaoQueryDef::GetParameterInfo | 返回有关查询的指定参数的信息。 |
CDaoQueryDef::GetParamValue | 返回查询的指定参数的值。 |
CDaoQueryDef::GetRecordsAffected | 返回受操作查询影响的记录数。 |
CDaoQueryDef::GetReturnsRecords | 如果由 querydef 定义的查询返回记录,则返回非零。 |
CDaoQueryDef::GetSQL | 返回指定由 querydef 定义的查询的 SQL 字符串。 |
CDaoQueryDef::GetType | 返回查询类型:删除、更新、追加、生成表等。 |
CDaoQueryDef::IsOpen | 如果 querydef 处于打开状态并且可以执行,则返回非零。 |
CDaoQueryDef::Open | 打开存储在数据库的 QueryDefs 集合中的现有 querydef。 |
CDaoQueryDef::SetConnect | 设置 ODBC 数据源上的 SQL 直通查询的连接字符串。 |
CDaoQueryDef::SetName | 设置已保存查询的名称,替换在创建 querydef 时使用的名称。 |
CDaoQueryDef::SetODBCTimeout | 设置执行 querydef 时 ODBC 使用的超时值(用于 ODBC 查询)。 |
CDaoQueryDef::SetParamValue | 设置查询的指定参数的值。 |
CDaoQueryDef::SetReturnsRecords | 指定 querydef 是否返回记录。 将此属性设置为 TRUE 仅适用于 SQL 直通查询。 |
CDaoQueryDef::SetSQL | 设置指定由 querydef 定义的查询的 SQL 字符串。 |
公共数据成员
“属性” | 描述 |
---|---|
CDaoQueryDef::m_pDAOQueryDef | 指向基础 DAO querydef 对象的 OLE 接口的指针。 |
CDaoQueryDef::m_pDatabase | 指向与 querydef 关联的 CDaoDatabase 对象的指针。 querydef 可能保存在数据库中,也可能不保存在数据库中。 |
注解
querydef 是一个数据访问对象,其中包含描述查询的 SQL 语句及其属性,例如“创建日期”和“ODBC 超时”。还可以创建临时 querydef 对象,而无需保存它们,但方便且更高效地将常用查询保存在数据库中。 CDaoDatabase 对象维护一个集合,称为 QueryDefs 集合,其中包含其保存的 querydef。
注意
DAO 数据库类不同于基于 Open Database Connectivity(ODBC)的 Microsoft 基础类 (MFC) 数据库类。 所有 DAO 数据库类名都具有“CDao”前缀。 你仍然可以使用 DAO 类访问 ODBC 数据源。 通常,基于 DAO 的 MFC 类比基于 ODBC 的 MFC 类更强大;基于 DAO 的类可以通过它们自己的数据库引擎访问数据,包括通过 ODBC 驱动程序。 基于 DAO 的类还支持数据定义语言 (DDL) 操作(例如通过类添加表),而无需直接调用 DAO。
使用情况
使用 querydef 对象可以处理现有的已保存查询,或者创建新的已保存查询或临时查询:
在所有情况下,首先构造一个
CDaoQueryDef
对象,提供指向查询所属的 CDaoDatabase 对象的指针。然后,根据需要执行以下操作:
使用完 querydef 对象后,调用其 Close 成员函数;然后销毁 querydef 对象。
提示
创建已保存查询的最简单方法是使用 Microsoft Access 创建查询并将其存储在数据库中。 然后,就可以在 MFC 代码中打开和使用它们了。
目的
可以将 querydef 对象用于以下任一目的:
创建
CDaoRecordset
对象调用对象的
Execute
成员函数以直接执行操作查询或 SQL 直通查询
可以将 querydef 对象用于任何类型的查询,包括选择、操作、交叉表、删除、更新、追加、生成表、数据定义、SQL 直通、联合和批量查询。 提供的 SQL 语句的内容决定了查询的类型。 有关查询类型的信息,请参阅 Execute
和 GetType
成员函数。 记录集通常用于行返回查询,通常使用 SELECT...FROM 关键字。 Execute
最常用于批量操作。 有关详细信息,请参阅 Execute
和 CDaoRecordset
。
querydef 和记录集
若要使用 querydef 对象创建对象 CDaoRecordset
,通常创建或打开前面所述的 querydef。 然后构造一个记录集对象,在调用 CDaoRecordset::Open
时将指针传递给 querydef 对象。 传递的 querydef 必须处于打开状态。 有关详细信息,请参阅 CDaoRecordset
类。
除非查询处于打开状态,否则不能使用 querydef 创建记录集(查询集的最常见用途)。 通过调用 Open
或 Create
将 querydef 置于打开状态。
外部数据库
querydef 对象是使用外部数据库引擎的本地 SQL 方言的首选方式。 例如,可以创建一个 Transact SQL 查询(在 Microsoft SQL Server 上使用)并将其存储在 querydef 对象中。 当需要使用不基于 Microsoft Jet 数据库引擎的 SQL 查询时,必须提供指向外部数据源的连接字符串。 具有有效连接字符串的查询会绕过数据库引擎,并将查询直接传递给外部数据库服务器进行处理。
提示
使用 ODBC 表的首选方法是将它们附加到 Microsoft Jet (.MDB) 数据库。
有关相关信息,请参阅 DAO SDK 中的主题“QueryDef 对象”、“QueryDefs 集合”和“CdbDatabase 对象”。
继承层次结构
CDaoQueryDef
要求
标头:afxdao.h
CDaoQueryDef::Append
在调用 Create 后调用此成员函数以创建新的 querydef 对象。
virtual void Append();
备注
Append
通过将对象追加到数据库的 QueryDefs 集合中,将 querydef 保存在数据库中。 可以将 querydef 用作临时对象而不附加它,但如果希望它持久存在,则必须调用 Append
。
如果尝试追加一个临时 querydef 对象,MFC 将引发 CDaoException 类型的异常。
CDaoQueryDef::CanUpdate
调用此成员函数以确定是否可以修改 querydef,例如更改其名称或 SQL 字符串。
BOOL CanUpdate();
返回值
如果可以修改 querydef,则为 Nonzero;否则为 0。
注解
在以下情况下可以修改 querydef:
它不基于打开只读的数据库。
你拥有数据库的更新权限。
这取决于你是否实现了安全功能。 MFC 不支持安全性;必须通过直接调用 DAO 或使用 Microsoft Access 来实现它。 请参阅 DAO 帮助中的主题“Permissions 属性”。
CDaoQueryDef::CDaoQueryDef
构造 CDaoQueryDef
对象。
CDaoQueryDef(CDaoDatabase* pDatabase);
参数
pDatabase
指向打开的 CDaoDatabase 对象的指针。
注解
该对象可以表示存储在数据库的 QueryDefs 集合中的现有 querydef、要存储在集合中的新查询或不存储的临时查询。 下一步取决于 querydef 的类型:
如果对象表示现有的 querydef,则调用对象的 Open 成员函数对其进行初始化。
如果对象表示要保存的新 querydef,则调用对象的 Create 成员函数。 这会将对象添加到数据库的 QueryDefs 集合。 然后,调用
CDaoQueryDef
成员函数来设置对象的属性。 最后,调用 Append。如果对象表示临时 querydef(不保存在数据库中),则调用
Create
,为查询名称传递一个空字符串。 调用Create
后,通过直接设置其属性来初始化 querydef。 不要调用Append
。
若要设置 querydef 的属性,可以使用 SetName、SetSQL、SetConnect、SetODBCTimeout 和 SetReturnsRecords 成员函数。
使用完 querydef 对象后,调用其 Close 成员函数。 如果有指向 querydef 的指针,请使用 delete
运算符来销毁 C++ 对象。
CDaoQueryDef::Close
使用完 querydef 对象后调用此成员函数。
virtual void Close();
注解
关闭 querydef 会释放基础 DAO 对象,但不销毁保存的 DAO querydef 对象或C++ CDaoQueryDef
对象。 这与 CDaoDatabase::D eleteQueryDef 不同 ,后者从 DAO 中的数据库的 QueryDefs 集合中删除 querydef(如果不是临时 querydef)。
CDaoQueryDef::Create
调用此成员函数以创建新的已保存查询或新的临时查询。
virtual void Create(
LPCTSTR lpszName = NULL,
LPCTSTR lpszSQL = NULL);
参数
lpszName
保存在数据库中的查询的唯一名称。 有关字符串的详细信息,请参阅 DAO 帮助中的主题“CreateQueryDef 方法”。 如果接受默认值,即一个空字符串,则会创建一个临时 querydef。 此类查询不会保存在 QueryDefs 集合中。
lpszSQL
定义查询的 SQL 字符串。 如果接受默认值 NULL,则必须稍后调用 SetSQL 来设置字符串。 在此之前,查询未定义。 但是,可以使用未定义的查询打开记录集;有关详细信息,请参阅“注解”。 必须先定义 SQL 语句,然后才能将 querydef 追加到 QueryDefs 集合。
备注
如果在 lpszName 中传递名称,则可以调用 Append 将 querydef 保存在数据库的 QueryDefs 集合中。 否则,对象是临时 querydef,不会保存。 在任一情况下,querydef 处于打开状态,可以使用它创建 CDaoRecordset 对象或调用 querydef 的 Execute 成员函数。
如果未在 lpszSQL 中提供 SQL 语句,则无法运行Execute
查询,但可以使用它创建记录集。 在这种情况下,MFC 使用记录集的默认 SQL 语句。
CDaoQueryDef::Execute
调用此成员函数以运行 querydef 对象定义的查询。
virtual void Execute(int nOptions = dbFailOnError);
参数
nOptions
确定查询特征的整数。 有关相关信息,请参阅 DAO 帮助中的主题“Execute 方法”。 可以使用按位或运算符 (|
) 组合此参数的以下常量:
dbDenyWrite
拒绝其他用户的写入权限。dbInconsistent
更新不一致。dbConsistent
更新一致。dbSQLPassThrough
SQL 直通。 导致将 SQL 语句传递到 ODBC 数据库进行处理。dbFailOnError
默认值。 如果发生错误,则回滚更新并将错误报告给用户。dbSeeChanges
如果其他用户正在更改正在编辑的数据,则生成运行时错误。
注意
有关术语“不一致”和“一致”的解释,请参阅 DAO 帮助中的主题“Execute 方法”。
备注
以这种方式执行的 querydef 对象只能表示以下查询类型之一:
操作查询
SQL 直通查询
Execute
不适用于返回记录的查询,例如选择查询。 Execute
通常用于批量操作查询,例如 UPDATE、INSERT 或 SELECT INTO,或用于数据定义语言 (DDL) 操作。
提示
使用 ODBC 数据源的首选方法是将表附加到 Microsoft Jet (.MDB) 数据库。 有关详细信息,请参阅 DAO 帮助中的主题“使用 DAO 访问外部数据库”。
调用 querydef 对象的 GetRecordsAffected 成员函数以确定受最近一次 Execute
调用影响的记录数。 例如,GetRecordsAffected
返回有关在执行操作查询时删除、更新或插入的记录数的信息。 当级联更新或删除生效时,返回的计数不会反映相关表中的更改。
如果同时包含 dbInconsistent
和 dbConsistent
,或者两者都不包含,则结果为默认值 dbInconsistent
。
Execute
不返回记录集。 在选择记录的查询上使用 Execute
会导致 MFC 引发 CDaoException 类型的异常。
CDaoQueryDef::GetConnect
调用此成员函数以获取与 querydef 的数据源关联的连接字符串。
CString GetConnect();
返回值
CString
包含 querydef 的连接字符串。
注解
此函数仅用于 ODBC 数据源和某些 ISAM 驱动程序。 它不用于 Microsoft Jet (.MDB
) 数据库;在本例中, GetConnect
返回一个空字符串。 有关详细信息,请参阅 SetConnect
。
提示
使用 ODBC 表的首选方法是将它们附加到 .MDB 数据库。 有关详细信息,请参阅 DAO 帮助中的主题“使用 DAO 访问外部数据库”。
有关连接字符串的信息,请参阅 DAO 帮助中的主题“Connect 属性”。
CDaoQueryDef::GetDateCreated
调用此成员函数以获取创建 querydef 对象的日期。
COleDateTime GetDateCreated();
返回值
包含创建 querydef 的日期和时间的 COleDateTime 对象。
注解
有关相关信息,请参阅 DAO 帮助中的主题“DateCreated、LastUpdated 属性”。
CDaoQueryDef::GetDateLastUpdated
调用此成员函数以获取 querydef 对象上次更新的日期(当其任何属性发生更改时,例如其名称、SQL 字符串或其连接字符串)。
COleDateTime GetDateLastUpdated();
返回值
包含 COleDateTime
querydef 上次更新的日期和时间的对象。
注解
有关相关信息,请参阅 DAO 帮助中的主题“DateCreated、LastUpdated 属性”。
CDaoQueryDef::GetFieldCount
调用此成员函数以检索查询中的字段数。
short GetFieldCount();
返回值
查询中定义的字段数。
备注
GetFieldCount
可用于循环访问 querydef 中的所有字段。 为此,请 GetFieldCount
与 .一起使用 GetFieldInfo
。
CDaoQueryDef::GetFieldInfo
调用此成员函数以获取有关 querydef 中定义的字段的各种信息。
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
querydef 的 Fields 集合中所需字段的从零开始的索引,用于按索引查找。
fieldinfo
对返回请求信息的 CDaoFieldInfo
对象的引用。
dwInfoOptions
指定要检索字段的哪些信息的选项。 此处列出了可用选项以及它们导致函数返回的原因:
AFX_DAO_PRIMARY_INFO(默认)名称、类型、大小、属性
AFX_DAO_SECONDARY_INFO 主要信息以及:序号位置、必需、允许零长度、源字段、外部名称、源表、整理顺序
AFX_DAO_ALL_INFO 主要和次要信息以及:默认值、验证文本、验证规则
lpszName
包含所需字段名称的字符串,用于按名称查找。 可以使用 CString
。
注解
有关 fieldinfo 中返回的信息的说明,请参阅 CDaoFieldInfo 结构。 此结构的成员对应于上述 dwInfoOptions 下的描述性信息。 如果请求某一级别的信息,还将获得任何先前级别的信息。
CDaoQueryDef::GetName
调用此成员函数以检索由 querydef 表示的查询的名称。
CString GetName();
返回值
查询的名称。
注解
querydef 名称是唯一的用户定义名称。 有关 querydef 名称的详细信息,请参阅 DAO 帮助中的主题“Name 属性”。
CDaoQueryDef::GetODBCTimeout
调用此成员函数以在对 ODBC 数据源的查询超时之前检索当前时间限制。
short GetODBCTimeout();
返回值
查询超时之前等待的秒数。
注解
有关此时间限制的信息,请参阅 DAO 帮助中的主题“ODBCTimeout 属性”。
提示
使用 ODBC 表的首选方法是将它们附加到 Microsoft Jet (.MDB) 数据库。 有关详细信息,请参阅 DAO 帮助中的主题“使用 DAO 访问外部数据库”。
CDaoQueryDef::GetParameterCount
调用此成员函数以检索已保存查询中参数的数量。
short GetParameterCount();
返回值
查询中定义的参数的数量。
备注
GetParameterCount
可用于循环访问 querydef 中的所有参数。 为此,请 GetParameterCount
与 .一起使用 GetParameterInfo
。
有关相关信息,请参阅 DAO 帮助中的主题“参数对象”、“参数集合”和“PARAMETERS 声明 (SQL)”。
CDaoQueryDef::GetParameterInfo
调用此成员函数以获取有关 querydef 中定义的参数的信息。
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 的 Parameters 集合中所需参数的从零开始的索引,用于按索引查找。
paraminfo
对返回请求信息的 CDaoParameterInfo 对象的引用。
dwInfoOptions
指定要检索的有关参数的哪些信息的选项。 此处列出了可用选项以及它导致函数返回的内容:
AFX_DAO_PRIMARY_INFO
(默认值)名称、类型
lpszName
包含所需参数名称的字符串,用于按名称查找。 可以使用 CString
。
注解
有关返回 paraminfo
的信息的说明,请参阅 CDaoParameterInfo
结构。 此结构具有与上述描述性信息 dwInfoOptions
对应的成员。
有关相关信息,请参阅 DAO 帮助中的主题“PARAMETERS 声明 (SQL)”。
CDaoQueryDef::GetParamValue
调用此成员函数以检索存储在 querydef 的 Parameters 集合中的指定参数的当前值。
virtual COleVariant GetParamValue(LPCTSTR lpszName);
virtual COleVariant GetParamValue(int nIndex);
参数
lpszName
需要其值的参数的名称,用于按名称查找。
nIndex
querydef 的 Parameters 集合中参数的从零开始的索引,用于按索引查找。 可以通过调用 GetParameterCount 和 GetParameterInfo 来获取此值。
返回值
包含参数值的 COleVariant 类对象。
备注
可以按名称或按其在集合中的序号位置访问参数。
有关相关信息,请参阅 DAO 帮助中的主题“PARAMETERS 声明 (SQL)”。
CDaoQueryDef::GetRecordsAffected
long GetRecordsAffected();
返回值
受影响的记录数。
注解
当级联更新或删除生效时,返回的计数不会反映相关表中的更改。
要了解相关信息,请参阅 DAO 帮助中的主题“RecordsAffected 属性”。
CDaoQueryDef::GetReturnsRecords
调用此成员函数以确定 querydef 是否基于返回记录的查询。
BOOL GetReturnsRecords();
返回值
如果 querydef 基于返回记录的查询,则为非零;否则为 0。
注解
此成员函数仅用于 SQL 直通查询。 有关 SQL 查询的详细信息,请参阅 Execute 成员函数。 有关使用 SQL 直通查询的详细信息,请参阅 SetReturnsRecords 成员函数。
有关相关信息,请参阅 DAO 帮助中的主题“ReturnsRecords 属性”。
CDaoQueryDef::GetSQL
调用此成员函数以检索定义 querydef 所基于的查询的 SQL 语句。
CString GetSQL();
返回值
定义 querydef 所基于的查询的 SQL 语句。
注解
可以分析关键字、表名等的字符串。
有关相关信息,请参阅 DAO 帮助中的主题“SQL 属性”、“Microsoft Jet 数据库引擎 SQL 和 ANSI SQL 的比较”和“在代码中使用 SQL 查询数据库”。
CDaoQueryDef::GetType
调用此成员函数以确定 querydef 的查询类型。
short GetType();
返回值
由 querydef 定义的查询的类型。 有关值,请参阅“注解”。
备注
查询类型由你在创建 querydef 或调用现有 querydef 的 SetSQL 成员函数时在 querydef 的 SQL 字符串中指定的内容设置。 此函数返回的查询类型可以是以下值之一:
dbQSelect
选择dbQAction
操作dbQCrosstab
交叉表dbQDelete
删除dbQUpdate
UpdatedbQAppend
追加dbQMakeTable
生成表dbQDDL
数据定义dbQSQLPassThrough
直通dbQSetOperation
联合dbQSPTBulk
用于dbQSQLPassThrough
指定不返回记录的查询。
注意
若要创建 SQL 直通查询,请不要设置 dbSQLPassThrough
常量。 这是在创建 querydef 对象并设置连接字符串时由 Microsoft Jet 数据库引擎自动设置的。
有关 SQL 字符串的信息,请参阅 GetSQL。 有关查询类型的信息,请参阅 Execute。
CDaoQueryDef::IsOpen
调用此成员函数以确定 CDaoQueryDef
对象当前是否处于打开状态。
BOOL IsOpen() const;
返回值
如果 CDaoQueryDef
对象当前处于打开状态,则为非零;否则为 0。
注解
在使用它调用 Execute
或创建 CDaoRecordset
对象之前,querydef 必须处于打开状态。 若要将 querydef 置于打开状态,请调用 Create
(对于新的 querydef)或 Open
(对于现有 querydef)。
CDaoQueryDef::m_pDatabase
包含指向与 querydef 对象关联的 CDaoDatabase 对象的指针。
注解
如果需要直接访问数据库,请使用此指针。 例如,若要获取指向数据库集合中其他 querydef 或 recordset 对象的指针。
CDaoQueryDef::m_pDAOQueryDef
包含指向基础 DAO querydef 对象的 OLE 接口的指针。
备注
提供此指针是为了实现与其他类的完整性和一致性。 但是,由于 MFC 相当完全封装 DAO querydefs,因此你不太可能需要它。 如果确实使用它,请谨慎执行此操作。 特别是不要更改指针的值,除非你知道你正在做什么。
CDaoQueryDef::Open
调用此成员函数以打开以前保存在数据库的 QueryDefs 集合中的 querydef。
virtual void Open(LPCTSTR lpszName = NULL);
参数
lpszName
一个字符串,其中包含要打开的已保存 querydef 的名称。 可以使用 CString
。
注解
打开 querydef 后,可以调用其 Execute
成员函数或使用 querydef 创建对象 CDaoRecordset
。
CDaoQueryDef::SetConnect
调用此成员函数以设置 querydef 对象的连接字符串。
void SetConnect(LPCTSTR lpszConnect);
参数
lpszConnect
一个字符串,其中包含关联的 CDaoDatabase 对象的连接字符串。
备注
连接字符串用于根据需要将附加信息传递给 ODBC 和某些 ISAM 驱动程序。 它不用于 Microsoft Jet (.MDB
) 数据库。
提示
使用 ODBC 表的首选方法是将它们附加到 .MDB 数据库。
在执行表示对 ODBC 数据源的 SQL 直通查询的 querydef 之前,使用 SetConnect
设置连接字符串并调用 SetReturnsRecords 以指定查询是否返回记录。
有关连接字符串的结构和连接字符串组件示例的详细信息,请参阅 DAO 帮助中的主题“Connect 属性”。
CDaoQueryDef::SetName
如果要更改不是临时的 querydef 的名称,请调用此成员函数。
void SetName(LPCTSTR lpszName);
参数
lpszName
一个字符串,其中包含关联的 CDaoDatabase 对象中非临时查询的新名称。
注解
querydef 名称是唯一的用户定义名称。 可以在将 querydef 对象附加到 QueryDefs 集合之前调用 SetName
。
CDaoQueryDef::SetODBCTimeout
调用此成员函数来设置对 ODBC 数据源的查询超时之前的时间限制。
void SetODBCTimeout(short nODBCTimeout);
参数
nODBCTimeout
查询超时之前等待的秒数。
备注
此成员函数允许在连接的数据源上的后续操作“超时”之前覆盖默认秒数。由于网络访问问题、查询处理时间过长等原因,操作可能会超时。 如果要更改查询超时值,请使用此 querydef 执行查询之前进行调用 SetODBCTimeout
。 (由于 ODBC 重用连接,因此同一连接上的所有客户端的超时值相同。)
查询超时的默认值是 60 秒。
CDaoQueryDef::SetParamValue
调用此成员函数以在运行时在 querydef 中设置参数的值。
virtual void SetParamValue(
LPCTSTR lpszName,
const COleVariant& varValue);
virtual void SetParamValue(
int nIndex,
const COleVariant& varValue);
参数
lpszName
要设置其值的参数的名称。
varValue
要设置的值;请参阅“注解”。
nIndex
参数在 querydef 的参数集合中的序号位置。 可以通过调用 GetParameterCount 和 GetParameterInfo 来获取此值。
注解
必须已将参数建立为 querydef 的 SQL 字符串的一部分。 可以按名称或按其在集合中的序号位置访问参数。
指定要设置为 COleVariant
对象的值。 有关在 COleVariant
对象中设置所需值和类型的信息,请参阅类 COleVariant。
CDaoQueryDef::SetReturnsRecords
在设置对外部数据库的 SQL 直通查询的过程中调用此成员函数。
void SetReturnsRecords(BOOL bReturnsRecords);
参数
bReturnsRecords
如果对外部数据库的查询返回记录,则传递 TRUE;否则为 FALSE。
备注
在这种情况下,必须创建 querydef 并使用其他 CDaoQueryDef
成员函数设置其属性。 有关外部数据库的说明,请参阅 SetConnect。
CDaoQueryDef::SetSQL
调用此成员函数以设置 querydef 执行的 SQL 语句。
void SetSQL(LPCTSTR lpszSQL);
参数
lpszSQL
包含适合执行的完整 SQL 语句的字符串。 此字符串的语法取决于查询面向的 DBMS。 有关 Microsoft Jet 数据库引擎中使用的语法的讨论,请参阅 DAO 帮助中的主题“在代码中生成 SQL 语句”。
备注
SetSQL
的典型用途是设置一个 querydef 对象以在 SQL 直通查询中使用。 (有关目标 DBMS 上 SQL 直通查询的语法,请参阅 DBMS 的文档。)
另请参阅
CObject
类
层次结构图
CDaoRecordset
类
CDaoDatabase
类
CDaoTableDef
类
CDaoException
类