在FORM内有:
Edit1..Edit5和一个BUTTON1,
一个Table1:设置了:TableName为animals.dbf,
一个DataSource1:设置了DataSet为Table1,TableName为animals.dbf
一个Database1:AliasName为DBDEMOS,DatabaseName为demo(我选择内置的数据库及表)
procedure TForm1.Button2Click(Sender: TObject);
begin
     Table1.open;
     Table1.active:=true;
     Table1.readOnly := false;
     Table1.Last;
     Table1.Edit;
     Table1.FieldByName('name').AsString := Edit1.Text;
     Table1.FieldByName('size').AsString := Edit2.Text;
     Table1.FieldByName('weight').AsString := Edit3.Text;
     Table1.FieldByName('area').AsString := Edit4.Text;
     Table1.FieldByName('bmp').AsString := Edit5.Text;
     Table1.Post;
     Table1.Close;
end;
end.
我是看初学者,是看过一段教程后理了一下思路写出来的,但是报错:
Table1:Cannot perform this operation on an open dataset请各位多指教

解决方案 »

  1.   

    procedure TForm1.Button2Click(Sender: TObject);
    begin
         Table1.open;
         Table1.Last;
         Table1.Append;
         Table1.FieldByName('name').AsString := Edit1.Text;
         Table1.FieldByName('size').AsString := Edit2.Text;
         Table1.FieldByName('weight').AsString := Edit3.Text;
         Table1.FieldByName('area').AsString := Edit4.Text;
         Table1.FieldByName('bmp').AsString := Edit5.Text;
         Table1.Post;
    end;
    end.
      

  2.   

    用ADOQUERY比较好
    procedure TForm1.Button2Click(Sender: TObject);
    begin  
    with ADOquery1 do
    begin
      close;
      sql.clear;
    sql.Text:='INSERT INTO tablename (name,size,weight,area,bmp ) values ('+
                       quotedstr(Edit1.Text)+
                      ','+quotedstr(Edit2.Text)+
                      ','+quotedstr(Edit3.Text)+
                      ','+quotedstr(Edit4.Text)+
                      ','+quotedstr(Edit5.Text)'; 
              ExecSQL;
    end;
    end.
      

  3.   

    To:xufenglong(天天向上) 我试着用你的方法去做了,它给出的报错是Missing contention or connectionString这我该怎么做呢????
      

  4.   

    一个Table1:设置了:TableName为animals.dbf,
    你把 table1的 databasename设置成你对应的数据库