环境:win2000 Server+Delphi7
主要代码如下:
 BDE_Ttable:=TTable.create(nil);
 BDE_Ttable.Append;
 num:=getnexttypenum; 
 BDE_Ttable['apply_type']:=num;
 BDE_Ttable['typename']:=edtapplytype.Text;
 BDE_Ttable.Post;老是提示出错:"dataset not in edit or insert mode",为什么会这样?求助!(本人是新手,请顺便告诉我怎么结败给分,我会第一时间给分。感激不尽!)

解决方案 »

  1.   

    上面的代码贴差了一点,在BDE_Ttable:=TTable.create(nil)之后还有数据库、表等的赋值。
      

  2.   

    对于怎么结贴我已经会了。如果问题解决马上给分。
    在下面这段代码之前还有个initiation函数,initiation函数是在From oncreate时执行的.
    也就是说关于TTable对数据库表的连接是没有问题的。
     BDE_Ttable.Append;
     num:=getnexttypenum; 
     BDE_Ttable['apply_type']:=num;
     BDE_Ttable['typename']:=edtapplytype.Text;
     BDE_Ttable.Post;
    //////////////////////////////////////////////////
    initiation函数的定义:procedure TF_addapplytype.initiation;
    begin
     BDE_Ttable:=TTable.Create(nil);
     try
     databasepath:=extractfilepath(application.ExeName)+'data';
     BDE_Ttable.DatabaseName:=databasepath;
     BDE_Ttable.TableName:='apply_type_name';
     BDE_Ttable.Open;
     except
     freeandnil(BDE_Ttable);
     end;
    end;
      

  3.   

    不是open的问题。在append之前我已经调用open了
      

  4.   

    可指定数据库名,并且你使用的表必须,READONLY=FALSE,且一定要OPEN TABLE,否则是打不开的.
      

  5.   

    问题已经得到解决。原来我在append之后调用了getnexttypenum函数,这个函数中有BDE_Ttable.last这条语句,把BDE_Ttable的state变为bsBrowse了。多谢各位的关注。结贴。