您好我正在开展迁移项目。前端是在vb6上开发的,后端服务是在C ++ COM上构建的。目前,我们正在将系统迁移到.Net 4.5。
在我的实际代码中,前端和后端模块都使用ADODB来处理数据库。但在此迁移中,我们决定在前端使用SQLClient VB.Net Applciation和Back End仍使用ADODB。
任何人都可以告诉我有什么问题如果我们在系统中一起使用ADODB和SQLCLient。这会影响任何数据库操作(插入,删除,更新调用过程,触发等)。两者都访问相同的Schema。
由于
答案 0 :(得分:2)
OleDb更通用。如果您将来移动到不同的数据库类型,那么它很可能会有一个Ole驱动程序,您不必更改代码。
另一方面,Sql Server本机驱动程序应该更快,如你所说,它有更好的参数支持(参数可以使用名称,而不必按顺序)。
ado库存在一些局限性,其中一些已知的局限性
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类。
某些功能部分或不支持
希望有所帮助