现有问题求教:
一、我用ADOConnection1和Adoquery1及DBgrid1想实现Label1.caption显示效果如(1/10)代表当前记录为1总记录为10,当移动记录时,即发生改变如(2/10)请问应当在控件或窗体中的什么过程中添加代码呢?也就是说怎样自动判断当前位置。adoquery中有无此过程呢??
二、我的数据库中有一字段序号想实现如1、2、3……的效果。我加入代码:
with adoquery1 do
begin
  for i:=RecNo to RecordCount-1 do //(recno是当前选定的行号)
  begin
    if  Fieldvalues['序号']<>RecNo then
        Fieldvalues['序号']:=RecNo;
    Next;
end;
end;
却出现“adoquery1数据集不在修改或插入模式”的错误,请问如何解决??
当我删除一个记录或添加一个记录希望序号立即发生改变,请问应将上述代码添至何过程中呢??多谢!!!

解决方案 »

  1.   

    我刚才又试了一下.
    procedure Tfrmkyk.ADOQuery1AfterDelete(DataSet: TDataSet);
    var i:integer;
    begin
      with adoquery1 do
      begin
      for i:=RecNo to RecordCount-1 do//(recno是当前选定的行号)
       begin
        if  Fieldvalues['序号']<>RecNo then
        begin
        edit;
        Fieldvalues['序号']:=RecNo;
        post;
        end;
        Next;
    end;
    end;
    发现为何最后一条记录不能添加上序号呢?而且不能改变,也就是说形成了12346的效果而不是12345的效果??
      

  2.   

    for i:=0 to RecordCount-1 do试试呢