0

我希望我的应用程序能够与多个数据库供应商合作。换句话说,根据客户端的数据库基础架构,数据库架构将部署在 Oracle、MySQL、SQL Server 之一上。我介于使用 ODBC 和 OleDB 之间,选择时必须考虑以下关键要求:

  • 必须从应用程序中创建 DB 模式(有人告诉我,在这种情况下 OD​​BC 可能有问题,这是真的吗?)
  • 强烈希望最终用户不需要安装任何附加软件(即 Oracle Instant Client 等)。因此,驱动程序最好是:

    1. 已经与 Windows 捆绑在一起。Windows 是否有通用版本的 ODBC/OleDB?
    2. 能够以某种方式与应用程序捆绑在一起。Java 中的 IE,我可以将 MySQL 的 JDBC 驱动程序作为 .jar 文件与我的应用程序捆绑在一起。这可以通过包含 .dll 文件来完成吗?
  • 强烈希望最终用户不需要进行任何外部配置,例如创建 ODBC 数据源

干杯!

4

4 回答 4

2

您确实需要安装适当的、特定于数据库的驱动程序。

安装后,连接字符串在某种程度上也将依赖于数据库。

使用 ADO.NET,代码中的许多数据库交互可以通过使用公共接口(例如IDbCommand)而不是提供者特定的子类而独立,但仍然需要提供者特定的工厂。

即便如此,SQL 方言和数据类型也有很大差异。

期望需要非常熟悉构建自己的摘要、控制反转 (IoC) 和调试每个不同的数据库。后者强烈表明从项目开始就在多个数据库平台上积极调试,以避免突然需要大量的移植工作。

于 2009-07-14T18:27:54.790 回答
1

嗯,是的,但您不需要 ODBC 或 OLEDB 来执行此操作。您可以从此处http://www.datadirect.com/products/net/index.ssp获得适用于 SQL Server、MySQL 和 Oracle 的 100% 本机 ADO.NET 提供程序。

于 2009-07-14T17:23:11.583 回答
1

两者都需要数据库驱动程序。如果不是,ODBC 层不知道如何连接到远程数据库。

于 2009-07-14T17:17:25.993 回答
1

大多数 ODBC/OLEDB 驱动程序都使用“通用语言”,它仍然需要供应商提供的某种本机设备驱动程序或“客户端安装”才能正确连接到数据库。

您要寻找的是一个合适的 ADO.NET 驱动程序,该驱动程序将内置所有必需的库,或者它可能只需要一个不需要“客户端安装”的第二个 DLL 即可。这也将允许在 app.config 文件中轻松使用 Connectin 字符串以及 ADO.NET 提供的所有优点。

以下是一些您需要的常见链接:

于 2009-07-14T17:18:21.030 回答