ADOQUERY1.SQL.TEXT =:'SELECT * FROM INVO' //主表ADOQUERY2.SQL.TEXT =:'SELECT * FROM INVOSUB WHERE DH=:DH' //从表如果DH这个字段是字符串类型(VARCHAR2),这个一对多设置没问题;
但是要是数字类型(INTEGER),OPEN数据集的时候就会报错: 未指定的错误。我在参数的DATATYPE 用了FTINTEGER、FTFLOAT等,还是报这个错误。
请问是不是该修改参数的类型? 谢谢!

解决方案 »

  1.   

    字符类型变数字类型,一起变应该没有问题啊
    另:冒号和等号反了,参数名最好不要与字段名相同ADOQUERY1.SQL.TEXT :='SELECT * FROM INVO' //主表ADOQUERY2.SQL.TEXT :='SELECT * FROM INVOSUB WHERE DH=:sDH' //从表
    ADOQuery2.Parameters.ParamByName('sDH').Value:=ADOQUERY1.FieldByName('DH').AsInteger;
      

  2.   


    谢谢你,这样写是可以实现,但是我想要不写代码来实现,有办法不?
    我原先在SQL SERVER上这样设置是可行的。
      

  3.   


    冒号和等号反了,参数名最好不要与字段名相同上面的说法是错误的。在SQL中加:表示的是变量。
    变量名定义和字段名一样是不是很好