Category Archives: ou的笔记ou的笔记

在debian上使用qt访问oracle数据库

之前的一个使用oracle的项目自从我把数据库装好之后就没有下文了,时隔将近一年迎来了另一个也需要使用oracle的项目。由于oracle不是开源的,为了能在linux下使用qt,只好自己编译对应的驱动。在网上找了一堆资料,又折腾了好几天,终于在今天晚上成功了,在这里记录一下。 先说一下环境:debian 6.0,qt sdk 4.8.1,oracle 11gR2。本文主要记录的是怎样编译驱动和怎样连接,关于oracle数据库服务器端安装中的一些问题可以参考之前的一篇笔记。 准备工作 下载qt sdk。因为编译的时候qt工具链和源代码要保持一致,而debian 6源里的qt版本是4.6.3,官网上已经找不到对应的源码包了,所以下载sdk安装(sdk包含工具链和对应版本的源码),安装的时候要注意把安装source code的选项勾上。这里使用QTDIR表示qt sdk的安装目录(这个环境变量不是必须的,只是为了描述方便,因此在下面出现这个目录的时候把它替换成实际的安装目录)。 安装和oracle服务端对应版本的oracle instant client,安装目录为ORACLE_CLIENT_HOME(这个环境变量也不是必须的,只是为了描述方便)。这个东东主要包含编译驱动所需的头文件和动态链接库。安装过程就不详细说了,出现的各种错误提示都被我跳过了。可能也就是因为这些错误,没找到需要的动态链接库,最后是从server端找到的。 安装了qt sdk和instant client的机器以下简称client,装有oracle数据库的机器为server(当然这两个可以是同一台机器)。 编译QOCI驱动 编译工作在client上进行。 由于许可证的限制,qt的开源版本并没有带编译好的oracle驱动,但是源代码中有编译的代码,位于(把其中的版本号”4.8.1″替换成实际使用的版本号): $QTDIR/QtSources/4.8.1/src/plugins/sqldrivers/oci 这个目录下的main.cpp和oci.pro就是我们需要的代码。从server上的$ORACLE_HOME/lib中找到libclntsh.so,libclntsh.so.10.1和libclntsh.so.11.1(其实这三个文件是同一个东西,前两个是链接到第三个的符号链接),把它们复制到这个目录,然后在oci.pro中添加头文件和库的位置(最后3行): TARGET = qsqloci SOURCES = main.cpp include(../../../sql/drivers/oci/qsql_oci.pri) include(../qsqldriverbase.pri) INCLUDEPATH+=$ORACLE_CLIENT_HOME/rdbms/public INCLUDEPATH+=$QTDIR/QtSources/4.8.1/include LIBS+= -L. -lclntsh 然后使用下面的命令编译: $QTDIR/Desktop/Qt/4.8.1/gcc/bin/qmake oci.pro make … Continue reading

自己整理的latex模板

为了为祖国的科研事业贡献自己的力量,更为了能顺利毕业以便更好地为祖国作贡献,前两周一直忙着憋论文。本来先打算用中文写了再翻译成英文,但是boss说从中文翻译过来的质量不好,而且时间不够,还不如直接上英文。记得上一次写英文文章都已经是两年半前考研的时候了(其实研一第一学期末参加了个英语选修考试,最后题目都来不及做完,作文连题目都来不及写……),而且写过的英文文章最多也就200个单词,忽然让我写这么长的文章就像是好几年没运动的人一上来就跑马拉松,还要限时跑完。本来表达能力就不行,再加上肚子里没货,写出来的内容自己都不想看了。 刚开始的时候准备用word来写,但是一想到要调格式就头大(一直不知道word有“格式刷”这个工具,不知道excel可以选中数据画曲线图饼状图直方图等各种图……不知道当时是怎样把本科毕设论文搞定的),最后决定用latex来写,顺便整理一下以前的模板。基础内容可以参考《The Not So Short Introduction to LATEX 2ε》,各个宏包的具体介绍可用”texdoc -s 关键字”来搜索相应的手册。 感谢boss清明节加班把论文从头到尾改了好几遍,80%的内容被改得面目全非……感谢师兄帮忙画图;感谢#大侠友情提供gnuplot画图脚本一个。 最后贴个自用的模板为论文求rp,内容来自网上和自己的总结(texlive2009通过): 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 … Continue reading