使用C++的Oracle数据库服务器连接

问题描述:

我已经在Linux环境中编写了C++程序。 目前我需要在Visual Studio 2005版本上工作。使用C++的Oracle数据库服务器连接

我有一个任务,我需要从Oracle数据库中获取一些数据。 我从来没有做过这种类型的任务。

我刚刚搜索了一下,发现它可以通过C++和C#来实现。 因为我必须只使用Visual Studio 2005,哪种方法应该更好 - C++还是C#?

我发现从谷歌,我可以使用OLE DB或OCCI使用C++。 如果它的C#,我应该使用OLE DB。

您能否建议我应该使用哪种语言和方法来完成此任务?

注意

我会认真地提醒您不要使用Visual Studio 2005,不是因为它是不是一个很好的工具,而是因为它是严重过时,视觉工作室2008年,2010年和2012现在有带来了很大的改善自2005年以来,托管C++的性能得到了很大的提高。新的扩展和插件在2005年的支持下不再发布,并且对很多技术(如Team Foundation Server,WCF,Windows Presentation Foundation等)的支持得不到很好的支持或在此版本上支持。根据您要做的事情以及您计划的事情的先进程度,您应该研究Visual Studio Express版本,这些版本是免费的并且受商业项目支持。

C#对C++

我不打算在讨论C#或C++是更好的,如果你也与C++熟悉,那么它可能更容易让你使用C++保持。就我个人而言,我发现C#更容易编程,因为.NET框架将构建复杂应用程序的许多困难部分抽象出来。这将是你完全做出的决定。

数据库技术

要连接到Oracle数据库在Windows平台上,你有多种选择:

  • ODBC,前体OLEDB。它有很好的文档记录,您可能会找到大量有关如何从C++使用它的示例,不会抽象数据库,也可能需要更多本地设置。自从OleDB和ADO.NET发布以来,对ODBC的支持正在下降。
  • Ole DB,对数据库提供程序进行抽象的改进版本,因此您(理论上)应该能够切换数据库平台。良好的Native C++,Managed C++和C#支持。
  • ADO.NET与Oracle Data Provider for .NET的结合为C#和托管C++提供了非常好的支持。通过抽象可以轻松地在不同的数据库上重用。 Designer支持和代码生成(Entity Framework)。
  • Oracle Native API(Oracle客户端)深度本地集成,可能是执行方面最快的一种,专用于Oracle数据库平台的代码,不能重复使用。我怀疑你不会在Visual Studio中找到任何类型的设计器支持,因为现在都集中在ADO.NET上。
+0

感谢您提供有价值的信息。我同意您关于visual studio 2005的观点。但截至目前,我们拥有2005许可证版本,并且某些客户端apis是在2005版本中编写的。所以我将无法切换到更高版本:( – user2090833 2013-02-20 11:46:04

+0

但我相信,上述建议应该在2005年的版本也。请纠正我,如果我错了。 – user2090833 2013-02-20 11:53:24

+0

应该工作,但你可能无法使用最新和最好的版本实体框架或适用于Visual Studio的Oracle工具。 – jessehouwing 2013-02-20 12:43:42