TUpdateSQL 是做什么用的(50分)

  • 主题发起人 主题发起人 CJ
  • 开始时间 开始时间
C

CJ

Unregistered / Unconfirmed
GUEST, unregistred user!


只要详细解释,不要贴 Help!
代码有没有皆可,说明问题为主
 
看李维的《delphi3从入门到精通》
 
程兄:
这个问题已有人问过了,在你这个版中就有.
 
这样的答案,没分的:-)
解释一下吧,我有用啦,呵呵。
 
cj给我送分?
TUpdateSQL是专为TQuery在的结果上直接修改数据库记录用的. 比如连到
Query上的DBGrid, 直接修改其中的数据可以通过TUpdateSQL修改数据库
中相应记录, 而不用管query的结果是否是readonly的(比如某些复杂查询的
结果不能直接修改).
TUpdateSQL的原理就是当修改发生时, 自动执行其中相应的sql语句(update, insert, delete).
TUpdateSQL中的sql语句主要是通过变量形式定位数据库记录的
:OLD_字段名 可以取得某个字段被修改之前的值(一般作为where里的条件)
:NEW_字段名 是query中这个字段的被修改之后的新值.
 
不错不错,继续继续
 
CJ出钱,我来旁听. :-)
eyes:能不能决一个小小的例子呀?

我觉得我们应该版一个delphi补习班,其实delphi很多强大的功能我们都不是很明白.
 
好注意,我也来旁听。
 
上面说错了一点:
:OLD_字段名 --> 被修改前的数据
:字段名 --> 修改之后的数据 (没有NEW_ )

要例子?
看一下 $(DELPHI)/demos/db/cachedup/下的程序不就知道了?
 
cakk:我出完分了,轮到你了呀
eYes:问题是,我在GRID里如何修改了记录,UPDATESQL如何晓得?
 
自动的, 同理: grid中修改了记录, query如何晓得的?
query晓得了, 它会自动调用UpdateSQL去修改记录的, 当然, 你得把query
中的updateobject指定为你的updatesql控件.
 
TUpdateSQL还有如下作用:
1,当作UpdateCache,起到缓存的作用。此时TQuery中的CachedUpdates要设
为True。成批修改数据后先Post,再ApplyUpdates。
2,取代TQuery中的某些SQL命令。比如当不用TUpdateSQL时,做TQuery.Insert,
此时是执行TQuery中的Insert命令,而非TUpdateSQL中的SQL语句。
当表中有Identity字段时就不能直接调用TQuery中的某些命令,而是要用
TUpdateSQL中的SQL语句来完成。
 
大家好,我是来学习的
 
我准备把delphi从头看一遍
 
我早就想问这个问题了,现在不用分而可得答案,真高兴!
 
后退
顶部