我正在开发一个新模块,它将通过.net 4.5.1连接到Oracle。
发布于 2016-01-03 22:32:49
ODBC是一个通用的、数据库无关的C API (http://dbpedia.org/resource/C_(programming_language%29)/C+/[C++](http://dbpedia.org/resource/C++)/[ObjectiveC](http://dbpedia.org/resource/Objective-C)-based连接到DBMS,也可以通过ODBC驱动程序管理器),它通常处理旧的和新的ODBC调用之间的转换和代码页/字符集之间的转换,然后通过DBMS特定的ODBC驱动程序将ODBC调用转换到DBMS特定的API和/或DBMS特定的客户层。
C/C+/C++-based tool
-> [optional] ODBC driver manager
-> ODBC driver
-> DBMS libraries
-> DBMSADO.NET是一个通用的、与数据库无关的API,用于C#(通过DBMS特定的ADO.NET提供者将ADO.NET API调用转换到DBMS特定的API和/或DBMS特定的客户端层到DBMS到DBMS的连接)。
C#-based tool
-> ADO.NET Provider
-> DBMS libraries
-> DBMS(JDBC和OLE DB是相似的、与数据库无关的API,分别用于Java和可视化Basic-based到DBMS的连接。)
数据库供应商通常提供“复选框”(意思是“是的,我们有”) ODBC驱动程序和ADO.NET提供程序,以及JDBC驱动程序和/或OLE DB提供程序,它们不一定是性能最好、功能最完善的选项。
我的雇主生产高性能驱动程序和提供者组合,支持范围广泛的DBMS。;鼓励使用免费的两周评估许可证进行比较测试。“单层”选项通常要求DBMS客户端存在于同一主机上;“多层”选项通常在数据消耗主机上删除此要求。
基于C#的工具不能直接连接到ODBC驱动程序,但是它们可以使用用于ODBC数据源的ADO.NET提供程序来连接这些API。ODBC ADO.NET没有固有的速度优势,但是由于额外层的API转换,这种桥接解决方案有一些速度损失。
C#-based tool
-> ADO.NET Provider
-> ODBC driver
-> DBMS libraries
-> DBMS(当您选择ODBC数据源作为C#编程项目的目标时,Microsoft的编程工具将使用Windows内置的ADO.NET到ODBC桥提供程序。我的雇主也生产这样的桥梁供应商,在许多情况下服务更好。)
发布于 2015-12-31 13:16:55
ODBC是一个通用的提供程序,ODBC驱动程序几乎可以用于任何数据源--甚至是简单的CSV-文件。
作为一个缺点,您的功能比ADO.NET少,而且(至少在理论上)性能更低。
ADO.NET更严格地连接到关系数据库。请注意,来自微软的Oracle是已弃用,您不应该将其用于新项目。
为了完整起见,还有第三个提供者名为OLE DB (参见命名空间System.Data.OleDb)。Oracle提供程序(msdaora)也是已弃用。甲骨文OraOLEDB.Oracle的提供者仍然完全支持。
对于到甲骨文的最先进的连接,您应该使用“oracleDataProviderfor.NET”(ODP.NET),您可以从这里下载它:64位Oracle数据访问组件(ODAC)下载。
所有ODBC、OLE DB和ODP.NET都需要安装Oracle。绕过它的唯一方法是使用"ODP.NET托管驱动程序“。您也可以从上面相同的位置下载它。
https://stackoverflow.com/questions/34546025
复制相似问题