关闭

updateSql 控件的使用

1861人阅读 评论(0) 收藏 举报

updateSql 这个控件在我刚学 delphi 时就知道了,但不直不会用,上网也没有找到过例子,今天正好需要用到这

个控件,一用,还真好用,呵呵,说一下它的使用方法吧

updateSql 这个控件原本是用来更新不同的表的,当用 query 打开了多个表,但这时就不能直接用 query 来更新

表的操作了,因为里面是多个表,这里就用 updateSql 这个控件了,把 query 的 updatObject 指向一个

updateSql,同时这个 query 的 cacheUpdates 为 true,我试着用 false 试了试,在 dbgrid 里不能输入数据。

我这里query 只打开了一张表,开始试着把 RequestLive 设为 true ,但 open 时,提示 can not find object

上网搜搜是什么意思,但没有找到答案,国外的站点提到这个问题,是说 sql 数据库中用了 Nchar,或 nvarchar

数据类型,但我没有用呀,不知为什么,于是就想到了 updateSql ,还没用过呢,先试试吧,设好属性后, open

,没有提示了,好,改变数据 再 applyUpdates  ,出错了,因为没有 modifySql ,但这个 modifySql 该怎么写

呢?查了查 联机帮助


Specifies the SQL UPDATE statement to use when applying an update to a record and cached updates is

enabled.

property ModifySQL: TStrings;

Description

Set ModifySQL to the SQL UPDATE statement to use when applying an updated record to a dataset.

Statements can be parameterized queries. To create a UPDATE statement at design time, use the

UpdateSQL editor to create statements, such as:

UPDATE "Country.db"

SET Name = :Name, Capital = :Capital, Continent = :Continent

WHERE Name = :OLD_Name

At run time, an application can write a statement directly to this property to set or change the

UPDATE statement.

Note: As the example illustrates, ModifySQL supports an extension to normal parameter binding. To

retrieve the value of a field as it exists prior to application of cached updates, the field name

with “OLD_? ”This is especially useful when doing field comparisons in the WHERE clause of the

statement.


看得虽不太明白,但也明白点了,就是更新表时,用     字段 =:字段  但条件呢 也就是 where 该怎么写呢

它在下面说了 用 OLD_字段名,按它说的做做 , applyUpdates ,没有错,再打开数据库看看,哎,数据更新了

 

到这里,我知道该怎么用 updateSql 了

 

注意一下的是

写 sql 语句时 如 set name =: name , sex =: sex  这样就不可以,必须去掉空格,要不会出现 Field '' is of

an unknown  type 的提示,不知为什么它不会自已去掉这些空格

 

 

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:251246次
    • 积分:3810
    • 等级:
    • 排名:第8712名
    • 原创:109篇
    • 转载:70篇
    • 译文:0篇
    • 评论:18条
    最新评论
    链接
    上位机