将你程序中的FieldValues和Field.Value改为Field.AsVariant调用方法即可。
—————————————————————————————————
MaximStr := '宠辱不惊,看庭前花开花落,去留无意;
             毁誉由人,望天上云卷云舒,聚散任风。';
if Not Assigned(I) then
  I := TI.Create(Nil);
I.Maxim := MaximStr;
I.Explain := '假如上述代码中出现“OA”、“3D”等字样,改为“=”等';
I.Desire := '加不加分随你';
—————————————————————————————————
       

解决方案 »

  1.   

    两种情况:
    1.强制类型转换,不合乎编译器逻辑。
    2.试图用AddIndex方法为一个索引指定了一个“Null”名字。
    查找一下你的代码中有没有以上两种情况。
      

  2.   

    1.强制类型转换,不合乎编译器逻辑
    2.使用AddIndex方法为一个索引指定了一个“Null”名字。
    查找一下你的代码,有没有以上两种情况。
      

  3.   

    这个问题我也碰到过,比如说数据库中是钱,而打开窗口时不是,这时就会出错,主要就是因为类型不对,建议你把Field.value改为field.asvariant,这样delphi会自动进行类型的转换。