在ADODATASET控件的AfterInsert事件中赋值:filedbyname('fid').asinteger:=2;运行时提示“无法识别的错误”,我的DATSET中有LOOK字段。
请问一般有几种原因会出现这样的错误??
我的QQ是2059478

解决方案 »

  1.   

    先要edit 然后再赋值。你干吗不一起insert进去,还要insert后再赋值?
      

  2.   

    问题根本就不出在这里,跟踪一下吧,十有八九出在LOOKUP字段的关联上。
      

  3.   

    filedbyname('fid').value:=2;
    不好意思,只是笔误.但相同一样的赋值代码语句在beforepost事件下又能正常这又是为什么呢?
    就一句语句,原本其它模块下在afterinsert事件下都可以的,后来又不行了.
    真的找不出原因.
    跟踪不到呀,我用F7一步就出错了.....
    真是急死了...
      

  4.   

    在afterinsert事件下是不用再EDIT的,因为我用了APPEND,是DBGRID绑定的.在insert后自动将主健和其它可以默认的字段赋值.
    这个方法真的很简单,也曾用过.但真的不知道为什么会出错.
      

  5.   

    有道理,要么LOOKUP,多表操作,要么没有edit
      

  6.   

    你对数据库进行了 insert 操作,你在 afterinsert 时候又对 'fid' 字段进行操作,因为你的insert个事务未完成之前不能开始一个新的事务,所以导致了这样的错误,我觉得问题可能就出在这
      

  7.   

    报告:我想都不是你们所说的。我把所有事件都去掉,然后增加一个按钮,过程如下:
    with at_main do
    begin
        append;
        fieldbyname('fid').asinteger:=2;
        post;
    end;
    执行到:fieldbyname('fid').asinteger:=2;还是出行同样的“无法识别的错误”。
    天呀,到底是什么回事呀
      

  8.   

    可能与表结构有关系,FID是什么类型的啊。
      

  9.   

    fid是integer;表结果是进销存的主子表。fid就是说主表的关健字段,所以想默认赋值。