参考文档:ODBC 接口 | 达梦云适配中心文档 (dameng.com)
https://eco.dameng.com/docs/zh-cn/app-dev/c_c++_odbc.html
1.安装gcc和unixODBC、unixODBC
yum install gcc;
yum install unixODBC;
yum install unixODBC-devel;
也可以用源码或者rpm安装。
unixODBC安装:
用root 配置
[root@localhost home]# tar -xvf unixODBC-2.3.0.tar.gz
[root@localhost home]# cd unixODBC-2.3.0/
[root@localhost unixODBC-2.3.0]# ./configure
[root@localhost unixODBC-2.3.0]# make
[root@localhost unixODBC-2.3.0]# make install
或者rpm包安装:
[root@localhost odbc]# wget -r -nd -np https://mirrors.aliyun.com/centos/8.3.2011/AppStream/x86_64/os/Packages/unixODBC-2.3.7-1.el8.x86_64.rpm
[root@localhost odbc]# rpm -ivh unixODBC-2.3.7-1.el8.x86_64.rpm
2.查看odbc配置
[root@localhost etc]# odbcinst -j
unixODBC 2.3.1
DRIVERS............: /etc/odbcinst.ini
SYSTEM DATA SOURCES: /etc/odbc.ini
FILE DATA SOURCES..: /etc/ODBCDataSources
USER DATA SOURCES..: /root/.odbc.ini
SQLULEN Size.......: 8
SQLLEN Size........: 8
SQLSETPOSIROW Size.: 8
3.修改odbcinst.ini和odbc.ini
我本机配置如下:
[root@localhost odbc]# cat /etc/odbc.ini
[DM8]
DRIVER =DM8 ODBC DRIVER
SERVER = localhost
UID = SYSDBA
PWD = SYSDBA
TCP_PORT = 5236
[root@localhost odbc]# cat /etc/odbcinst.ini
# Example driver definitions# Driver from the postgresql-odbc package
# Setup from the unixODBC package
[PostgreSQL]
Description = ODBC for PostgreSQL
Driver = /usr/lib/psqlodbcw.so
Setup = /usr/lib/libodbcpsqlS.so
Driver64 = /usr/lib64/psqlodbcw.so
Setup64 = /usr/lib64/libodbcpsqlS.so
FileUsage = 1
# Driver from the mysql-connector-odbc package
# Setup from the unixODBC package
[MySQL]
Description = ODBC for MySQL
Driver = /usr/lib/libmyodbc5.so
Setup = /usr/lib/libodbcmyS.so
Driver64 = /usr/lib64/libmyodbc5.so
Setup64 = /usr/lib64/libodbcmyS.so
FileUsage = 1[DM8 ODBC DRIVER]
Description = DM ODBC DRIVER FOR DM8
Driver = /dm8/drivers/odbc/libdodbc.so
注意:Driver = /dm8/drivers/odbc/libdodbc.so。这里如果按云适配中心的写法可能达不到我们想要的效果。
4.测试odbc
[root@localhost etc]# isql DM8
+---------------------------------------+
| Connected! |
| |
| sql-statement |
| help [tablename] |
| quit |
| |
+---------------------------------------+
SQL> select 1 from dual;
+------------+
| 1 |
+------------+
| 1 |
+------------+
SQLRowCount returns 1
1 rows fetched
SQL>
建议修改配置文件访问权限:
chmod 775 /etc/odbc.ini
chmod 775 /etc/odbcinst.ini