我在form1的create()中将Adotable1中的记录数取出来,进行如下操作
Adotable1.Open;
ii := Adotable1.RecordCount;
Adotable1.first;
while not Adotable1.eof do
begin
...
end
之后再将Adotable1关掉,然后在别的函数中再将Adotable1打开却发现Adotable1中的记录没有全都取出来,我用程序跟踪了一下发现Adotable1.RecordCount等于1了;,我用的是access数据库.
请高手指教!!!
还有一个问题就是在别的事件中,我想修改表中的某一个字段总是提示错误,如下:
Adotable1.Edit;
Adotable1.FieldByName('字段').Asstring := Edit1.text;
Adotable1.Post;
总是出错,不知为什么???
但是我用如下方法确是可以:
Adotable1.delete;
Adotable1.append;
Adotable1.FieldByName('字段').Asstring := Edit1.text;
Adotable1.post;
请高手指教!!!(自我判断可能是Adotable1的设置有问题)
回答正确的给高分!!!

解决方案 »

  1.   

    form1的Show()事件中做。
    Adotable1.Open;
    ii := Adotable1.RecordCount;
    Adotable1.first;
    while not Adotable1.eof do
    begin
    ...
    end
    如果这还是只有一条的话。那你看你的库里面是只有一条否。后面一个问题报什么错误呢。
      

  2.   

    procedure TForm1.FormCreate(Sender: TObject);
    var ii:integer;
    begin
    Adotable1.Open;
    ii := Adotable1.RecordCount;
    Adotable1.first;
    while not Adotable1.eof do
    begin
    ListBox1.Items.Add(adotable1.fieldbyname('center').AsString);
    adotable1.Next;
    end;
    showmessage(inttostr(ii));end;procedure TForm1.Button1Click(Sender: TObject);
    var ii:integer;
    begin
    adotable1.Close;
    Adotable1.Open;
    ii := Adotable1.RecordCount;
    showmessage(inttostr(ii));
    end;procedure TForm1.Button2Click(Sender: TObject);
    begin
    Adotable1.Edit;
    Adotable1.FieldByName('center').Asstring := Edit1.text;
    Adotable1.Post;
    end;没有任何问题
      

  3.   

    如果还有问题就是你adotable的设置问题
    你只要设置connection 和 tablename