要先用EDIT吧?
你写的好象错了

解决方案 »

  1.   

    你先用了edit,还没有post就又insert,这样不行,去掉editkey
      

  2.   

    这样就行了。请看   if self.ADOTable1.CanModify then
        begin
          self.ADOTable1.Edit;
          self.ADOTable1.Insert;
          self.ADOTable1.fieldbyname('产品名称').asstring:='1';
          self.ADOTable1.Post;
        end    else
           begin
            showmessage('无法写数据库');
           end;end;
      

  3.   

    对了,我的table1没有指定datebasename,不知道这有没有关系.
      

  4.   

    你的Table1是否有字段是通过lookup来得到的?
    有可能是你的该字段的值不在被lookup的表的限制范围之内.
      

  5.   

    你的这个字段是否是Lookup字段或有外键约束等
    看一下相关的表里你的赋值是否不存在或超出范围
      

  6.   

    昨天我整了半天,好像是数据库的问题.我启动了那个BDE Administrator,发现里面的DateBase居然只有一个paradox,其他的DateBase都不知道跑哪里去了,我不知道怎么添加,就重装了Delphi,重装了以后,就可以往里写东西了.但是,我还是不知道原因,怎么突然间说没就没了呢?还有,没有Datebase我的表也一样能显示东西,手动添加也可以,为什么就不能自动添加?  而现在也不是没问题,现在是可以写东西了,不过我要是不指定Datebasename的话,它跑到我的文档里去找文件去了,而不是在当前目录,有什么办法把它改回来吗?并且,不指定Datebasename,我建主明细表的时侯,在设置masterfields的时侯,它又在ODBC的目录里找,这到底是怎么回事啊,乱七八糟的.
      

  7.   

    我手上没有ADO的书,对ADO又什么都不知道,怎么用啊
      

  8.   

    用ado很方便的,没有资料也没关系,看看帮助就会了,修改应该就是先adodataset1.edit,.....adodataset1.post;
      

  9.   

    With AdoDataSet1 Do Begin
        If CanModify Then Begin   
          Insert ; //Or Edit;
          FieldByName('标题').AsString:='1';
          Post;
        End Else Showmessage('无法写数据库');
      End;ADO已成为趋势和流行,BDE早已成为昨日黄花,我早忘了BDE怎么用了,哎,前尘往事如云烟
      

  10.   

    ADO的书吗,看李维的书了(共三本,其中一本专门讲Ado的)!
      

  11.   

    多谢各位了,问题已经解决,是BDE出的问题.可是我还是不知道到底这个问题是怎么产生的,以及其真正的解决方法(我现在是重新建数据库).不管怎么样,多谢大家了,分不多,还请见谅.