帮忙说一下 (1分)

  • 主题发起人 主题发起人 苦海无边
  • 开始时间 开始时间

苦海无边

Unregistered / Unconfirmed
GUEST, unregistred user!
我用一个adoquery把数据库满足a条件的记录都查询了出来
然后我想把这些数据里的a都变成b
这样写行不行
for i := 1 to query.RecordCount do
begin
query.edit;
querya.value:=b; //各位就当a是各字段;
query.post;
query.next;
end;
为啥我这么一写,他把我库里说有的记录都变成b了呢
而不是选出的这些
我的sql语句绝对没问题
我记得这样写就行啊
请教原因
 
你把query的sql贴出来
 
你肯定没有加where 条件所以update了所有的内容
 
with eatdata.query_unposted do
begin
sql.Clear;
sql.add('select distinct Temp_id , Temp_tenum , Temp_DishPost');
sql.add('FROM Tempsell');
sql.add('WHERE Temp_Dishpost=false');
open;
end;
 
给你个sql语句:
update yourtable
set value=b
where value=a
 
for i := 1 to query.RecordCount do
// ^^^^^^^^^^^ --- 刚打开时为“0”
begin
query.edit;
querya.value:=b;
// ^------哪儿出来的?
querya.post;
// ^------哪儿出来的?
querya.next;
// ^------哪儿出来的?
end;

看不懂你的意图

UPDATE TABLE
SET ZIDUAN = "b"
WHERE ZIDUAN = "a"
有问题吗?
 
>select distinct Temp_id , Temp_tenum , Temp_DishPost
>FROM Tempsell
>WHERE Temp_Dishpost=false

我觉得上面的查询应该是只读的, 因为他包含了distinct

 
tseug:
可他把我库里所有的记录都变了
Oops:
我知是举个例子,没打源码。

到底是哪里的问题啊
我觉得我没错阿
解决了我加分!!!!



 
to 苦海无边,:
用UPDATE 就好了呀
UPDATE TempSell
Set A = B
Where Temp_Dishpost=false
 
后退
顶部