Delphi中的SQL编程
2007-11-11 13:08:18 来源:WEB开发网● 非活动的数据(只读数据)
用户通过数据浏览部件是不能修改其中的数据。在缺省情况下,通过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 中的数据进行修改操作,这样会实现对只读数据的修改。
- ››sql server自动生成批量执行SQL脚本的批处理
- ››Delphi实现把10进制转换成16进制的函数进制转化
- ››sql server 2008亿万数据性能优化
- ››SQL Server 2008清空数据库日志方法
- ››sqlserver安装和简单的使用
- ››SQL Sever 2008 R2 数据库管理
- ››SQL SERVER无法安装成功,sqlstp.log文件提示[未发...
- ››Sql Server中通过父记录查找出所有关联的子记录
- ››SqlServer触发器、存储过程和函数
- ››Delphi中将字符串按给定字符分隔(似split函数功能...
- ››SQL Server 中的事务(含义,属性,管理)
- ››Sqlite数据库插入和读取图片数据
更多精彩
赞助商链接