我在寻求建议。我知道堆叠溢出喜欢“回答”问题,我希望这是。
我有一个大型遗留(Windows)应用程序,使用专有(ISAM)数据库。我想研究一下如何使用SQL数据库:主要是MS,我不介意Oracle的灵活性,但这只是一个“会很好”,而且可能不会对决策产生太大的影响。
应用程序是用C/C++/MFC编写的,而不是托管的。在这个阶段,我非常期待“原型”一个初步的解决方案尝试。我希望这不会太复杂,如果整个过程看起来像是要进行的话,它可以被改进。
我看到的候选人是:
其中,我想我已经学会了,现在我更喜欢OLEDB而不是ODBC。我认识ADO.NET,但不认识其他人。但是,ADO.NET将要求我从应用程序中使用.NET/CLR/托管代码,而目前它没有这样做。
对哪条路有什么建议吗?如果我知道最终的解决方案需要一种不同的访问方法,那么从另一种方法开始可能是愚蠢的。(我希望不要被告知重新设计/重写整个应用程序。)
发布于 2009-10-07 10:30:00
除非您打算将所有内容都转换为托管代码(这听起来很不可能),否则我不会使用ADO.NET。
只剩下ODBC和OLEDB了。
ODBC是一个开放的标准,但OLEDB是一个更现代的设计。考虑到您的程序不太可能脱离Windows,我建议使用OLEDB。
注意:在这个决定中,实际使用的数据库并不重要。所有这些都非常支持Server和Oracle (在更有限的范围内,Sybase、DB2、UDB等)。
发布于 2009-10-07 14:26:24
我推荐ODBC,因为它有一个相当简单的API和对象模型。OLEDB更复杂,需要一个陡峭的学习曲线。
如果您是从头开始进行一次完整的重写,我建议使用ADO.NET,但是对于遗留迁移,您需要保持简单。
https://stackoverflow.com/questions/1530713
复制相似问题