C
cAkk
Unregistered / Unconfirmed
GUEST, unregistred user!
几种常用的第三方数据库控件Bug列表
1.ODBC Express
这是一个很讨厌的bug,虽然不是无药可救:
select * from table where field1=:a OR field2=:a OR field3=:a
谁都看得出,上面的sql语句实际上只有一个参数a,但是ODBC Express
认为是3个参数,所以运行时会得到错误信息:"参数个数不匹配",解决
办法有2种:
- 老老实实写3个参数:
select * from table where field1=:a1 OR field2=:a2 OR field3=:a3
然后分别给参数们赋值;
- Dick提供了一个解决办法,在
http://www.gislab.ecnu.edu.cn/delphibbs/DispQ.asp?LID=159619
2.mODBC
不论是query还是table,得到数据集里面永远没有boolean类型的字段,
似乎它不承认这种类型的字段 ---- 如此著名的控件居然有这么明显
的bug,实在不可思议!
3.ODBC98
尚未发现Bug.
4.DiamondAccess 1.85 (以前的版本没有测试过)
看看这个sql语句:
select * from tablename where id=:id
注意,如果像上面的语句那样,将字段名和param的名字定义的一样,
Diamond将返回整个记录集,而毫不理会你的判断条件where...
你必须将参数名字起的和字段名不一样才起作用,比如:
select * from tablename where id=:idx
这个bug比较难以理解,可惜没有源码,不知道怎么回事.
大家使用这些控件是要小心.
1.ODBC Express
这是一个很讨厌的bug,虽然不是无药可救:
select * from table where field1=:a OR field2=:a OR field3=:a
谁都看得出,上面的sql语句实际上只有一个参数a,但是ODBC Express
认为是3个参数,所以运行时会得到错误信息:"参数个数不匹配",解决
办法有2种:
- 老老实实写3个参数:
select * from table where field1=:a1 OR field2=:a2 OR field3=:a3
然后分别给参数们赋值;
- Dick提供了一个解决办法,在
http://www.gislab.ecnu.edu.cn/delphibbs/DispQ.asp?LID=159619
2.mODBC
不论是query还是table,得到数据集里面永远没有boolean类型的字段,
似乎它不承认这种类型的字段 ---- 如此著名的控件居然有这么明显
的bug,实在不可思议!
3.ODBC98
尚未发现Bug.
4.DiamondAccess 1.85 (以前的版本没有测试过)
看看这个sql语句:
select * from tablename where id=:id
注意,如果像上面的语句那样,将字段名和param的名字定义的一样,
Diamond将返回整个记录集,而毫不理会你的判断条件where...
你必须将参数名字起的和字段名不一样才起作用,比如:
select * from tablename where id=:idx
这个bug比较难以理解,可惜没有源码,不知道怎么回事.
大家使用这些控件是要小心.