记录删除不了 (50分)

  • 主题发起人 主题发起人 94132195
  • 开始时间 开始时间
9

94132195

Unregistered / Unconfirmed
GUEST, unregistred user!
今用query配合updatesql(已写了DELETE),直接选取DBGRID内的记录删除后台SQL的数据
执行query.delete后DBGRID内的该条记录已不再显示,但为何退出该系统后,第二次运
行时该记录又再出现,求救THANKS!
query.(active cachedupdates autocalcfields) is true and updateobject is updatesql
updatesql的DELETE的写法为:
delete from query
where id=:old_id;
 
with query1 do
begin
ApplyUpdates;
CommitUpdates;
end;
 
to ugvanxk
你的意思是先delete 后update吗
 
query1.delete;就行了.不然的话就用SQL,delete一次之后再select一次.OK?
 
to magic6326
在后台用DELETE那肯定行,你的意思是不用updatesql控件吗
 
使用updatasql进行数据更新时,必须使用applyupdata或其它相似函数进行将缓存中的数据
提交到数据库中,否则数据的修改结果只在缓存中而没有在后台数据库中更新.
 
在你执行完操作后,applyupdates
否则是没有用的,不会提交数据库
 
to twos
执行如下语句后提示update failed,请问删除后更新后台数据库的具体的方法?
with query1 do
begin
Delete;
database1.ApplyUpdates([query1]);
query1.Active:=false;
query1.Active:=true;
dbgrid1.Refresh;
end;
 
是不用updatesql控件了.就用query1再select一次就行了.
 
有没有人能给我提供一段调试通过以上功能的代码,我不要嘴上说的东西
 
一种方法
query1.SQL.Clear;
query1.SQL.Add('DELETE * FROM Table1 WHERE ID=1);
query1.ExecSQL;
query1.SQL.Clear;
query1.SQL.Add('SELECT * FROM Table1);
query1.OPEN;
第二种:query1.Delete;
两种都行,我都试过。
 
to :94132195
这样写:
with query1 do
begin
Delete;
ApplyUpdates(1);
commitupdates;
end;
 
to :pcc_mmz1
运行到
ApplyUpdates(1);
错误提示为:too many actual Parameters
 
to :94132195
看了你的问题,很可能是你的表中有多条相同记录,无法确定删除哪一条。
再试试。
with query1 do
begin
query1.add('delete from tablename where id= :idParam');
query1.exesql;
ApplyUpdates(1);
commitupdates;
end;
 
to: pcc_mmz1
如果是这样都行
with query1 do
begin
Delete;
commitupdates;
end;
但是随便是加上以下两句话的一句就连调试都通不过,为啥?
query1.exesql;
ApplyUpdates(1);
 
须没完全回答但也加分了,thanks!
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
I
回复
0
查看
433
import
I
I
回复
0
查看
540
import
I
后退
顶部