ADODB和SqlClient

时间:2013-05-27 10:35:59

标签: adodb sqlclient

您好我正在开展迁移项目。前端是在vb6上开发的,后端服务是在C ++ COM上构建的。目前,我们正在将系统迁移到.Net 4.5。

在我的实际代码中,前端和后端模块都使用ADODB来处理数据库。但在此迁移中,我们决定在前端使用SQLClient VB.Net Applciation和Back End仍使用ADODB。

任何人都可以告诉我有什么问题如果我们在系统中一起使用ADODB和SQLCLient。这会影响任何数据库操作(插入,删除,更新调用过程,触发等)。两者都访问相同的Schema。

由于

1 个答案:

答案 0 :(得分:2)

OleDb更通用。如果您将来移动到不同的数据库类型,那么它很可能会有一个Ole驱动程序,您不必更改代码。

另一方面,Sql Server本机驱动程序应该更快,如你所说,它有更好的参数支持(参数可以使用名称,而不必按顺序)。

ado库存在一些局限性,其中一些已知的局限性

  1. 不支持分层记录集。
  2. 2.仅Microsoft SQL Server数据库支持服务器端游标(FO-RO游标除外)。

    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类。

    某些功能部分或不支持

    希望有所帮助