windows下 C++連線SQL Server 到底用什麼驅動?
亂說幾句。我現在認為,寫部落格不要怕錯,錯誤肯定是有的,一個人的水平不高的情況下,就像我,肯定會有錯誤的地方。但是你不寫出來,就不錯了麼?所以寫出來,不要怕,可能對別人有點幫助,也可能別人幫助你指出錯誤,大體意思到了,就可以了。態度要認真,總結一下,記一下,也算是個生命過程的記錄。
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
在 2011 年 8 月,OLE DB 的最強有力支持者 SQL Server 團隊令人震驚地宣佈:“Microsoft 正在調整 ODBC 以實現本機關係資料訪問”。他們宣佈,市場正在離開 OLE DB,朝著 ODBC 方向轉移。
我的意思,就是現在大家還都是在玩ODBC,沒辦法。目前有不少封裝ODBC的開源類,可以下載使用,碰到小問題是經常的。我現在使用tiodcb,比較簡單的一個封裝,對我來講夠了。高手自己可以封裝,我對ODBC的原始API是感覺相當惱火的。