ADO+ORACLE简单的一对多问题(2)
ADOQUERY1.SQL.TEXT =:'SELECT * FROM INVO' //主表
ADOQUERY2.SQL.TEXT =:'SELECT * FROM INVOSUB WHERE DH=:DH' //从表
如果DH这个字段是字符串类型(VARCHAR2),这个一对多设置没问题;
但是要是数字类型(INTEGER),OPEN数据集的时候就会报错: 未指定的错误。
我在参数的DATATYPE 用了FTINTEGER、FTFLOAT等,还是报这个错误。
请问是不是该修改参数的类型? 谢谢!
[解决办法]
字符类型变数字类型,一起变应该没有问题啊
另:冒号和等号反了,参数名最好不要与字段名相同
ADOQUERY1.SQL.TEXT :='SELECT * FROM INVO' //主表
ADOQUERY2.SQL.TEXT :='SELECT * FROM INVOSUB WHERE DH=:sDH' //从表
ADOQuery2.Parameters.ParamByName('sDH').Value:=ADOQUERY1.FieldByName('DH').AsInteger;
[解决办法]
冒号和等号反了,参数名最好不要与字段名相同
上面的说法是错误的。在SQL中加:表示的是变量。
变量名定义和字段名一样是不是很好