词条 | CDaoQueryDef |
释义 | CDaoQueryDef对象表示了一个查询定义(querydef),查询定义通常保存在数据库中。查询定义是一个包含了说明查询的SQL语句极其属性(如创建日期、ODBC超时设置等)的数据存取对象,也可以创建临时的不存储在数据库中的临时查询定义对象,但把那些经常用到的查询定义保存在数据库中能够提高效率。CDaoDatabase对象维护了一个称为QueryDefs的集合,其中就记录了保存下来的查询定义。 注意: DAO数据库类和MFC中基于ODBC的数据库类是截然不同的。所有的DAO数据库类的命名中都包括CDao前缀。但仍可以采用DAO数据库类存取ODBC数据源。一般说来,在MFC中,基于DAO的类的处理能力比基于ODBC的类的处理能力要强;基于DAO的类可以通过ODBC数据源对应的数据库引擎存取ODBC数据源。基于DAO的类也支持数据定义语言(DDL)一类的操作,如通过类在数据库中建表,而勿须直接调用DAO。 用法 查询定义对象可用来存取当前保存的查询或者创建一个将保存的查询或临时查询。 1. 无论怎么使用,都需要提供一个指向查询所属的数据库对象的指针,并构造一个CDaoQueryDef对象; 2. 然后: · 如果是使用一个现存的查询,则根据保存的查询的名字调用查询定义对象的成员函数Open。 · 如果是创建一个新的将保存的查询,则提供新查询的名字,调用查询定义对象的成员函数Create。 · 如果是创建一个临时查询对象,也要调用Create,不过传递的查询名是一个空字符串。在使用完查询对象之后,需要调用它的成员函数Close关闭它,然后销毁该对象。 提示: 创建待保存的查询的最简单的办法是采用Microsoft Access创建并把他们保存在数据库中。以后就可以在MFC代码中打开并使用它们了。 目的 查询定义对象可用于以下目的: · 创建CDaoResordset对象。 · 调用该对象的成员函数Execute直接执行动作查询或SQL直通查询。查询定义对象可用于多种类型的查询,包括选择、动作查询、交叉表(crosstab)、删除、更新、添加、造表、数据定义、SQL直通查询和批量查询等。查询的类型是由SQL语句的内容决定的。有关查询类型的内容,请参阅成员函数Execute和GetType。记录集通常用于返回行的查询,一般是那些使用了SELECT匜ROM的查询。Execute一般用于批量操作。要了解更详细的信息,请参阅Execute和CDaoRecordset的说明。 查询定义和记录集 使用查询定义对象创建CDaoRecordset对象时,一般都是象上面介绍的那样创建和打开一个查询定义对象。然后构造一个记录集对象,在调用CDaoRecordset:: Open时传一个指向查询定义对象的指针。传递的查询定义必须是处于打开状态的。调用Open或Create都会使查询定义对象处于打开状态。 外部数据库 查询定义对象是使用外部数据库引擎本地SQL方言的最好方法。例如,可以创建一个Transact SQL(Microsoft SQL Server中采用了)查询并存在查询定义对象中。在使用一个不是基于Microsoft Jet数据库引擎的SQL查询时,必须提供一个指明外部数据源的连接串。具有有效连接串的查询忽略本地数据库引擎,而直接把查询发送到外部数据库服务器进行处理。 提示: 使用ODBC表时最好的方式是把它们与一个Microsoft Jet数据库联系起来。 #include <afxdao.h> |
随便看 |
百科全书收录4421916条中文百科知识,基本涵盖了大多数领域的百科知识,是一部内容开放、自由的电子版百科全书。