]>
Commit | Line | Data |
---|---|---|
1a6944fd | 1 | 0. Changes |
7e616b10 RR |
2 | a. I realized that a driver manager doesn't aware of |
3 | difference between a C5 (i.e. hstmt) and a C6 | |
4 | (i.e. transaction) states. | |
5 | ||
6 | b. The link flags "-lc" has been removed from Linux ELF | |
7 | section of Config.mk to fix a segment fault problem. | |
8 | Now, it works fine on Slackware 2.3 and Red Hat 2.0 | |
9 | (kernel version are 1.2.xx and 1.3.xx respectively). | |
10 | ||
11 | c. On FreeBSD 2.x, dlsym() doesn't handle the '_' | |
12 | prepended before a exporting function symbol. So, | |
13 | CLI_NAME_PREFIX needs to be defined as "_SQL" for | |
14 | FreeBSD. | |
15 | ||
16 | d. Some files are renamed | |
17 | dld.c -> dlf.c | |
18 | dld.h -> dlf.h | |
19 | confg.h -> config.h | |
1a6944fd RR |
20 | |
21 | 1. iODBC driver manager platform availability | |
22 | ||
7e616b10 RR |
23 | iODBC driver manager has been ported to following Unix platforms: |
24 | ||
25 | SunOS 4.1.x Sun Sparc | |
26 | HP/UX 9.x, 10.x HP9000 s700/s800 | |
27 | HP/UX 9.x HP9000 s300/s400 | |
28 | IBM AIX 3.x, 4.x IBM RS6000, PowerPC | |
29 | Sun Solaris 2.x Sun Sparc, PCx86 | |
30 | SGI Irix SVR4 5.x, 6.x IP12 MIPS, IP22 MIPS | |
31 | NCR SVR4 3.x NCR 3435 | |
32 | UnixWare SVR4.2 1.x, 2.x x86 | |
33 | DEC Unix(OSF/1) 3.x, 4.x DEC Alpha | |
34 | FreeBSD 2.x x86 | |
35 | BSDI BSD/OS 2.x ? | |
36 | Linux ELF 1.2.x, 1.3.x x86 | |
37 | SCO OpenServer 5.x x86 | |
38 | Max/OS SVR4 1.x Concurrent Maxion 9200 MP | |
39 | DG/UX 5.x Aviion | |
1a6944fd RR |
40 | |
41 | Porting of iODBC driver manager to some non-unix operating systems | |
7e616b10 RR |
42 | such as Windows family(3.x, 95, NT), OS/2 and Mac is supported but |
43 | has never compiled and tested yet :). Of cause, you need to supply | |
1a6944fd RR |
44 | a make/build file and a short LibMain for creating the iodbc.dll. |
45 | ||
46 | 2. How to build iODBC driver manager: | |
47 | ||
7e616b10 RR |
48 | step 1. Identify your system |
49 | step 2. Run build with a suitable option | |
50 | ||
1a6944fd RR |
51 | Here is an example: |
52 | ||
7e616b10 RR |
53 | %[1]: sh iodbc-2.12.shar |
54 | .... | |
55 | %[2]: cd iodbc-2.12 | |
56 | %[3]: uname -s -v -r -m | |
57 | HP-UX B.10.01 A 9000/710 | |
58 | %[4]: ./build hp700 | |
59 | autoconfig hp700 | |
60 | make | |
61 | .... | |
62 | Generating iODBC driver manager --> /home/kejin/iodbc-2.12.sl | |
1a6944fd RR |
63 | |
64 | 3. odbc.ini( ~/.odbc.ini ) | |
65 | ||
7e616b10 | 66 | Driver manager and drivers use odbc.ini(or ~/.odbc.ini on Unix) file |
1a6944fd | 67 | or connection string when establishing a data source connection. On |
7e616b10 RR |
68 | Windows, odbc.ini is located in Windows directory. On unix, iODBC driver |
69 | manager(and all other ODBC drivers and driver managers I awared) looks | |
70 | .odbc.ini file in real user's home directory (it could be a softlink to | |
71 | the file located somewhere else). Make sure your driver will look into | |
72 | the same file (or a file which is a symbolic link to the same file). | |
1a6944fd RR |
73 | The format of odbc.ini( or ~/.odbc.ini ) is defined as: |
74 | ||
7e616b10 | 75 | odbc.ini(or .odbc.ini) ::= data_source_list |
1a6944fd | 76 | |
7e616b10 RR |
77 | data_source_list ::= /* empty */ |
78 | | data_source '\n' data_source_list | |
1a6944fd | 79 | |
7e616b10 | 80 | data_source ::= '[' data_source_name ']' '\n' data_source_desc |
1a6944fd | 81 | |
7e616b10 | 82 | data_source_name ::= 'default' | [A-Za-z]*[A-Za-z0-9_]* |
1a6944fd | 83 | |
7e616b10 RR |
84 | data_source_desc ::= /* empty */ |
85 | | attrib_desc '\n' data_source_desc | |
1a6944fd | 86 | |
7e616b10 | 87 | addrib_desc ::= Attrib '=' attrib_value |
1a6944fd | 88 | |
7e616b10 | 89 | Attrib ::= 'Driver' | 'PID' | 'UID' | driver_def_attrib |
1a6944fd | 90 | |
7e616b10 | 91 | driver_def_attrib ::= [A-Za-z]*[A-Za-z0-9_]* |
1a6944fd RR |
92 | |
93 | An example of .odbc.ini file: | |
94 | ||
7e616b10 RR |
95 | [toronto_yp] |
96 | # yellow page of metro Toronto | |
97 | Driver = /usr/lib/odbc/oracle.so | |
98 | <....> | |
1a6944fd | 99 | |
7e616b10 RR |
100 | [toronto_wp] |
101 | # white page of metro Toronto | |
102 | Driver = /usr/lib/odbc/oracle.so | |
103 | <....> | |
1a6944fd | 104 | |
7e616b10 RR |
105 | [contract] |
106 | # all contract documents | |
107 | Driver = /usr/lib/odbc/informix.so | |
108 | <....> | |
1a6944fd | 109 | |
7e616b10 RR |
110 | [netnews] |
111 | # NNTP netnews group | |
112 | Driver = /usr/lib/odbc/nnodbc.so | |
113 | Server = news.empress.com | |
1a6944fd | 114 | |
7e616b10 RR |
115 | [rnd_test] |
116 | # data source for R&D test | |
117 | Driver = /home/r_d/odbc/empodbc.so | |
118 | URL = empodbc://rnd.empress.com:6322/rnd_test/testdb | |
1a6944fd | 119 | |
7e616b10 RR |
120 | [default] |
121 | # default to odbc gateway | |
122 | Driver = /usr/lib/odbc/gateway.so | |
1a6944fd RR |
123 | |
124 | 4. Tracing | |
125 | ||
7e616b10 RR |
126 | iODBC driver manager traces driver's ODBC call invoked by the driver |
127 | manager. Default tracing file is ./odbc.log. Tracing option (i.e. | |
128 | on/off or optional tracing file name) can be set in ~/.odbc.ini | |
1a6944fd RR |
129 | file (under a data source section) as: |
130 | ||
7e616b10 RR |
131 | TraceFile = <optional_trace_file> |
132 | Trace = ON | On | on | 1 | OFF | Off | off | 0 | |
1a6944fd RR |
133 | |
134 | If <optional_trace_file> is stderr or stdout, i.e. | |
7e616b10 RR |
135 | |
136 | TraceFile = stderr | |
137 | ||
1a6944fd RR |
138 | or |
139 | ||
7e616b10 | 140 | TraceFile = stdout |
1a6944fd RR |
141 | |
142 | the tracing message will go to the terminal screen(if it is available). | |
143 | ||
144 | iODBC driver manager allows one to tune on/off tracing on selected | |
7e616b10 | 145 | connection(s). Different connections can share one or use different |
1a6944fd | 146 | tracing file(s). ODBC calls on connections without tuning tracing on |
7e616b10 RR |
147 | will not be traced. |
148 | ||
1a6944fd RR |
149 | 5. File list: |
150 | ||
7e616b10 RR |
151 | README This file |
152 | IAFA-PACKAGE Version and copyright information | |
153 | Changes.log Source changes log | |
154 | Version.mk Version make include file | |
155 | Config.mk Config make include file | |
156 | Makefile make file | |
157 | config.h system config include file | |
158 | isql.h ODBC 1.0 macro | |
159 | isqlext.h ODBC 2.0 macro | |
160 | dlf.h general dynamic loader module interface | |
161 | dlf.c general dynamic loader module (mapping to svr4) | |
162 | dlproc.h simple dynamic loader module interface | |
163 | dlproc.c simple dynamic loader on top of dlf module | |
164 | herr.h error handling module interface | |
165 | herr.c error handling module | |
166 | herr.ci error handling source include | |
167 | henv.h environment handle interface | |
168 | henv.c environment handle module | |
169 | henv.ci environment handle source include | |
170 | hdbc.h connection handle interface | |
171 | hdbc.c connection handle module | |
172 | hstmt.h statement handle interface | |
173 | hstmt.c statement handle module | |
174 | connect.c connect functions | |
175 | prepare.c query prepare functions | |
176 | execute.c query executing functions | |
177 | result.c query result property functions | |
178 | fetch.c query result fetch functions | |
179 | info.c driver information functions | |
180 | catalog.c catalog functions | |
181 | misc.c miscellaneous functions | |
182 | itrace.h macro | |
183 | itrace.c trace function | |
184 | main.c entry function used to build a share library on AIX | |
185 | shrsub.exp export symbol list used on AIX | |
186 | autoconfig shell script for creating Config.mk | |
187 | build shell script for building iodbc driver manager |