Delphi中的ODBC和ADO
ADO 和 ODBC都用来实现数据库的访问,都是对底层数据驱动的封装,在编程时都可以满足对数据库的访问。在Delphi中也提供了BDE和ADO组件封装,前期做项目的时候数据库采用的Access和SQLServer,没有考虑就用的ADO,后来的项目中用到了MySQL,而没有ADO直接访问MySQL的驱动,又觉得采用ODBC是最好的,因为所有的数据库都提供ODBC驱动。后来才发现ADO也可以直接使用ODBC的驱动,简直是太Faint了。
据了解,ADO的速度和支持程度要比ODBC的好,看来以后所有的数据库访问都可以大胆放心的使用ADO了,大不了改一下连接串就可以支持ODBC了。
但在Delphi中BDE和ADO控件还有很多的不同,感触最深的就是两个控件中Query的更新操作了。BED的TQuery大部分情况只能返回只读的记录集而不能修改,除非你设置TQuery的RequestLive属性,并且在结果数据集中只包含一个表,注意不能是多个表的查询。而TADOQuery就没有此限制,随便写SQL语句然后直接更新字段的值,最后Post就可以了。当然对于TQuery返回的不能修改的记录集也可以采用一种方法弥补,那就是用TUpdateSQL配合,可以设置TQuery的UpdateObject属性为一个TUpdateSQL,设置TUpdateSQL的更新语句就可以了。