OleDb 更通用。如果您将来迁移到不同的数据库类型,那么它很有可能会有一个 Ole 驱动程序,而您不必更改那么多代码。
另一方面,正如您所说,Sql Server 原生驱动程序应该更快,并且它具有更好的参数支持(参数可以使用名称并且不必按顺序排列)。
ado 库中存在一些限制以下一些是已知限制
- 不支持分层记录集。
2. 服务器端游标(FO-RO 游标除外)仅支持 Microsoft SQL Server 数据库。
3. Recordset.Open 方法支持多条分号分隔的SQL 语句,但Connection 和Command 对象的Execute 方法不支持。
4.Oracle数据库不支持参数化存储过程
5.Connection和Recordset对象的Open方法允许异步执行,但Connection和Command对象的Execute方法不允许。
6.Recorset 对象的UpdateBatch 方法要求SQL 源语句包含所有涉及的表的关键字段,并且不适用于旧语法JOIN 语句、嵌套SELECT 语句和派生表。7. 用于打开服务器端键集和动态游标的 SELECT 语句必须至少包含一个不可为空的键列。
8.Move 方法不起作用并引发服务器端动态游标异常。
9. Recordset 类的Index、Seek、MarshalOption、StayInSync 成员没有实现,被标记为过时。
10. Recordset 类的 PageSize、Clone 和 Find 成员没有为键集和其他服务器端游标实现。
11.Command 类的CommandStream、Dialect、NamedParameters 和Prepared 成员未实现并被标记为过时。
12.Stream类的ReadText、WriteText、SkipLines方法没有实现,标记为废弃。
13.Connection 或 Recordset 对象的一些动态属性不受支持。
14.不支持 ADODB.Record 类。
部分功能或不支持某些功能
希望能帮助到你