如何获得活动的数据

17.3.3 通过TQuery部件如何获得活动的数据

 

我们在前面的章节里介绍TTable部件时,我们知道通过TTable部件从数据库中获得的数据都是活动的,也就是说用户可以直接通过数据浏览部件对这些数据进行编辑修改。而通过TQuery部件可以获得两种类型的数据:

● “活动”的数据

这种数据就跟通过TTable部件获得的数据一样,用户可以通过数据浏览部件来编 辑修改这些数据,并且当调用Post方法或当焦点离开当前的数据浏览部件时,用户对数据的修改自动地被写回到数据库中,详细情况请参看第四章“数据浏览部件的应用及编程”。

● 非活动的数据(只读数据)

用户通过数据浏览部件是不能修改其中的数据。在缺省情况下,通过TQuery部件 获得的查询结果数据是只读数据,要想获得“活动”的数据,在应用程序中必须要设置TQuery部件的RequestLive属性值为True,然而并不是在任何情况下(通过设置RequestLive的属值True)都可以获得“活动”的数据的,要想获得“活动”的数据,除了将TQuery部件的RequestLive属性为True外,BDE要能够返回“活动”的数据,相应的SQL命令语句还要满足附录C中的语法规则和下列的约束条件:

TQuery部件获得“活动”的查询结果数据的约束条件:

 

当查询Paradox或dBASE数据库中的表:

● 查询只能涉及到一个单独的表

● SQL语句中不能包含ORDER BY命令

● SQL语句中不能含聚集运算符SUM或AVG

● 在Select后的字段列表中不能有计算字段

● 在Select语句WHERE部分只能包含字段值与常量的比较运算,这些比较运算符是: Like,>,<,>=,<=,各比较运算之间可以有并和交运算:AND和OR。

 

当通过SQL语句查询数据库服务器中的数据库表:

● 查询只能涉及到一个单独的表

● SQL语句中不能包含ORDER BY命令

● SQL语句中不能含聚集运算符SUM或AVG运算

 

另外,如果是查询Sybase数据库中的表,那么被查询的表中只能有一个索引。

如果在应用程序中要求TQuery部件返回一个“活动”的查询结果数据集,但是SQL 命令语句不满足上述约束条件时,对于本地数据库的SQL查询,BDE只能返回只读的数据集。对于数据库服务器中的SQL查询,只能返回错误的代码。当TQuery 部件返回一个“活动”的查询结果数据集时,它的CanModify属性的值会被设置成True。

原文地址:https://www.cnblogs.com/k1727/p/2143847.html