procedure TForm2.Button3Click(Sender: TObject);
var
  counter:integer;
begin
    ADOTable1.Open;
    counter:=ADOTable1['COUNTER_VALUE'];//'COUNTER_VALUE'是integer类型。
    inc(counter);
    ADOTable1.Edit;
    ADOTable1['COUNTER_VALUE']:=counter;
    ADOTable1.Post;  
    Edit1.text:=IntToStr(ADOTable1['COUNTER_VALUE']);    
end;
这段程序出错了。我以前用的是BDE里的Tabel,是对的。但换成是ADO里的ADOTabel就出错了。我经过测试想是counter:=ADOTable1['COUNTER_VALUE']出错了。但是我不知道为什么错,怎么改才可以动态取值和赋值

解决方案 »

  1.   

    counter:=ADOTable1['COUNTER_VALUE']
    的写法没错!
    看看你的ADOTable1对像打开了没?注意从bde转到ado时,tabelname:='登陆名.表名';
      

  2.   

    counter:=ADOTable1['COUNTER_VALUE']改为counter:=ADOTable1.FieldByName('Counter_Value').AsInteger;
      

  3.   

    counter:=ADOTable1.FieldByName('Counter_Value').AsInteger;
    我想你在编译的时候会不会就出错了
      

  4.   

    试试下面的代码;
    虽然没发现与你的有什么不同;呵呵;procedure TForm2.Button3Click(Sender: TObject);
    var
      counter:integer;
    begin
        ADOTable1.Open;
        counter:=ADOTable1.fieldbyname['COUNTER_VALUE'].asstring;
                                ;//'COUNTER_VALUE'是integer类型。
        inc(counter);
        adotable1.edit;
        ADOTable1.append;
        ADOTable1.fieldbyname['COUNTER_VALUE'].asstring :=counter;
        ADOTable1.Post;  
        Edit1.text:=IntToStr(ADOTable1['COUNTER_VALUE']);    
    end;
      

  5.   

    counter:=ADOTable.fieldbyname['COUNTER_VALUE'].asinteger;//'COUNTER_VALUE'是integer类型。