Chinaunix首页 | 论坛 | 博客
  • 博客访问: 302608
  • 博文数量: 68
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 706
  • 用 户 组: 普通用户
  • 注册时间: 2015-08-13 14:58
文章分类

全部博文(68)

文章存档

2021年(4)

2020年(6)

2018年(5)

2017年(13)

2016年(8)

2015年(32)

我的朋友

分类: 嵌入式

2015-10-21 09:21:27

前面已经介绍了FreeTDS的基本功能,本篇就来详细介绍FreeTDS的使用以及移植工作。FreeTDS使用是非常简单的,难点是在其移植方面,琢 磨了两天才算搞明白,查阅了网上大量介绍FreeTDS的文章,没有找到介绍移植方面的。因此,希望对有需要的朋友有帮助。 一、编译安装 编译安装FreeTDS和linux下常见的安装软件包是一样的,分为configure,make,makeinstall三个步骤。因此,第一步配置 (configure)就显得特别重要了,一般安装这种软件configure --help都是可以查看相应的帮助的。以下是我这次用到的属性了。 ./configure --prefix=/opt/freetds --with-tdsver=7.1 --enable- msdblib --disable-libiconv 选项介绍: --prefix是freetds的安装路径 --with-tdsver是freetds的版本,此处选择7.1 --enable-msdblib是打开访问microsoft sql功能 --disable-libiconv是关闭编码转换,此功能作用还未验证过 配置完了以后,就可以,make,make install了,然后就可以看到/opt目录下多了个freetds目录。 二、测试 FreeTDS的测试分为两种,一种是直接采用相应的app进行测试,第二种是采用C语言调用FreeTDS的API进行测试。以下分别进行。 1、采用FreeTDS生成的app测试 FreeTDS安装以后,在/opt/freetds/bin文件下有几个app,可以直接运行,如此处用于测试的tsql。测试步骤分为三个步骤,如摘 录自官网的测试方法。   此处,我的数据库是已经连通了并且开启了远程连接(具体方法请参考第五点),因此,采用tsql直接进行测试,测试结果如下所示: 注意:再输入命令的时候只是将相应的命令读入了缓冲区并未执行,因此,需要输入一个go,才会执行,当然可以将多条命令先放入缓冲区再执行。   以上只是进行了简单的测试,具体更多的使用方法,还请大家自己尝试。 参考网址: 2、C调用FreeTDS的API测试 此种方式是我们最终想要的,最后我们只需要相应的lib,调用相应的API即可整合到我们的工程里面去。FreeTDS相应API测试在官网上有例子,以 下给出本次我做的测试代码。具体请下载附件。 需要注意的是如果FreeTDS相应的库没有安装在/usr/lib、/lib等系统库下面,那么需要设置LD_LIBRARY_PATH(链接库)环境 变量,否则运行的时候会提示找不到库,如下所示: export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/opt/freetds/lib/: 三、移植 移植应该说是最后一步,也是最为重要的一步,因为是需要将相应的操作做到板端去。移植过程也是相当痛苦,经历了两天,曾经一度放弃改用QT数据库,但是, 在用QT数据的时候也存在相应的问题。最后,意外发现了该类型库的移植方法,因此,才把此问题解决了。 此类库不是更加--host来选择交叉编译器进行移植的,而是需要自己设置CC、LD、CPP变量,如果没有设置,那么默认采用gcc相应编译器进行编 译。 因此、首先设置好CC、LD以及CPP环境变量 export CC=arm_v5t_le-gcc export LD=arm_v5t_le-ld export CPP=arm_v5t_le-cpp 然后,进行配置 ./configure --host=arm-linux --prefix=/usr/local/freetds-arm --with- tdsver=7.1 --enable-msdblib --disable-libiconv 此处--host设置为arm-linux即可,和编译器无关 配置过程中可能会遇到以下错误: ../libtool: eval: line 950: syntax error near unexpected token `|’ 解决办法是:export NM=nm 然后重新配置即可。 参考网址: http://blog.csdn.net/dadoneo/article/details/8155044 交叉编译完成安装以后,则可以将/opt/freetds-ti相应的库文件拷贝到板端的文件系统某个位置,如果没有在默认的/usr/lib,/lib 位置下,则需要设置LD_LIBRARY_PATH,方法和前面一样。 四、移植测试 移植测试和前面一样,只是在编译C程序的时候需要采用交叉编译器,如arm_v5t_le-gcc进行编译。 运行过程中可能会出现以下错误: 找不到librt.so.1 此错误是由于板端lib下面没有librt.so.1库,该库其实是一个链接库,解决此方法只需要到相应交叉编译器下面拷贝librt.so相关库,到板 端的lib或者此处freetds的lib中。 如果找不到可以采用find . -name librt.so进行搜索。如下所示:   因此,现在测试就和前面是一样的了   五、SQL2008开启远程连接 SQL2000开启远程连接的方法和SQL2008的方法是一样的,具体参考一下网址: mGUKwZRKfnwFc5EVrJozWHVWxwD9Pw- 1xZPmAtNXhBdMkguD3XHd4hAyfg8uJMVxKv6VsVuba6Vxm3gouANom   六、参考资料 http://blog.csdn.net/kunp/article/details/387013 http://blog.csdn.net/helonsy/article/details/7207497 http://www.itpub.net/thread-1442700-1-1.html http://blog.csdn.net/dadoneo/article/details/8155044 七、资源下载  FreeTDS相关资源点击下载
阅读(1888) | 评论(0) | 转发(0) |
0

上一篇:linux sqlserver2008

下一篇:FreeTDS C API

给主人留下些什么吧!~~