用户登录  |  用户注册
首 页商业源码原创产品编程论坛
当前位置:PB创新网文章中心编程技巧计算机应用

图书馆管理系统研究

减小字体 增大字体 作者:佚名  来源:本站整理  发布时间:2009-01-10 11:49:26
QL 命令语句时,必须要调用Clear方法以清除SQL属性中现存的SQL命令语句,如果不调用Clear方法,便调用Add方法向SQL属性中设置SQL命令语句,那么新设置的SQL命令语句会追加在现存SQL命令语句后面, 在程序运行时常常会出现出乎意料的查询结果甚至程序无法运行下去。

在这里要特别注意的,一般情况下TQuery或TADOquery部件的SQL属性只能包含一条完整的SQL语句,它不允许被设置成多条SQL语句。当然有些数据库服务器也支持在TQuery或TADOquery部件的SQL属性中设置多条SQL语句,只要数据库服务器允许这样,我们在编程时可以为 SQL 属性设置多条SQL语句。

在为TQuery或TADOquery部件设置完SQL属性的属性值之后,也即编写好适当的SQL程序之后,可以有多种方式来执行SQL程序。

在设计过程中,设置完TQuery或TADOquery部件的SQL属性之后将其Active属性的值置为True, 这样便可以执行SQL属性中的SQL程序,如果应用中有与TQuery或TADOquery部件相连的数据浏览部件( 如TDDGrid TDBEdit等)那么在这些数据浏览部件中会显示SQL程序的执行结果。

在应用程序运行过程中,通过程序调用TQuery或TADOquery组件的Open方法或ExecSQL 方法可以执行其SQL属性中的SQL程序。Open方法和ExecSQL方法是不一样的。Open方法只能用来执行SQL语言的查询语句(Select命令), 并返回一个查询结果集,而ExecSQL方法还可以用来执行其它常用的SQL语句(如INSERT, UPDATE, DELETE等命令),例如:

Query1.Open (这样会返回一个查询结果集)

如果调用Open方法,而没有查询结果时,会出错。此时应该调用ExecSQL 方法来代替Open方法。如:

Query1.ExecSQL (没有返回结果)

当然在设计应用程序时,程序设计人员是无法确定TQuery或TADOquery组件中的SQL 语句是否会返回一个查询结果的。对于这种情况应当用Try…Except模块来设计程序。在 Try 部分调用Open方法,而在Except部分调用ExceSQL方法,这样才能保证程序的正确运行。

例如: 

Try

Query1.Open

Except

Query1.ExecSQL

End

通过Tquery或TADOquery组件可以获得两种类型的数据:

u “活动”的数据

这种数据就跟通过TTable部件获得的数据一样,用户可以通过数据浏览部件来编辑修改这些数据,并且当调用Post方法或当焦点离开当前的数据浏览部件时,用户对数据的修改自动地被写回到数据库中。

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

用户通过数据浏览部件是不能修改其中的数据。在缺省情况下,通过TQuery部件获得的查询结果数据是只读数据,要想获得“活动”的数据,在应用程序中必须要设置Tquery或TADOquery组件的RequestLive属性值为True,然而并不是在任何情况下(通过设置RequestLive的属值True)都可以获得“活动”的数据的,要想获得“活动”的数据,除了将TQuery部件的RequestLive属性设置为True外,相应的SQL命令还要满足以下条件。

本地SQL语句查询情况下,要得到可更新的数据集,SQL语句的限制为:

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

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

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

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

n 在Select语句WHERE部分只能包含字段值与常量的比较运算,这些比较运算符是:Like, >, =, 
        
         
          



转自:  仅仅学术交流与学习之用,非商业之目的.


上一页  [1] [2] [3] [4] [5] [6] [7] [8] [9] 

Tags:

作者:佚名

文章评论评论内容只代表网友观点,与本站立场无关!

   评论摘要(共 0 条,得分 0 分,平均 0 分) 查看完整评论
PB创新网ourmis.com】Copyright © 2000-2009 . All Rights Reserved .
页面执行时间:30,578.13000 毫秒
Email:ourmis@126.com QQ:2322888 蜀ICP备05006790号