CDaoQueryDefInfo 结构

CDaoQueryDefInfo 结构包含有关为数据访问对象 (DAO) 定义的 querydef 对象的信息。

注意

通过 Office 2013 支持数据访问对象(DAO)。 DAO 3.6 是最终版本,已过时。

语法

struct CDaoQueryDefInfo
{
    CString m_strName;               // Primary
    short m_nType;   // Primary
    COleDateTime m_dateCreated;      // Secondary
    COleDateTime m_dateLastUpdated;  // Secondary
    BOOL m_bUpdatable;               // Secondary
    BOOL m_bReturnsRecords;          // Secondary
    CString m_strSQL;                // All
    CString m_strConnect;            // All
    short m_nODBCTimeout;            // All
};

参数

m_strName
唯一命名 querydef 对象。 有关详细信息,请参阅 DAO 帮助中的“Name 属性”主题。 调用 CDaoQueryDef::GetName 以直接检索此属性。

m_nType
指示 querydef 对象的操作类型的值。 该值可以是以下值之一:

  • dbQSelect 选择:查询选择记录。

  • dbQAction 操作:查询移动或更改数据,但不返回记录。

  • dbQCrosstab 交叉表:查询以类似电子表格的格式返回数据。

  • dbQDelete 删除:查询将删除一组指定的行。

  • dbQUpdate 更新:查询将更改一组记录。

  • dbQAppend 追加:查询将新记录添加到表或查询的末尾。

  • dbQMakeTable 生成表:查询从记录集创建新表。

  • dbQDDL 数据定义:查询会影响表或其部件的结构。

  • dbQSQLPassThrough 直通:SQL 语句直接传递到数据库后端,无需中间处理。

  • dbQSetOperation 联合:查询创建快照类型记录集对象,其中包含两个或多个表中所有指定记录中的数据,并删除了任何重复记录。 要包含重复项,请在 querydef 的 SQL 语句中添加关键字 ALL

  • dbQSPTBulk 用于 dbQSQLPassThrough 指定不返回记录的查询。

注意

要创建 SQL 直通查询,请不要设置 dbQSQLPassThrough 常量。 创建 querydef 对象并设置属性时,Microsoft Jet 数据库引擎会自动设置此设置 Connect

有关详细信息,请参阅 DAO 帮助中的“Type 属性”主题。

m_dateCreated
创建 querydef 的日期和时间。 要直接检索创建 querydef 的日期,请调用与表关联的 CDaoTableDef 对象的 GetDateCreated 成员函数。 有关更多信息,请参见备注。 另请参阅 DAO 帮助中的“DateCreated、LastUpdated 属性”主题。

m_dateLastUpdated
最近对 querydef 进行更改的日期和时间。 要直接检索表的上次更新日期,请调用 querydef 的 GetDateLastUpdated 成员函数。 有关更多信息,请参见备注。 另请参阅 DAO 帮助中的“DateCreated、LastUpdated 属性”主题。

m_bUpdatable
指示是否可以对 querydef 对象进行更改。 如果此属性为 TRUE,则 querydef 可更新;否则,它不是。 可更新意味着可以更改 querydef 对象的查询定义。 如果查询定义可以更新,则 querydef 对象的可更新属性设置为 TRUE,即使生成的记录集不可更新也是如此。 要直接检索此属性,请调用 querydef 的 CanUpdate 成员函数。 有关详细信息,请参阅 DAO 帮助中的“Updatable 属性”主题。

m_bReturnsRecords
指示对外部数据库的 SQL 直通查询是否返回记录。 如果此属性为 TRUE,则查询返回记录。 要直接检索此属性,请调用 CDaoQueryDef::GetReturnsRecords。 并非所有对外部数据库的 SQL 直通查询都返回记录。 例如,SQL UPDATE 语句更新记录而不返回记录,而 SQL SELECT 语句则返回记录。 有关详细信息,请参阅 DAO 帮助中的主题“ReturnsRecords 属性”。

m_strSQL
定义由 querydef 对象执行的查询的 SQL 语句。 SQL 属性包含确定在执行查询时如何选择、分组和排序记录的 SQL 语句。 可以使用查询来选择要包含在动态集或快照类型记录集对象中的记录。 还可以定义批量查询来修改数据而不返回记录。 可以通过调用 querydef 的 GetSQL 成员函数直接检索此属性的值。

m_strConnect
提供有关直通查询中使用的数据库源的信息。 此信息采用连接字符串的形式。 有关连接字符串的详细信息以及有关直接检索此属性值的信息,请参阅 CDaoDatabase::GetConnect 成员函数。

m_nODBCTimeout
当查询在 Open Database Connectivity (ODBC) 数据库上运行时,Microsoft Jet 数据库引擎在超时错误之前等待的秒数。 使用 ODBC 数据库(如 Microsoft SQL Server)时,由于网络流量或 ODBC 服务器的使用量过大,可能会出现延迟。 可以指定 Microsoft Jet 引擎在产生错误之前等待多长时间,而不是无限期地等待。 默认超时值为 60 秒。 可以通过调用 querydef 的 GetODBCTimeout 成员函数直接检索此属性的值。 有关详细信息,请参阅 DAO 帮助中的“ODBCTimeout 属性”主题。

备注

querydef 是 CDaoQueryDef 类的对象。 对 Primary、Secondary 和 All 的引用指示类中的 CDaoDatabaseGetQueryDefInfo 成员函数如何返回信息。

CDaoDatabase::GetQueryDefInfo 成员函数检索的信息存储在 CDaoQueryDefInfo 结构中。 为存储 querydef 对象的 QueryDefs 集合中的数据库对象调用 GetQueryDefInfoCDaoQueryDefInfo 还在调试生成中定义了一个 Dump 成员函数。 可使用 Dump 来转储 CDaoQueryDefInfo 对象的内容。 类 CDaoDatabase 还提供成员函数来直接访问对象中 CDaoQueryDefInfo 返回的所有属性,因此很少调用 GetQueryDefInfo

将新字段或参数对象追加到 querydef 对象的 Fields 或 Parameters 集合时,如果基础数据库不支持为新对象指定的数据类型,则会引发异常。

日期和时间设置源自创建或上次更新 querydef 的计算机。 在多用户环境中,用户应使用 net time 命令直接从文件服务器获取这些设置,以避免 DateCreated 和 LastUpdated 属性设置的差异

要求

标头afxdao.h

另请参阅

结构、样式、回调和消息映射
CDaoQueryDef 类
CDaoDatabase 类