WEB开发网
开发学院数据库MSSQL Server Delphi中的SQL编程 阅读

Delphi中的SQL编程

 2007-11-11 13:08:18 来源:WEB开发网   
核心提示: ● 非活动的数据(只读数据)用户通过数据浏览部件是不能修改其中的数据,在缺省情况下,Delphi中的SQL编程(7),通过TQuery部件获得的查询结果数据是只读数据,要想获得“活动”的数据,在应用程序中另外增加一个 TQuery 部件 Query2( 假设获得只读结果的TQuery部件的名字

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

用户通过数据浏览部件是不能修改其中的数据。在缺省情况下,通过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。

表17.1 TQuery部件返回查询结果数据的类型

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

RequestLive属性值 CanModify属性值 查询结果的类型

────────────────────────────────

False False 只读数据

True(SQL语句满足约束条件) True “活动”数据

True(SQL语句不满足约束条件) False 只读数据

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

当TQuery部件返回只读的查询结果数据集,而用户又希望修改这只读的数据集时,一般这样来处理,在应用程序中另外增加一个 TQuery 部件 Query2( 假设获得只读结果的TQuery部件的名字是Query1),在Query2中设置修改语句UpDATE对Query1 中的数据进行修改操作,这样会实现对只读数据的修改。

上一页  2 3 4 5 6 7 8 9 10 11 12  下一页

Tags:Delphi SQL 编程

编辑录入:coldstar [复制链接] [打 印]
赞助商链接