在Query中写Update语句,如何将更改的数据与原数据库中的数值相加后再放回原数据库中(100分)

  • 主题发起人 主题发起人 东方如风
  • 开始时间 开始时间

东方如风

Unregistered / Unconfirmed
GUEST, unregistred user!
例如:update table
set price=price+200
这样的语句,在Query的SQL中要如何将在DBGrid中修改或增加的数值与原数据库中的数值相加后再放回数据库
另外要怎幺循环控制将DBGrid中显示的语句写入其它数据库中呢
 
(1)把原来数值保存在一个变量里在table的beforepost事件中重新给改动的字段赋值
(2)在table的afterscroll事件处理吧
 
同意:antic_ant
 
能具体写详细一下吗
 
两个Query,Query1为
SELECT * FROM table
Query2为
Query2.Close;
Query2.Sql.Clear;
Query2.sql.add('UPDATE table SET price=');
Query2.sql.add(Query1.fieldbyname('price').asstring+'200');

Query1.Close;
Query2.Excsql;
Query1.Open;
 
采用需要修改的表采用CacheUpdate模式,在before update的时侯,
调用Delta包中的原始数据更新另外一个表
 
如果增加的数量是另一个表中的变量呢
 
东方如风,不理解你的意思
你能明确表达一下吗?, 谢谢
 
即:update tablel set price=price+a1;
query1.params[0]:=query1price.value;
此语句在update中是错误的,不能用一个变量,直接赋值,但我不知在
update中要如何写,是不是用这样写法,这样写法是否正确:
update table1 set price=:a1;
query1.Params[0].datatype:=ftfloat;
query1.Params[0].ParamType:=ptinput;
a1:=queyr2price.value+query1price.value;
query1.params[0]:=a1;
请帮忙
 
with query1 do
begin
close;sql.clear;
sql.add('update table1');
sql.add('set price=:a1');
ParamByName('a1').asfloat := query2price.value + query1price.value;
ExecSql;
end;
 
Derlin 的回答十分的好,可惜在此之前半小时,我问题已解决
 
多人接受答案了。
 
后退
顶部