请问在删除一条记录后,怎样重新对记录排序???
我用adoquery做删除操作,用adotable做重新排序操作。在执行过程中出现的错误提示是 ‘cannot perform this operation on a closed dataset’ ,请问我的代码该如何修改,或者有什么更好的办法来实现。
我用的代码是
procedure TForm1.Button7Click(Sender: TObject);
begin
pos:=ADOQuery1.FieldValues ['tihao'];
count:= ADOTable1.RecordCount -1;
ADOQuery1.Delete ; ADOTable1.First ;
for j:=1 to count do
begin
if ADOTable1.FieldByName ('tihao').AsInteger = ADOQuery1.FieldByName ('tihao').AsInteger
then
begin
for i:=pos to count do
begin
ADOConnection1.Open ;
ADOTable1.Open ;
ADOTable1.Edit ;
ADOTable1.FieldByName('tihao').AsInteger :=i;
ADOTable1.Next ;
end;
ADOTable1.Refresh ;
ADOQuery1.Active :=false;
ADOQuery1.Active :=true; end
else
begin
ADOTable1.Next ;
end;
end;
end;end;
我用adoquery做删除操作,用adotable做重新排序操作。在执行过程中出现的错误提示是 ‘cannot perform this operation on a closed dataset’ ,请问我的代码该如何修改,或者有什么更好的办法来实现。
我用的代码是
procedure TForm1.Button7Click(Sender: TObject);
begin
pos:=ADOQuery1.FieldValues ['tihao'];
count:= ADOTable1.RecordCount -1;
ADOQuery1.Delete ; ADOTable1.First ;
for j:=1 to count do
begin
if ADOTable1.FieldByName ('tihao').AsInteger = ADOQuery1.FieldByName ('tihao').AsInteger
then
begin
for i:=pos to count do
begin
ADOConnection1.Open ;
ADOTable1.Open ;
ADOTable1.Edit ;
ADOTable1.FieldByName('tihao').AsInteger :=i;
ADOTable1.Next ;
end;
ADOTable1.Refresh ;
ADOQuery1.Active :=false;
ADOQuery1.Active :=true; end
else
begin
ADOTable1.Next ;
end;
end;
end;end;
解决方案 »
- delphi如何实现这样样式的提示框
- 怎么能让程序带参数
- 如何屏蔽WebBrowser上的Ctrl键和鼠标右键?
- 连接有数据库的窗体怎样放到dll中实现重用
- 大家谈谈对OOP(面向对象化)的体会!
- 捡分题!!!
- 在ComBoBox和CheckListBox中可以为每一个项目加一个外来的IDKey值吗?
- 怎样才能够将日期型、数字型的数值添加到字段里
- 请各位帮忙,指出毛病(ado)
- 讨论B/S架构的实现。http://www.wecoo.com是如何实现的?用ASP+Delphi5能做出来吗?
- 高分求:用MediaPlayer能不能有控制条显示?用什么控件能在播放音频文件时可以调整位置?谢谢!
- DBGRID中的editmask问题
[email protected]
我试过了,还是不行.samcrm:
我开始是用aodquery的,也是出现这个问题,所以才改用adotable的.
我是想使字段值重新排列成递增,用SQL语句实现不了。
2.语句最前面应有ADOTable1.open;以及ADOQuery1.open;
将PREPARED设为TRUE就可以修改了.