关于主从表的查询,编译通过,在本机(d7,sqlserver环境)和另外一台机器上(也装delphi7)顺利执行,能显示查询结果界面,到其他机器上,点击查询确定,就出现"未知错误".
   如果是adoquery的问题,应该在本机也会出现的,现在弄不明白了.
   望老鸟们指点一二.多谢.
   我查询form用到了Tadoquery,Tdatasource(两组)Tf1book,Tolecontainer控件.

解决方案 »

  1.   

    如果你使用了计算字段的话,"未知错误"只在ide 环境出现,你只需将计算字段的lookupcache打开即可
    Lookup字段经常会出现这种问题
    请修改Adodb.pas的TCustomADODataSet.LocateRecord,在最前面加入如下语句:
     if Varisnull(keyValues) or VarisEmpty(KeyValues) then
         begin
           result:=false;
           exit;
         end;
    将这个pas加入到你的项目里,或者编译成dcu,将其拷入$delphi\lib底下.
      

  2.   

    另外一个办法也试试,看别人的帖子在表的onNewRecord事件中給item_id(这个字段随意的,不重要的一个字段)
    字段一個沒用的值,就是不能讓它為Null
    ,不要忘記在插入前后設置
    adoquery1.AutoCalcFields值。如:
    procedure TForm1.ADOQuery1NewRecord(DataSet: TDataSet);
    begin
      adoquery1.FieldByName('item_id').asinteger:=0;
    end;procedure TForm1.ADOQuery1BeforeInsert(DataSet: TDataSet);
    begin
     adoquery1.AutoCalcFields:=false;
    end;procedure TForm1.ADOQuery1AfterInsert(DataSet: TDataSet);
    begin
     adoquery1.AutoCalcFields:=true;
    end;
      

  3.   

    谢谢大家关心,问题解决了,发现是f1book好像有问题,没有注册还是怎么的。后来用stringgrid代替就好了。散分