0. Changes
- a. I realized that a driver manager doesn't aware of
- difference between a C5 (i.e. hstmt) and a C6
- (i.e. transaction) states.
-
- b. The link flags "-lc" has been removed from Linux ELF
- section of Config.mk to fix a segment fault problem.
- Now, it works fine on Slackware 2.3 and Red Hat 2.0
- (kernel version are 1.2.xx and 1.3.xx respectively).
-
- c. On FreeBSD 2.x, dlsym() doesn't handle the '_'
- prepended before a exporting function symbol. So,
- CLI_NAME_PREFIX needs to be defined as "_SQL" for
- FreeBSD.
-
- d. Some files are renamed
- dld.c -> dlf.c
- dld.h -> dlf.h
- confg.h -> config.h
+ a. I realized that a driver manager doesn't aware of
+ difference between a C5 (i.e. hstmt) and a C6
+ (i.e. transaction) states.
+
+ b. The link flags "-lc" has been removed from Linux ELF
+ section of Config.mk to fix a segment fault problem.
+ Now, it works fine on Slackware 2.3 and Red Hat 2.0
+ (kernel version are 1.2.xx and 1.3.xx respectively).
+
+ c. On FreeBSD 2.x, dlsym() doesn't handle the '_'
+ prepended before a exporting function symbol. So,
+ CLI_NAME_PREFIX needs to be defined as "_SQL" for
+ FreeBSD.
+
+ d. Some files are renamed
+ dld.c -> dlf.c
+ dld.h -> dlf.h
+ confg.h -> config.h
1. iODBC driver manager platform availability
- iODBC driver manager has been ported to following Unix platforms:
-
- SunOS 4.1.x Sun Sparc
- HP/UX 9.x, 10.x HP9000 s700/s800
- HP/UX 9.x HP9000 s300/s400
- IBM AIX 3.x, 4.x IBM RS6000, PowerPC
- Sun Solaris 2.x Sun Sparc, PCx86
- SGI Irix SVR4 5.x, 6.x IP12 MIPS, IP22 MIPS
- NCR SVR4 3.x NCR 3435
- UnixWare SVR4.2 1.x, 2.x x86
- DEC Unix(OSF/1) 3.x, 4.x DEC Alpha
- FreeBSD 2.x x86
- BSDI BSD/OS 2.x ?
- Linux ELF 1.2.x, 1.3.x x86
- SCO OpenServer 5.x x86
- Max/OS SVR4 1.x Concurrent Maxion 9200 MP
- DG/UX 5.x Aviion
+ iODBC driver manager has been ported to following Unix platforms:
+
+ SunOS 4.1.x Sun Sparc
+ HP/UX 9.x, 10.x HP9000 s700/s800
+ HP/UX 9.x HP9000 s300/s400
+ IBM AIX 3.x, 4.x IBM RS6000, PowerPC
+ Sun Solaris 2.x Sun Sparc, PCx86
+ SGI Irix SVR4 5.x, 6.x IP12 MIPS, IP22 MIPS
+ NCR SVR4 3.x NCR 3435
+ UnixWare SVR4.2 1.x, 2.x x86
+ DEC Unix(OSF/1) 3.x, 4.x DEC Alpha
+ FreeBSD 2.x x86
+ BSDI BSD/OS 2.x ?
+ Linux ELF 1.2.x, 1.3.x x86
+ SCO OpenServer 5.x x86
+ Max/OS SVR4 1.x Concurrent Maxion 9200 MP
+ DG/UX 5.x Aviion
Porting of iODBC driver manager to some non-unix operating systems
- such as Windows family(3.x, 95, NT), OS/2 and Mac is supported but
- has never compiled and tested yet :). Of cause, you need to supply
+ such as Windows family(3.x, 95, NT), OS/2 and Mac is supported but
+ has never compiled and tested yet :). Of cause, you need to supply
a make/build file and a short LibMain for creating the iodbc.dll.
2. How to build iODBC driver manager:
- step 1. Identify your system
- step 2. Run build with a suitable option
-
+ step 1. Identify your system
+ step 2. Run build with a suitable option
+
Here is an example:
- %[1]: sh iodbc-2.12.shar
- ....
- %[2]: cd iodbc-2.12
- %[3]: uname -s -v -r -m
- HP-UX B.10.01 A 9000/710
- %[4]: ./build hp700
- autoconfig hp700
- make
- ....
- Generating iODBC driver manager --> /home/kejin/iodbc-2.12.sl
+ %[1]: sh iodbc-2.12.shar
+ ....
+ %[2]: cd iodbc-2.12
+ %[3]: uname -s -v -r -m
+ HP-UX B.10.01 A 9000/710
+ %[4]: ./build hp700
+ autoconfig hp700
+ make
+ ....
+ Generating iODBC driver manager --> /home/kejin/iodbc-2.12.sl
3. odbc.ini( ~/.odbc.ini )
- Driver manager and drivers use odbc.ini(or ~/.odbc.ini on Unix) file
+ Driver manager and drivers use odbc.ini(or ~/.odbc.ini on Unix) file
or connection string when establishing a data source connection. On
- Windows, odbc.ini is located in Windows directory. On unix, iODBC driver
- manager(and all other ODBC drivers and driver managers I awared) looks
- .odbc.ini file in real user's home directory (it could be a softlink to
- the file located somewhere else). Make sure your driver will look into
- the same file (or a file which is a symbolic link to the same file).
+ Windows, odbc.ini is located in Windows directory. On unix, iODBC driver
+ manager(and all other ODBC drivers and driver managers I awared) looks
+ .odbc.ini file in real user's home directory (it could be a softlink to
+ the file located somewhere else). Make sure your driver will look into
+ the same file (or a file which is a symbolic link to the same file).
The format of odbc.ini( or ~/.odbc.ini ) is defined as:
- odbc.ini(or .odbc.ini) ::= data_source_list
+ odbc.ini(or .odbc.ini) ::= data_source_list
- data_source_list ::= /* empty */
- | data_source '\n' data_source_list
+ data_source_list ::= /* empty */
+ | data_source '\n' data_source_list
- data_source ::= '[' data_source_name ']' '\n' data_source_desc
+ data_source ::= '[' data_source_name ']' '\n' data_source_desc
- data_source_name ::= 'default' | [A-Za-z]*[A-Za-z0-9_]*
+ data_source_name ::= 'default' | [A-Za-z]*[A-Za-z0-9_]*
- data_source_desc ::= /* empty */
- | attrib_desc '\n' data_source_desc
+ data_source_desc ::= /* empty */
+ | attrib_desc '\n' data_source_desc
- addrib_desc ::= Attrib '=' attrib_value
+ addrib_desc ::= Attrib '=' attrib_value
- Attrib ::= 'Driver' | 'PID' | 'UID' | driver_def_attrib
+ Attrib ::= 'Driver' | 'PID' | 'UID' | driver_def_attrib
- driver_def_attrib ::= [A-Za-z]*[A-Za-z0-9_]*
+ driver_def_attrib ::= [A-Za-z]*[A-Za-z0-9_]*
An example of .odbc.ini file:
- [toronto_yp]
- # yellow page of metro Toronto
- Driver = /usr/lib/odbc/oracle.so
- <....>
+ [toronto_yp]
+ # yellow page of metro Toronto
+ Driver = /usr/lib/odbc/oracle.so
+ <....>
- [toronto_wp]
- # white page of metro Toronto
- Driver = /usr/lib/odbc/oracle.so
- <....>
+ [toronto_wp]
+ # white page of metro Toronto
+ Driver = /usr/lib/odbc/oracle.so
+ <....>
- [contract]
- # all contract documents
- Driver = /usr/lib/odbc/informix.so
- <....>
+ [contract]
+ # all contract documents
+ Driver = /usr/lib/odbc/informix.so
+ <....>
- [netnews]
- # NNTP netnews group
- Driver = /usr/lib/odbc/nnodbc.so
- Server = news.empress.com
+ [netnews]
+ # NNTP netnews group
+ Driver = /usr/lib/odbc/nnodbc.so
+ Server = news.empress.com
- [rnd_test]
- # data source for R&D test
- Driver = /home/r_d/odbc/empodbc.so
- URL = empodbc://rnd.empress.com:6322/rnd_test/testdb
+ [rnd_test]
+ # data source for R&D test
+ Driver = /home/r_d/odbc/empodbc.so
+ URL = empodbc://rnd.empress.com:6322/rnd_test/testdb
- [default]
- # default to odbc gateway
- Driver = /usr/lib/odbc/gateway.so
+ [default]
+ # default to odbc gateway
+ Driver = /usr/lib/odbc/gateway.so
4. Tracing
- iODBC driver manager traces driver's ODBC call invoked by the driver
- manager. Default tracing file is ./odbc.log. Tracing option (i.e.
- on/off or optional tracing file name) can be set in ~/.odbc.ini
+ iODBC driver manager traces driver's ODBC call invoked by the driver
+ manager. Default tracing file is ./odbc.log. Tracing option (i.e.
+ on/off or optional tracing file name) can be set in ~/.odbc.ini
file (under a data source section) as:
- TraceFile = <optional_trace_file>
- Trace = ON | On | on | 1 | OFF | Off | off | 0
+ TraceFile = <optional_trace_file>
+ Trace = ON | On | on | 1 | OFF | Off | off | 0
If <optional_trace_file> is stderr or stdout, i.e.
-
- TraceFile = stderr
-
+
+ TraceFile = stderr
+
or
- TraceFile = stdout
+ TraceFile = stdout
the tracing message will go to the terminal screen(if it is available).
iODBC driver manager allows one to tune on/off tracing on selected
- connection(s). Different connections can share one or use different
+ connection(s). Different connections can share one or use different
tracing file(s). ODBC calls on connections without tuning tracing on
- will not be traced.
-
+ will not be traced.
+
5. File list:
- README This file
- IAFA-PACKAGE Version and copyright information
- Changes.log Source changes log
- Version.mk Version make include file
- Config.mk Config make include file
- Makefile make file
- config.h system config include file
- isql.h ODBC 1.0 macro
- isqlext.h ODBC 2.0 macro
- dlf.h general dynamic loader module interface
- dlf.c general dynamic loader module (mapping to svr4)
- dlproc.h simple dynamic loader module interface
- dlproc.c simple dynamic loader on top of dlf module
- herr.h error handling module interface
- herr.c error handling module
- herr.ci error handling source include
- henv.h environment handle interface
- henv.c environment handle module
- henv.ci environment handle source include
- hdbc.h connection handle interface
- hdbc.c connection handle module
- hstmt.h statement handle interface
- hstmt.c statement handle module
- connect.c connect functions
- prepare.c query prepare functions
- execute.c query executing functions
- result.c query result property functions
- fetch.c query result fetch functions
- info.c driver information functions
- catalog.c catalog functions
- misc.c miscellaneous functions
- itrace.h macro
- itrace.c trace function
- main.c entry function used to build a share library on AIX
- shrsub.exp export symbol list used on AIX
- autoconfig shell script for creating Config.mk
- build shell script for building iodbc driver manager
+ README This file
+ IAFA-PACKAGE Version and copyright information
+ Changes.log Source changes log
+ Version.mk Version make include file
+ Config.mk Config make include file
+ Makefile make file
+ config.h system config include file
+ isql.h ODBC 1.0 macro
+ isqlext.h ODBC 2.0 macro
+ dlf.h general dynamic loader module interface
+ dlf.c general dynamic loader module (mapping to svr4)
+ dlproc.h simple dynamic loader module interface
+ dlproc.c simple dynamic loader on top of dlf module
+ herr.h error handling module interface
+ herr.c error handling module
+ herr.ci error handling source include
+ henv.h environment handle interface
+ henv.c environment handle module
+ henv.ci environment handle source include
+ hdbc.h connection handle interface
+ hdbc.c connection handle module
+ hstmt.h statement handle interface
+ hstmt.c statement handle module
+ connect.c connect functions
+ prepare.c query prepare functions
+ execute.c query executing functions
+ result.c query result property functions
+ fetch.c query result fetch functions
+ info.c driver information functions
+ catalog.c catalog functions
+ misc.c miscellaneous functions
+ itrace.h macro
+ itrace.c trace function
+ main.c entry function used to build a share library on AIX
+ shrsub.exp export symbol list used on AIX
+ autoconfig shell script for creating Config.mk
+ build shell script for building iodbc driver manager