ado删除数据表中记录,为何不听指令?(100分)

  • 主题发起人 山水之间
  • 开始时间

山水之间

Unregistered / Unconfirmed
GUEST, unregistred user!
我用adotable删除数据表中第一条记录,然后在最后添加一条新记录,为何每次不是删第一条,而是在数据表中间删除一条记录?
。。。。(略)
tablename:='鼓风动能';
active:=true;
if recordcount>=180 then
begin
first;
edit;
delete;
end;
last;
edit;
append;

FieldValues['dt'] := now;
FieldValues['gfdn1'] := gfdn[1];
FieldValues['gfdn2'] := gfdn[2];
FieldValues['gfdn3'] := gfdn[3];
FieldValues['gfdn4'] := gfdn[4];
FieldValues['gfdn5'] := gfdn[5];
FieldValues['gfdn6'] := gfdn[6];
Post;
close;
 
不要edit
 
就照你的改试试看:
tablename:='鼓风动能';
active:=true;
first;
if recordcount>=180 then
begin
edit;
delete;
end;
append;
FieldValues['dt'] := now;
FieldValues['gfdn1'] := gfdn[1];
FieldValues['gfdn2'] := gfdn[2];
FieldValues['gfdn3'] := gfdn[3];
FieldValues['gfdn4'] := gfdn[4];
FieldValues['gfdn5'] := gfdn[5];
FieldValues['gfdn6'] := gfdn[6];
edit;
Post;
close;
 
呵呵,不要Edit呀
delete就delete嘛,为啥非要加个Edit??
tablename:='鼓风动能';
active:=true;
first;
if recordcount>=180 then
begin
edit;////////***********这个不要
delete;
 
是啊,Delete时不用加Edit 添加时才加
 
哈哈哈,添加时候也不要,
 
tablename:='鼓风动能';
active:=true;
if recordcount>=180 then
begin
first;
delete;
post;
end;
last;

append;

FieldValues['dt'] := now;
FieldValues['gfdn1'] := gfdn[1];
FieldValues['gfdn2'] := gfdn[2];
FieldValues['gfdn3'] := gfdn[3];
FieldValues['gfdn4'] := gfdn[4];
FieldValues['gfdn5'] := gfdn[5];
FieldValues['gfdn6'] := gfdn[6];
Post;
close;

没试过,可能是这样的吧
 
tablename:='鼓风动能';
active:=true;
if recordcount>=180 then //老是跑到第一条,edit delete ,是什么意思 ?
begin
first;
edit;
delete;
end;
last;
edit;
append;

FieldValues['dt'] := now;
FieldValues['gfdn1'] := gfdn[1];
FieldValues['gfdn2'] := gfdn[2];
FieldValues['gfdn3'] := gfdn[3];
FieldValues['gfdn4'] := gfdn[4];
FieldValues['gfdn5'] := gfdn[5];
FieldValues['gfdn6'] := gfdn[6];
Post;
close;
 
我试过,delete前不加edi的话,就出错,显示:dataset not in edit or insert mode
 
同样的语句,用bde的话,就可以删除,why?ado的bug?
 
老大,你用FIRST时,数据集会处在BROWS状态,你当然不可以直接操作拉。
你用NEXT也是一样的。帮助里写的比较清楚。删除和修改,对数据集状态有要求的。
 
排一下序么
 
顶部