這一兩天有個任務要完成,就是要更新一個資料表,這個資料表需要新增一個欄位,為的是新改制的資料能夠對應到舊的資料庫,本來是可以用PHP完成,湊巧最近對C++有點手癢就來試試看如何完成這個任務。
這次使用的編譯器是Dev-C++ 4.9.9.2中文版,在Windows 7 專業版上使用,ㄚ琪在工具→檢查更新版本中可以找到libodbc++這個可以update,我看到的描述是這樣:
Libodbc++ is a c++ class library for accessing SQL databases.
看起來是Dev-C++上最方便來存取SQL資料庫的,其官方網址在http://sourceforge.net/projects/libodbcxx
查了Google很久,很多人都說要存取微軟的MSSQL就用 Visual系列的編譯器就好了,幹嘛,這麼搞工~可是我在想這支小程式又沒要用到視窗實在不需用這麼大的軟體,還是用公司有提供的免費編譯器就好,不過我如果有空我也想試試Code::Blocks來編譯看看。
安裝進去的libodbc++在Dev-Cppdocslibodbc++裡頭也有說明文件可以閱讀,所以應該不難,只不過範例程式就沒有裝了,官方網提到在Code這裡http://sourceforge.net/p/libodbcxx/code/HEAD/tree/有範例可以查閱,太讚了。
這個libodbc++當然是透過ODBC來作業的,一開始拿範例程式來編譯的時候還不懂怎樣設定,一開始會發現
[Linker error] undefined reference to `odbc::ErrorHandler::getWarnings()’
類似的連結錯誤,看起來是要做點什麼事了,後來查出是要在編譯器選項的連結器命令增加-lodbc++這個命令才行,我想對C/C++熟的人都會懂。
繼續編譯,一直會發現
32:2 C:Dev-Cppincludec++3.4.2backwardbackward_warning.h #warning This file includes at least one deprecated or antiquated header. Please consider using one of the 32 headers found in section 17.4.1.2 of the C++ standard. Examples include substituting the <X> header for the <X.h> header for C++ includes, or <iostream> instead of the deprecated header <iostream.h>. To disable this warning use -Wno-deprecated.
這種函式庫有要廢除的感覺,可是又不能不用,又不想看到這麼礙眼的警告訊息,就按照其說明加入 -Wno-deprecated這個來排除警告訊息。
好了,完工。
當然我的任務不會這麼簡單,還需要搭配讀取csv檔來工作,在奇摩知識家C++ 讀取與寫入EXCEL的檔案已經有答案了,程式碼就不贅述。
或許可以多讀點C++的書來幫助你學習。