1 UPDB CONNECT UNIXODBC
1.1 环境信息
UPDB:
Linux: [dhr@upright91 ~]$ upboot -v
UPDB 6.2 (DB 6.0 FS02)
Linux stopbugs 2.6.9-89.ELsmp #1 SMP Mon Jun 2212:31:33 EDT 2009 x86_64 x86_64 x86_64 GNU/Linux version (little-endian)
Patch files (FS02_CS_1509_f FS02_100546a_jdbcFS02_103045a FS02_100300b_expimp FS02_100723a FS02_102425a FS02_107073aFS02_108214a FS02_103976h FS02_99119b )
Linux:
[dhr@upright91 ~]$ uname -a
Linux upright91 2.6.32-358.el6.x86_64 #1 SMP TueJan 29 11:47:41 EST 2013 x86_64 x86_64 x86_64 GNU/Linux
UnixODBC:
unixODBC-2.3.4.tar.gz
1.2 Install UPDB
UPDB的安装方法此处不在详细介绍,详细安装过程,请参数UPDB安装文档
1.3 Install Unixodbc
1.3.1 UnixODBC下载
Unixodbc的下载地址:http://unixodbc.org/
1.3.2 UnixODBC安装
tar -zxvf unixODBC-2.3.4.tar.gz
./configure --prefix=/usr/local/unixODBC-2.3.4--includedir=/usr/include --libdir=/usr/lib -bindir=/usr/bin --sysconfdir=/etc
make && make install
1.4 配置UnixODBC
[root@upright91 bin]# cat /etc/odbcinst.ini
[updb]
Description = UpRight6 ODBC Datasource
Driver = /home/dhr/updb6/client/lib/libupodbc.so
Setup = /home/dhr/updb6/client/lib/libupcli.so
FileUsage = 1
[root@upright91 bin]# cat /etc/odbc.ini
[updb6] #确保此处的值和updsn.tbr文件中SID的内容一致
Driver =updb6 #确保此处的值和/etc/odbcinst.ini文件中[]内的内容一致
Description =UpRight6 ODBC Datasource
Server = 192.168.0.91
Database =updb6
Port=5555
Option =3
User =sys
Password =updb
TDS_Version =1.0
[root@upright91 bin]#
1.5 测试UnixODBC与UPDB的连通性
(1)测试连通性:使用安装UPDB数据库的操作系统用户,连接isql
[dhr@upright91 ~]$ isql updb6sys updb -v
+---------------------------------------+
| Connected! |
| |
| sql-statement |
| help [tablename] |
| quit |
| |
+---------------------------------------+
SQL> select * from dual;
+------+
| DUMMY|
+------+
| X |
+------+
SQLRowCount returns 1
1 rows fetched
(2)在ISQL中测试DML与DDL语句
SQL> create user dhr identified by dhr;
SQLRowCount returns -1
SQL> grant dba to dhr;
SQLRowCount returns -1
SQL> create table dhr.t1(id number);
SQLRowCount returns -1
SQL> insert into dhr.t1 values(10);
SQLRowCount returns 1
SQL> commit;
SQLRowCount returns -1
SQL>
SQL> update dhr.t1 set id=20;
SQLRowCount returns 1
SQL> commit;
SQLRowCount returns -1
SQL> delete dhr.t1;
SQLRowCount returns 1
SQL> commit;
SQLRowCount returns -1
(3)在测试过程中,确认数据库中是否有相应数据生成。
[dhr@upright91 ~]$ upsql sys/updb
upSQL 6
UpRight Corporation Copyright (c) 2012. All rightsreserved.
Connected to UPDB.
SQL> select username from dba_users;
USERNAME
--------------------------------------------------------------------------------
SYSCAT
SYSGIS
OUTLN
UPDB
UPDB1
SYS
6 rows selected.
SQL> /
USERNAME
--------------------------------------------------------------------------------
SYSCAT
SYSGIS
OUTLN
UPDB
UPDB1
DHR
SYS
7 rows selected.
SQL> conn dhr/dhr
Connected to UPDB.
SQL> ls
SQL> ls
NAME SUBNAME TYPE
---------------------------------------------------------- --------------------
T1 TABLE
SQL> select * from t1;
ID
----------
10
1 row selected.
SQL> select * from t1;
ID
----------
20
1 row selected.
SQL> /
0 row selected.
SQL>
附:测试过程中遇到的问题
(1) 在root用户下执行isql命令,无返回结果
[root@upright91 odbc]# isql updb6 sys updb -v
[root@upright91 odbc]#
解决方法:
使用安装K-DB数据库的操作系统用户执行isql命令即可。
[dhr@upright91 ~]$ isqlupdb6 sys updb
+---------------------------------------+
| Connected! |
| |
| sql-statement |
| help [tablename] |
| quit |
| |
+---------------------------------------+
SQL>
(2) 在使用isql连接时报数据源找不到
[dhr@upright91 ~]$ isql updb sys updb -v
[IM002][unixODBC] Data source was not found.
[ISQL]ERROR: Could not SQLConnect
解决方法:
修改/etc/odbc.ini文件中[]中的内容和updsn.tbr中配置的UP_SID一致即可。