乱说几句。我现在认为,写博客不要怕错,错误肯定是有的,一个人的水平不高的情况下,就像我,肯定会有错误的地方。但是你不写出来,就不错了么?所以写出来,不要怕,可能对别人有点帮助,也可能别人帮助你指出错误,大体意思到了,就可以了。态度要认真,总结一下,记一下,也算是个生命过程的记录。
windows下连接SQL Server的方法有很多,Java有JDBC,我一直挺喜欢用的。.net平台也可以使用ado.net,也是比较易用的,我前些年用过,现在没有太多印象了,好像也挺好用的样子。严格的说,也可以使用托管C++,利用ado.net连接数据库,但是我现在不能用托管C++,话说要是我用托管C++的话,为什么不直接使用C#嘞,很难学习么?
我常写的程序,就是用原生C++在windows下工作,一般都是服务程序。我尽量不用MFC,因为前几年用MFC用吐了,再也不想受MFC框架的限制。那么MFC封闭的连接数据库的东西,我也不用了。如果不用界面,就用不到QT,也就用不到QT对ODBC的封装了。
微软平台下连接SQL Server,讲来讲去,本质上就两种连接数据的驱动,ODBC和OLEDB。ODBC出现的早点,OLEDB出现的晚点。大概在 1996 年,微软整天嚎着让大家从ODBC转到 OLE DB。 1999 年 7 月发行的《MSDN 杂志》中有一篇Don Box 的专栏文章,在这篇文章中,他描述了导致 OLE DB 诞生的动机与灵感。OLE DB要比 ODBC 复杂很多,但它的可扩展性确实也高很多。名称 OLE DB 之所以具有误导性,是因为它与 OLE 没有任何联系,并且它也不是专门用于数据库。它实际上是作为适用于所有数据的一种通用数据访问模型而设计的,可用于关系数据或其他数据,如文本、XML、数据库、搜索引擎等等。OLE DB 首次亮相时,COM 正在 Windows 平台上风行一时,其偏重于 COM 的 API 以及天然的可扩展性吸引了众多开发者。但是,作为一种关系数据库 API,它从未完全达到 ODBC 的原始性能。
在 2011 年 8 月,OLE DB 的最强有力支持者 SQL Server 团队令人震惊地宣布:“Microsoft 正在调整 ODBC 以实现本机关系数据访问”。他们宣布,市场正在离开 OLE DB,朝着 ODBC 方向转移。好吧,我们又会回到 ODBC。
我的意思,就是现在大家还都是在玩ODBC,没办法。目前有不少封装ODBC的开源类,可以下载使用,碰到小问题是经常的。我现在使用tiodcb,比较简单的一个封装,对我来讲够了。高手自己可以封装,我对ODBC的原始API是感觉相当恼火的。