Dev-C++使用libodbc++测试

这一两天有个任务要完成,就是要更新一个资料表,这个资料表需要新增一个栏位,为的是新改制的资料能够对应到旧的资料库,本来是可以用PHP完成,凑巧最近对C++有点手痒就来试试看如何完成这个任务。

[adsense][/adsense]

这次使用的编译器是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

2015-02-06_105048

查了Google很久,很多人都说要存取微软的MSSQL就用 Visual系列的编译器就好了,干嘛,这么搞工~可是我在想这支小程式又没要用到视窗实在不需用这么大的软体,还是用公司有提供的免费编译器就好,不过我如果有空我也想试试Code::Blocks来编译看看。

安装进去的libodbc++在Dev-Cpp\docs\libodbc++里头也有说明文件可以阅读,所以应该不难,只不过范例程式就没有装了,官方网提到在Code这里http://sourceforge.net/p/libodbcxx/code/HEAD/tree/有范例可以查阅,太赞了。

这个libodbc++当然是透过ODBC来作业的,一开始拿范例程式来编译的时候还不懂怎样设定,一开始会发现

[Linker error] undefined reference to `odbc::ErrorHandler::getWarnings()’

类似的连结错误,看起来是要做点什么事了,后来查出是要在编译器选项的连结器命令增加-lodbc++这个命令才行,我想对C/C++熟的人都会懂。

2015-02-06_153657

继续编译,一直会发现

32:2 C:\Dev-Cpp\include\c++\3.4.2\backward\backward_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这个来排除警告讯息。

2015-02-06_154227

好了,完工。

当然我的任务不会这么简单,还需要搭配读取csv档来工作,在奇摩知识家C++ 读取与写入EXCEL的档案已经有答案了,程式码就不赘述。

或许可以多读点C++的书来帮助你学习。