我是一个新学者,程序代码如下:
   按增加按钮时:
   TADOQuery1.open;
   TADOQuery1.Append;
   TDBedit1.SetFocus;
   按结束按钮时:
   TADOQuery1.post;
   TADOQuery1.close;
但出现了以下错误,按增加按钮时,直接指向最后一条记录,然后输入内容后,按结束按钮时出现了
   Project file_P.exe raised exception class EDatabaseError with message 'ghsda:Dataset not in edit or insert mode'. Process stopped. Use Step or Run to continue.

解决方案 »

  1.   

    TADOQuery1.open;
       TADOQuery1.Edit;
       TADOQuery1.Append;
       TDBedit1.SetFocus;
      

  2.   


    如果还不行,在
    Post前加TADOQuery1.Edit;
      

  3.   

    TAdoquery,T开头的是一些类。你的这个是什么意思呢?你的问题,就是说数据库必须处于编辑或者插入状态才可以。如果是添加直接Insert就可以了。不用edit 之后再append。with AdoQuery1. do
    begin
      Open;
      setfocus;
      insert;
      post;
      close;
    end;
      

  4.   

    请你好好看看delphi的帮助文件。如果你这么写:TAdoQuery1会给别人误解。请你写清楚。
      

  5.   

    按增加按钮时:
       TDBedit1.SetFocus
       TADOQuery1.open;
       TADOQuery1.Append;
      

  6.   

    对不起,可能是我写错了,前面都不用加T
    我按reallike的要求改了,但是出现以下问题:
    Debugger Exception Notification
       Project ghs_P.exe raised exception class EOleException with message '无法插入空行。行必须至少有一个列值集。'Process stopped. Use step or Run to continue.
      

  7.   

    哈。你没有连接吗?ADOQuery.connection你添加了连接吗?另外你的AdoQuery.sql里面有东西吗?拜托!仔细看看你的东西。
      

  8.   

    我的程序是这样的,左面是一个DBgrid,右面是详细的内容,按reallike的方法,当按增加时,是在左面出现了一个空记录,当想在右边的DBedit中输入内容时,仍然出现和以前一样的问题
      

  9.   

    我说了,你的adoQuery.connection到底建立连接没有?你的AdoQuery.sql里面添加了sql语句了吗?不是你的dbgrid的问题。不要说这个。
      

  10.   

    连接了,有数据,按增加时,左面的DBgrid出现了所有的数据表内容,但就是指向了最后一条记录,未增加新的一条记录?
      

  11.   

    大哥们,他用的是ADOQUERY,而不是ADOTABLE,
    ,我想他一定是adoquery用的是查询语句,所以后面的不能用,我告诉你,你要是用ADOQUERY的话就必须自己写增加的代码才行,
    要不,你就用ADOTABLE
      

  12.   

    dickeybird888说的对,是这样的,我用的是ADOQuery,因为我想在一个程序里实现模糊查询和增加、修改、删除等功能。
      

  13.   

    我当然知道,所以我说AdoQuery.sql得加一些SQL语句才能用。AdoQuery也可以添加的。如果你说的这种情况,看来你的DBGrid还没有更新就是了。