irpas技术客

Linux 平台 通过ODBC访问数据库_Javaesandyou_linux odbc

网络投稿 2618

Linux 平台 通过ODBC访问数据库

这是一个小众的知识点,最近做测试需要使用多种语言访问数据库,其中需要ODBC驱动访问db,这里做个记录。

一 环境准备 数据库创建好测试账号 用户名密码安装 Libtool 1.5.10及以上版本以及 unixODBC-develyum?install -y libtool unixODBC-devel下载驱动 PolarDB-ODBC_Linux_X86_64.tar.gz 二 配置环境变量 安装驱动 解压缩 PolarDB-ODBC_Linux_X86_64.tar.gz 到 一个目录,比如 /usr/local/polardb-odbc/配置环境变量export?LD_LIBRARY_PATH?= /usr/local/polardb-odbc/lib设置环境变量ODBCINI的路径指向。默认是 /etc/odbcinst.iniexportODBCINI=?/etc/odbcinst.ini?export?ODBCSYSINI =?/etc/配置 odbcinst.ini文件默认该文件内已经有 [PostgreSQL] [MySQL] 两种数据,可以增加如下内容 [POLARDB] Description = ODBC for POLARDB Driver = /usr/local/polardb-odbc/lib/unix/polardb-odbc.so Setup = /usr/local/polardb-odbc/lib/unix/libodbcpolardbS.so Driver64 = /usr/local/polardb-odbc/lib/unix/polardb-odbc.so Setup64 =/usr/local/polardb-odbc/lib/unix/libodbcpolardbS.so Database = test_db Servername = 10.10.10.5 Password = XXXXXX Port = 5433 Username = test_user Trace = yes TraceFile = /tmp/odbc.log FileUsage = 1 连接PolarDB ,使用 isql -v POLARDB这里的 POLARDB 就是 /etc/odbcinst.ini 文件的配置的 POLARDB 区块儿。

测试成功。

编译

需要修改 TestODBCSample.c 中 connect 函数中的 user参数的值,使用本文开头创建的数据库账号用户名。

# INCLUDEDIRS = -I../include #LIBPATHS= -L/usr/local/unixODBC LIBPATHS= -L/usr/lib64/ LIBS=-lodbc -lodbcinst -lcrypt CC = gcc CFLAGS = -Wall -O -g ALL : Test1 Test2 Test1 : TestODBCSample.c $(CC) $< $(CFLAGS) $(INCLUDEDIRS) $(LIBPATHS) $(LIBS) -o Test1 Test2 : ODBCRefcursorSupport.c $(CC) $< $(CFLAGS) $(INCLUDEDIRS) $(LIBPATHS) $(LIBS) -o Test2 clean: rm -rf *.o Test1 Test2

遇到的问题

1.通过odbc 访问连接报错,其实 TestODBCSample.c 里面的connect 函数中的 user参数需要替换为本文开头创建的用户名。

2.编译语法问题

编译C++ 通过ODBC 访问数据库的脚本报错:

Makefile:7: *** missing separator. Stop.

其实这里涉及到 makefile的语法规则,makefile文件禁止乱用 TAB,只有命令所在的行才能且只能以TAB开头,

其他的如,make变量的定义、赋值,make内定函数如(error "strings")都不能以TAB开头,不然make会将其作为命令来处理。

如果排除了TAB用空格代替的问题后、以及由中文“:”等问题后,问题还存在 那么很可能是文件编码格式的问题 查看一下Makefile 文件编码格式是不是utf-8的,还带有BOM标记在文件头

[root@db1 samples]# xxd -l 16 Makefile 0000000: 230a 494e 434c 5544 4544 4952 5320 3d20 #.INCLUDEDIRS =


1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,会注明原创字样,如未注明都非原创,如有侵权请联系删除!;3.作者投稿可能会经我们编辑修改或补充;4.本站不提供任何储存功能只提供收集或者投稿人的网盘链接。

标签: #Linux #ODBC #平台 # #环境准备数据库创建好测试账号 #用户名密码安装