2.1 数据库访问
应用程序访问数据库的方式如图3所示。在ARM硬件平台、Linux操作系统下也不例外。
本文介绍的导医系统的数据库是用Microsoft SQL Server建立的。SQL Server(及SyBase)使用TDS(Tabular_
Data_Stream)作为其数据库现客户端传输的协议,它对应于图中的ODBC驱动。Linux下有此协议的免费版——freetds,将其移植到ARMLinux平台作为访问SQL Server的ODBC驱动。ODBC可以移植unixODBC和QT自带的ODBC库。
2.2 ODBC库及其驱动移植
系统中带有相应的ODBC驱动和ODBC库文件,是以ODBC方式在嵌入式系统中访问SQL数据库的必需条件。这些库和驱动可以通过下载相应软件包,经过交叉编译并拷贝到ARM-Linux平台相应目录来实现移植。而在交叉编译之前必须对其进行重新配置,否则无法生成合适的库或驱动。
2.2.1 unixODBC-2.2.12的交叉编译(arm体系)
配置选项如下:(--prefix选项指定把编译好的包释放到什么地方)
。/configure --host=arm-linux --prefix=/usr/local/arm/unixODBC-arm-iconv-2.2.12 --disable-gui --enable-iconv --enable-static
然后make & make install。
另外还要编译一个x86体系的unixODBC-2.2.12,因为交叉编译freetds-0.82时要用到。
2.2.2 unixODBC-2.2.12的x86体系编译
配置选项如下:(与上面不同的是去掉了--host=arm-linux 选项)
。/configure --prefix=/usr/local/arm/unixODBC-x86-2.2.12 --disable-gui --disable-iconv --enable-static
然后make & make install。
2.2.3 交叉编译freetds-0.82
配置选项如下:
。/configure --prefix=/usr/local/arm/freetds --with-tdsver=8.0 --disable-libiconv --host=arm-linux --with-unixodbc=/usr/local/arm/unixODBC-x86-2.2.12 --with-gnu-ld --enable-shared --enable-static --enable-msdblib --enable-dbmfix