1 {*********************************************************}
3 { Zeos Database Objects }
4 { Native Plain Drivers for Oracle }
6 { Originally written by Sergey Seroukhov }
8 {*********************************************************}
10 {@********************************************************}
11 { Copyright (c) 1999-2012 Zeos Development Group }
13 { License Agreement: }
15 { This library is distributed in the hope that it will be }
16 { useful, but WITHOUT ANY WARRANTY; without even the }
17 { implied warranty of MERCHANTABILITY or FITNESS FOR }
18 { A PARTICULAR PURPOSE. See the GNU Lesser General }
19 { Public License for more details. }
21 { The source code of the ZEOS Libraries and packages are }
22 { distributed under the Library GNU General Public }
23 { License (see the file COPYING / COPYING.ZEOS) }
24 { with the following modification: }
25 { As a special exception, the copyright holders of this }
26 { library give you permission to link this library with }
27 { independent modules to produce an executable, }
28 { regardless of the license terms of these independent }
29 { modules, and to copy and distribute the resulting }
30 { executable under terms of your choice, provided that }
31 { you also meet, for each linked independent module, }
32 { the terms and conditions of the license of that module. }
33 { An independent module is a module which is not derived }
34 { from or based on this library. If you modify this }
35 { library, you may extend this exception to your version }
36 { of the library, but you are not obligated to do so. }
37 { If you do not wish to do so, delete this exception }
38 { statement from your version. }
41 { The project web site is located on: }
42 { http://zeos.firmos.at (FORUM) }
43 { http://sourceforge.net/p/zeoslib/tickets/ (BUGTRACKER)}
44 { svn://svn.code.sf.net/p/zeoslib/code-0/trunk (SVN) }
46 { http://www.sourceforge.net/projects/zeoslib. }
49 { Zeos Development Group. }
50 {********************************************************@}
52 unit ZPlainOracleDriver;
64 ZPlainLoader, ZCompatibility, ZPlainOracleConstants, ZPlainDriver;
66 {***************** Plain API types definition ****************}
69 WINDOWS_DLL_LOCATION = 'oci.dll';
70 // WINDOWS_DLL_LOCATION = 'ora803.dll';
71 LINUX_DLL_LOCATION = 'libclntsh'+SharedSuffix;
72 // LINUX_DLL_LOCATION = 'libwtc8.so';
76 {** Represents a generic interface to Oracle native API. }
77 IZOraclePlainDriver = interface (IZPlainDriver)
78 ['{22404660-C95F-4346-A3DB-7C6DFE15F115}']
80 function Initializ(mode: ub4; ctxp: Pointer; malocfp: Pointer;
81 ralocfp: Pointer; mfreefp: Pointer): sword;
82 function EnvInit(var envhpp: POCIEnv; mode: ub4; xtramemsz: size_T;
83 usrmempp: PPointer): sword;
84 function EnvCreate(var envhpp: POCIEnv; mode: ub4; ctxp: Pointer;
85 malocfp: Pointer; ralocfp: Pointer; mfreefp: Pointer; xtramemsz: size_T;
86 usrmempp: PPointer): sword;
87 function EnvNlsCreate(var envhpp: POCIEnv; mode: ub4; ctxp: Pointer;
88 malocfp: Pointer; ralocfp: Pointer; mfreefp: Pointer; xtramemsz: size_T;
89 usrmempp: PPointer; charset, ncharset: ub2): sword;
91 function HandleAlloc(parenth: POCIHandle; var hndlpp: POCIHandle;
92 atype: ub4; xtramem_sz: size_T; usrmempp: PPointer): sword;
93 function ServerAttach(srvhp: POCIServer; errhp: POCIError; dblink: text;
94 dblink_len: sb4; mode: ub4): sword;
95 function AttrSet(trgthndlp: POCIHandle; trghndltyp: ub4;
96 attributep: Pointer; size: ub4; attrtype: ub4; errhp: POCIError):sword;
97 function SessionBegin(svchp: POCISvcCtx; errhp: POCIError;
98 usrhp: POCISession; credt: ub4; mode: ub4):sword;
99 function SessionEnd(svchp: POCISvcCtx; errhp: POCIError;
100 usrhp: POCISession; mode: ub4): sword;
101 function ServerDetach(srvhp: POCIServer; errhp: POCIError;
103 function HandleFree(hndlp: Pointer; atype: ub4): sword;
104 function ErrorGet(hndlp: Pointer; recordno: ub4; sqlstate: text;
105 var errcodep: sb4; bufp: text; bufsiz: ub4; atype: ub4): sword;
107 function StmtPrepare(stmtp: POCIStmt; errhp: POCIError; stmt: text;
108 stmt_len: ub4; language:ub4; mode: ub4):sword;
109 function StmtExecute(svchp: POCISvcCtx; stmtp: POCIStmt;
110 errhp: POCIError; iters: ub4; rowoff: ub4; snap_in: POCISnapshot;
111 snap_out: POCISnapshot; mode: ub4): sword;
112 function ParamGet(hndlp: Pointer; htype: ub4; errhp: POCIError;
113 var parmdpp: Pointer; pos: ub4): sword;
114 function AttrGet(trgthndlp: POCIHandle; trghndltyp: ub4;
115 attributep: Pointer; sizep: Pointer; attrtype: ub4;
116 errhp: POCIError): sword;
117 function StmtFetch(stmtp: POCIStmt; errhp: POCIError; nrows: ub4;
118 orientation: ub2; mode: ub4): sword;
119 function DefineByPos(stmtp: POCIStmt; var defnpp: POCIDefine;
120 errhp: POCIError; position: ub4; valuep: Pointer; value_sz: sb4; dty: ub2;
121 indp: Pointer; rlenp: Pointer; rcodep: Pointer; mode: ub4): sword;
122 function DefineArrayOfStruct(defnpp: POCIDefine; errhp: POCIError;
123 pvskip: ub4; indskip: ub4; rlskip: ub4; rcskip: ub4): sword;
125 function BindByPos(stmtp: POCIStmt; var bindpp: POCIBind;
126 errhp: POCIError; position: ub4; valuep: Pointer; value_sz: sb4; dty: ub2;
127 indp: Pointer; alenp: Pointer; rcodep: Pointer; maxarr_len: ub4;
128 curelep: Pointer; mode: ub4): sword;
129 function BindByName(stmtp: POCIStmt; var bindpp: POCIBind;
130 errhp: POCIError; placeholder: text; placeh_len: sb4; valuep: Pointer;
131 value_sz: sb4; dty: ub2; indp: Pointer; alenp: Pointer; rcodep: Pointer;
132 maxarr_len: ub4; curelep: Pointer; mode: ub4): sword;
133 function BindDynamic(bindp: POCIBind; errhp: POCIError; ictxp: Pointer;
134 icbfp: Pointer; octxp: Pointer; ocbfp: Pointer): sword;
135 function BindObject(bindp: POCIBind; errhp: POCIError;
136 const _type: POCIType; pgvpp: PPointer;
137 pvszsp: pub4; indpp: PPointer;
138 indszp: pub4): sword;
140 function DefineObject(defnpp: POCIDefine; errhp: POCIError;
141 _type: POCIHandle; pgvpp, pvszsp, indpp, indszp: pointer): sword;
144 function ObjectNew(env: POCIEnv; err: POCIError; const svc: POCISvcCtx;
145 typecode: OCITypeCode; tdo: POCIType; table: Pointer;
146 duration: OCIDuration; value: Longbool;
147 instance: PPointer): sword;
148 function ObjectPin(env: POCIEnv; err: POCIError;
149 const object_ref: POCIRef; const corhdl: POCIComplexObject;
150 const pin_option: OCIPinOpt; const pin_duration: OCIDuration;
151 const lock_option: OCILockOpt; _object: PPointer): sword;
152 function ObjectUnpin(env: POCIEnv; err: POCIError;
153 const _object: Pointer): sword;
154 function ObjectPinCountReset(env: POCIEnv; err: POCIError;
155 const _object: pointer): sword;
156 function ObjectLock(env: POCIEnv; err: POCIError;
157 const _object: pointer): sword;
158 function ObjectLockNoWait(env: POCIEnv; err: POCIError;
159 const _object: pointer): sword;
160 function ObjectMarkUpdate(env: POCIEnv; err: POCIError;
161 const _object: pointer): sword;
162 function ObjectUnmark(env: POCIEnv; err: POCIError;
163 const _object:pointer): sword;
164 function ObjectUnmarkByRef(env: POCIEnv; err: POCIError;
165 const ref: POCIRef): sword;
166 function ObjectFree(hndl: POCIEnv; err: POCIError;
167 instance: POCIHandle;flags :ub2):sword;
168 function ObjectMarkDeleteByRef(env: POCIEnv; err: POCIError;
169 const object_ref:POCIRef): sword;
170 function ObjectMarkDelete(env: POCIEnv; err: POCIError;
171 const instance:pointer): sword;
172 function ObjectFlush(env: POCIEnv; err: POCIError;
173 const _object: pointer): sword;
174 function ObjectRefresh(env: POCIEnv; err: POCIError;
175 _object: pointer): sword;
176 function ObjectCopy(env: POCIEnv; err: POCIError; const svc: POCISvcCtx;
177 const source, null_source, target, null_target: pointer; const tdo: POCIType;
178 const duration: OCIDuration; const option: ub1): sword;
179 function ObjectGetTypeRef(env: POCIEnv; err: POCIError;
180 const instance:pointer; type_ref: POCIRef): sword;
181 function ObjectGetObjectRef(env: POCIEnv; err: POCIError;
182 const _object: pointer; object_ref: POCIRef): sword;
183 function ObjectMakeObjectRef(env: POCIEnv; err: POCIError;
184 const svc: POCISvcCtx; const table: pointer; const values: PPointer;
185 const array_len: ub4; object_ref: POCIRef): sword;
186 function ObjectGetPrimaryKeyTypeRef(env: POCIEnv; err: POCIError;
187 const svc:POCISvcCtx; const table: pointer; type_ref: POCIRef): sword;
188 function ObjectGetInd(env: POCIEnv; err: POCIError;
189 const instance: pointer; null_struct: PPointer): sword;
190 function ObjectExists(env: POCIEnv; err: POCIError; const ins: pointer;
191 exist: PBoolean): sword;
192 function ObjectGetProperty(envh: POCIEnv; errh: POCIError;
193 const obj: pointer; const propertyId: OCIObjectPropId;
194 _property: pointer; size: Pub4): sword;
195 function ObjectIsLocked(env: POCIEnv; err: POCIError; const ins: pointer;
196 lock: Pboolean): sword;
197 function ObjectIsDirty(env: POCIEnv; err: POCIError; const ins: pointer;
198 dirty: PBoolean): sword;
199 function ObjectPinTable(env: POCIEnv; err: POCIError;
200 const svc:POCISvcCtx; const schema_name: Poratext; const s_n_length: ub4;
201 const object_name: Poratext; const o_n_length:ub4;
202 const scope_obj_ref: POCIRef; const pin_duration: OCIDuration;
203 _object: PPointer): sword;
204 function ObjectArrayPin(env: POCIEnv; err: POCIError;
205 const ref_array: PPOCIRef; const array_size: ub4;
206 const cor_array: PPOCIComplexObject; const cor_array_size: ub4;
207 const pin_option: OCIPinOpt; const pin_duration: OCIDuration;
208 const lock: OCILockOpt; obj_array: PPointer;
210 function CacheFlush(env: POCIEnv; err: POCIError; const svc:POCISvcCtx;
211 const context: pointer; const get: TOCICacheFlushGet;
212 ref: PPOCIRef): sword;
213 function CacheRefresh(env: POCIEnv; err: POCIError;
214 const svc:POCISvcCtx; const option: OCIRefreshOpt; const context: pointer;
215 get: TOCICacheRefreshGet; ref: PPOCIRef): sword;
216 function CacheUnpin(env: POCIEnv; err: POCIError;
217 const svc:POCISvcCtx): sword;
218 function CacheFree(env: POCIEnv; err: POCIError;
219 const svc: POCISvcCtx): sword;
220 function CacheUnmark(env: POCIEnv; err: POCIError;
221 const svc: POCISvcCtx): sword;
222 function DurationBegin(env: POCIEnv; err: POCIError;
223 svc: POCISvcCtx; const parent: OCIDuration;
224 dur: POCIDuration): sword;
225 function DurationEnd(env: POCIEnv; err: POCIError; svc: POCISvcCtx;
226 duration: OCIDuration): sword;
229 function TransStart(svchp: POCISvcCtx; errhp: POCIError; timeout: word;
231 function TransRollback(svchp: POCISvcCtx; errhp: POCIError;
233 function TransCommit(svchp: POCISvcCtx; errhp: POCIError;
235 function TransDetach(svchp: POCISvcCtx; errhp: POCIError;
237 function TransPrepare(svchp: POCISvcCtx; errhp: POCIError;
239 function TransForget(svchp: POCISvcCtx; errhp: POCIError;
242 function DescribeAny(svchp: POCISvcCtx; errhp: POCIError;
243 objptr: Pointer; objnm_len: ub4; objptr_typ: ub1; info_level: ub1;
244 objtyp: ub1; dschp: POCIDescribe): sword;
245 function Break(svchp: POCISvcCtx; errhp:POCIError): sword;
246 function Reset(svchp: POCISvcCtx; errhp:POCIError): sword;
247 function DescriptorAlloc(parenth: POCIEnv; var descpp: POCIDescriptor;
248 htype: ub4; xtramem_sz: integer; usrmempp: Pointer): sword;
249 function DescriptorFree(descp: Pointer; htype: ub4): sword;
251 function DateTimeAssign(hndl: POCIEnv; err: POCIError;
252 const from: POCIDateTime;_to: POCIDateTime): sword;
253 function DateTimeCheck(hndl: POCIEnv; err: POCIError;
254 const date: POCIDateTime; var valid: ub4): sword;
255 function DateTimeCompare(hndl: POCIEnv; err: POCIError;
256 const date1: POCIDateTime; const date2: POCIDateTime;
257 var result: sword): sword;
258 function DateTimeConvert(hndl: POCIEnv; err: POCIError;
259 indate: POCIDateTime; outdate: POCIDateTime): sword;
260 function DateTimeFromText(hndl: POCIEnv; err: POCIError;
261 const date_str: text; d_str_length: size_t; const fmt: text;
262 fmt_length: ub1; const lang_name: text; lang_length: size_t;
263 date: POCIDateTime): sword;
264 function DateTimeGetDate(hndl: POCIEnv; err: POCIError;
265 const date: POCIDateTime; var year: sb2; var month: ub1;
266 var day: ub1): sword;
267 function DateTimeGetTime(hndl: POCIEnv; err: POCIError;
268 datetime: POCIDateTime; var hour: ub1; var minute: ub1; var sec: ub1;
269 var fsec: ub4): sword;
270 function DateTimeGetTimeZoneOffset(hndl: POCIEnv; err: POCIError;
271 const datetime: POCIDateTime; var hour: sb1; var minute: sb1): sword;
272 function DateTimeSysTimeStamp(hndl: POCIEnv; err: POCIError;
273 sys_date: POCIDateTime): sword;
274 function DateTimeConstruct(hndl: POCIEnv; err: POCIError;
275 datetime: POCIDateTime; year: sb2; month: ub1; day: ub1; hour: ub1;
276 min: ub1; sec: ub1; fsec: ub4; timezone: text;
277 timezone_length: size_t): sword;
278 function DateTimeToText(hndl: POCIEnv; err: POCIError;
279 const date: POCIDateTime; const fmt: text; fmt_length: ub1;
280 fsprec: ub1; const lang_name: text; lang_length: size_t;
281 var buf_size: ub4; buf: text): sword;
282 function DateTimeGetTimeZoneName(hndl: POCIEnv; err: POCIError;
283 datetime: POCIDateTime; var buf: ub1; var buflen: ub4): sword;
285 function LobAppend(svchp: POCISvcCtx; errhp: POCIError; dst_locp,
286 src_locp: POCILobLocator): sword;
287 function LobAssign(svchp: POCISvcCtx; errhp: POCIError;
288 src_locp: POCILobLocator; var dst_locpp: POCILobLocator): sword;
289 function LobClose(svchp: POCISvcCtx; errhp: POCIError;
290 locp: POCILobLocator): sword;
291 function LobCopy(svchp: POCISvcCtx; errhp: POCIError;
292 dst_locp: POCILobLocator; src_locp: POCILobLocator; amount: ub4;
293 dst_offset: ub4; src_offset: ub4): sword;
294 function LobEnableBuffering(svchp: POCISvcCtx; errhp: POCIError;
295 locp: POCILobLocator): sword;
296 function LobDisableBuffering(svchp: POCISvcCtx; errhp: POCIError;
297 locp: POCILobLocator): sword;
298 function LobErase(svchp: POCISvcCtx; errhp: POCIError; locp: POCILobLocator;
299 var amount: ub4; offset: ub4): sword;
300 function LobFileExists(svchp: POCISvcCtx; errhp: POCIError;
301 filep: POCILobLocator; var flag: Boolean): sword;
302 function LobFileGetName(envhp: POCIEnv; errhp: POCIError;
303 filep: POCILobLocator; dir_alias: text; var d_length: ub2; filename: text;
304 var f_length: ub2): sword;
305 function LobFileSetName(envhp: POCIEnv; errhp: POCIError;
306 var filep: POCILobLocator; dir_alias: text; d_length: ub2; filename: text;
307 f_length: ub2): sword;
308 function LobFlushBuffer(svchp: POCISvcCtx; errhp: POCIError;
309 locp: POCILobLocator; flag: ub4): sword;
310 function LobGetLength(svchp: POCISvcCtx; errhp: POCIError;
311 locp: POCILobLocator; var lenp: ub4): sword;
312 function LobIsOpen(svchp: POCISvcCtx; errhp: POCIError;
313 locp: POCILobLocator; var flag: LongBool): sword;
314 function LobLoadFromFile(svchp: POCISvcCtx; errhp: POCIError;
315 dst_locp: POCILobLocator; src_locp: POCILobLocator; amount: ub4;
316 dst_offset: ub4; src_offset: ub4): sword;
317 function LobLocatorIsInit(envhp: POCIEnv; errhp: POCIError;
318 locp: POCILobLocator; var is_initialized: LongBool): sword;
319 function LobOpen(svchp: POCISvcCtx; errhp: POCIError;
320 locp: POCILobLocator; mode: ub1): sword;
321 function LobRead(svchp: POCISvcCtx; errhp: POCIError;
322 locp: POCILobLocator; var amtp: ub4; offset: ub4; bufp: Pointer; bufl: ub4;
323 ctxp: Pointer; cbfp: Pointer; csid: ub2; csfrm: ub1): sword;
324 function LobTrim(svchp: POCISvcCtx; errhp: POCIError;
325 locp: POCILobLocator; newlen: ub4): sword;
326 function LobWrite(svchp: POCISvcCtx; errhp: POCIError;
327 locp: POCILobLocator; var amtp: ub4; offset: ub4; bufp: Pointer; bufl: ub4;
328 piece: ub1; ctxp: Pointer; cbfp: Pointer; csid: ub2; csfrm: ub1): sword;
329 function LobCreateTemporary(svchp: POCISvcCtx; errhp: POCIError;
330 locp: POCILobLocator; csid: ub2; csfrm: ub1; lobtype: ub1;
331 cache: LongBool; duration: OCIDuration): sword;
332 function LobIsTemporary(svchp: POCISvcCtx; errhp: POCIError;
333 locp: POCILobLocator; var is_temporary: LongBool): sword;
334 function LobFreeTemporary(svchp: POCISvcCtx; errhp: POCIError;
335 locp: POCILobLocator): sword;
336 function LobCharSetForm ( envhp: POCIEnv; errhp: POCIError;
337 const locp: POCILobLocator; csfrm: pub1): sword;
338 function LobCharSetId ( envhp: POCIEnv; errhp: POCIError;
339 const locp: POCILobLocator; csid: pub2): sword;
341 function StmtGetPieceInfo(stmtp: POCIStmt; errhp: POCIError;
342 var hndlpp: Pointer; var typep: ub4; var in_outp: ub1; var iterp: ub4;
343 var idxp: ub4; var piecep: ub1): sword;
344 function StmtSetPieceInfo(handle: Pointer; typep: ub4; errhp: POCIError;
345 buf: Pointer; var alenp: ub4; piece: ub1; indp: Pointer;
346 var rcodep: ub2): sword;
347 function PasswordChange(svchp: POCISvcCtx; errhp: POCIError;
348 user_name: text; usernm_len: ub4; opasswd: text; opasswd_len: ub4;
349 npasswd: text; npasswd_len: sb4; mode: ub4): sword;
350 function ServerVersion(hndlp: POCIHandle; errhp: POCIError; bufp: text;
351 bufsz: ub4; hndltype: ub1): sword;
352 function ServerRelease(hndlp: POCIHandle;
353 errhp: POCIError; bufp: text; bufsz: ub4; hndltype: ub1; version:pointer): sword;
354 function ResultSetToStmt(rsetdp: POCIHandle; errhp: POCIError): sword;
356 function GetEnvCharsetByteWidth(hndl: POCIEnv; err: POCIError;
358 procedure ClientVersion(major_version, minor_version, update_num,
359 patch_num, port_update_num: psword);
361 function NumberInc(err: POCIError; number: POCINumber): sword;
362 function NumberDec(err: POCIError; number: POCINumber): sword;
363 procedure NumberSetZero(err: POCIError; number: POCINumber);
364 procedure NumberSetPi(err: POCIError; number: POCINumber);
365 function NumberAdd(err: POCIError; const number1: POCINumber;
366 const number2: POCINumber; _result: POCINumber): sword;
367 function NumberSub(err: POCIError; const number1: POCINumber;
368 const number2: POCINumber; _result: POCINumber): sword;
369 function NumberMul(err: POCIError; const number1: POCINumber;
370 const number2: POCINumber; _result: POCINumber): sword;
371 function NumberDiv(err: POCIError; const number1: POCINumber;
372 const number2: POCINumber; _result: POCINumber): sword;
373 function NumberMod(err: POCIError; const number1: POCINumber;
374 const number2: POCINumber; _result: POCINumber): sword;
375 function NumberIntPower(err: POCIError; const number1: POCINumber;
376 const number2: POCINumber; _result: POCINumber): sword;
377 function NumberShift(err: POCIError; const number: POCINumber;
378 const nDig: sword; _result: POCINumber): sword;
379 function NumberNeg(err: POCIError; const number: POCINumber;
380 _result: POCINumber): sword;
381 function NumberToText(err: POCIError; const number: POCINumber;
382 const fmt: Poratext; fmt_length: ub4; const nls_params: Poratext;
383 nls_p_length: ub4; buf_size: pub4; buf: poratext): sword;
384 function NumberFromText(err: POCIError; const str: poratext;
385 str_length: ub4; const fmt: poratext; fmt_length: ub4;
386 const nls_params: poratext; nls_p_length: ub4; number: POCINumber): sword;
387 function NumberToInt(err: POCIError; const number: POCINumber;
388 rsl_length: uword; rsl_flag: uword; rsl: Pointer): sword;
389 function NumberFromInt(err: POCIError; const inum: Pointer;
390 inum_length: uword; inum_s_flag: uword; number: POCINumber): sword;
391 function NumberToReal(err: POCIError; const number: POCINumber;
392 rsl_length: uword; rsl: Pointer): sword;
393 function NumberToRealArray(err: POCIError; const number: PPOCINumber;
394 elems: uword; rsl_length: uword; rsl: Pointer): sword;
395 function NumberFromReal(err: POCIError; const rnum: Pointer;
396 rnum_length: uword; number: POCINumber): sword;
397 function NumberCmp(err: POCIError; const number1: POCINumber;
398 const number2: POCINumber; _result: psword): sword;
399 function NumberSign(err: POCIError; const number: POCINumber;
400 _result: psword): sword;
401 function NumberIsZero(err: POCIError; const number: POCINumber;
402 _Result: pboolean): sword;
403 function NumberIsInt(err: POCIError; const number: POCINumber;
404 _result: Pboolean): sword;
405 function NumberAssign(err: POCIError; const from: POCINumber;
406 _to: POCINumber): sword;
407 function NumberAbs(err: POCIError; const number: POCINumber;
408 _result: POCINumber): sword;
409 function NumberCeil(err: POCIError; const number: POCINumber;
410 _result: POCINumber): sword;
411 function NumberFloor(err: POCIError; const number: POCINumber;
412 _result: POCINumber): sword;
413 function NumberSqrt(err: POCIError; const number: POCINumber;
414 _result: POCINumber): sword;
415 function NumberTrunc(err: POCIError; const number: POCINumber;
416 _result: POCINumber): sword;
417 function NumberPower(err: POCIError; const base: POCINumber;
418 const number: POCINumber; _result: POCINumber): sword;
419 function NumberRound(err: POCIError; const number: POCINumber;
420 decplace: sword; _result: POCINumber): sword;
421 function NumberPrec(err: POCIError; const number: POCINumber;
422 nDigs: sword; _result: POCINumber): sword;
423 function NumberSin(err: POCIError; const number: POCINumber;
424 _result: POCINumber): sword;
425 function NumberArcSin(err: POCIError; const number: POCINumber;
426 _result: POCINumber): sword;
427 function NumberHypSin(err: POCIError; const number: POCINumber;
428 _result: POCINumber): sword;
429 function NumberCos(err: POCIError; const number: POCINumber;
430 _result: POCINumber): sword;
431 function NumberArcCos(err: POCIError; const number: POCINumber;
432 _result: POCINumber): sword;
433 function NumberHypCos(err: POCIError; const number: POCINumber;
434 _result: POCINumber): sword;
435 function NumberTan(err: POCIError; const number: POCINumber;
436 _result: POCINumber): sword;
437 function NumberArcTan(err: POCIError; const number: POCINumber;
438 _result: POCINumber): sword;
439 function NumberArcTan2(err: POCIError; const number1: POCINumber;
440 const number2: POCINumber; _result: POCINumber): sword;
441 function NumberHypTan(err: POCIError; const number: POCINumber;
442 _result: POCINumber): sword;
443 function NumberExp(err: POCIError; const number: POCINumber;
444 _result: POCINumber): sword;
445 function NumberLn(err: POCIError; const number: POCINumber;
446 _result: POCINumber): sword;
447 function NumberLog(err: POCIError; const base: POCINumber;
448 const number: POCINumber; _result: POCINumber): sword;
450 function TableSize(hndl: POCIEnv; err: POCIError; const tbl: POCITable;
452 function TableExists(hndl: POCIEnv; err: POCIError; const tbl: POCITable;
453 index: sb4; exists: PBoolean): sword;
454 function TableDelete(hndl: POCIEnv; err: POCIError; index: sb4;
455 tbl: POCITable): sword;
456 function TableFirst(hndl: POCIEnv; err: POCIError; const tbl: POCITable;
458 function TableLast(hndl: POCIEnv; err: POCIError; const tbl: POCITable;
460 function TableNext(hndl: POCIEnv; err: POCIError; index: sb4;
461 const tbl: POCITable; next_index: psb4; exists: PBoolean): sword;
462 function TablePrev(hndl: POCIEnv; err: POCIError; index: sb4;
463 const tbl: POCITable; prev_index: psb4; exists: PBoolean): sword;
464 function ObjectSetAttr(env: POCIEnv; err: POCIError; instance: Pointer;
465 null_struct: pointer; tdo: POCIType; const names: PPAnsiChar;
466 const lengths: pub4; const name_count: ub4;
467 const indexes: pub4; const index_count: ub4;
468 const null_status: POCIInd; const attr_null_struct: Pointer;
469 const attr_value: Pointer): sword; cdecl;
470 function ObjectGetAttr(env: POCIEnv; err: POCIError; instance: Pointer;
471 null_struct: Pointer; tdo: POCIType;
472 const names: PPoratext; const lengths: pub4;
473 const name_count: ub4; const indexes: pub4;
474 const index_count: ub4; attr_null_status: POCIInd;
475 attr_null_struct, attr_value: PPointer;
476 attr_tdo: PPOCIType): sword;
478 function Ping(svchp: POCISvcCtx; errhp: POCIError; mode: ub4 = OCI_DEFAULT): sword;
480 function TypeIterNew(env: POCIEnv; err: POCIError; const tdo: POCIType;
481 iterator_ort: PPOCITypeIter):sword;
482 function TypeIterSet(env: POCIEnv; err: POCIError; const tdo: POCIType;
483 iterator_ort: POCITypeIter): sword;
484 function TypeIterFree(env: POCIEnv; err: POCIError;
485 iterator_ort: POCITypeIter): sword;
486 function TypeByName(env: POCIEnv; err: POCIError; const svc: POCISvcCtx;
487 schema_name: Poratext; const s_length: ub4; const type_name: Poratext;
488 const t_length: ub4; version_name: Poratext; const v_length: ub4;
489 const pin_duration: OCIDuration; const get_option: OCITypeGetOpt;
490 tdo: PPOCIType): sword;
491 function TypeArrayByName(env: POCIEnv; err: POCIError; svc: POCISvcCtx;
492 array_len: ub4; schema_name: PPoratext; s_length: Pub4;
493 type_name: PPoratext; t_length: Pub4; version_name: PPoratext;
494 v_length: Pub4; pin_duration: OCIDuration; get_option: OCITypeGetOpt;
495 tdo: PPOCIType): sword;
496 function TypeByRef(env: POCIEnv; err: POCIError; type_ref: POCIRef;
497 pin_duration: OCIDuration; get_option: OCITypeGetOpt;
498 tdo: PPOCIType): sword;
499 function TypeArrayByRef(env: POCIEnv; err: POCIError; array_len: ub4;
500 type_ref: PPOCIRef; pin_duration: OCIDuration; get_option: OCITypeGetOpt;
501 tdo: PPOCIType): sword;
502 function TypeName(env: POCIEnv; err: POCIError; tdo: POCIType;
503 n_length: Pub4): poratext;
504 function TypeSchema(env: POCIEnv; err: POCIError; const tdo: POCIType;
505 n_length: Pub4): poratext;
506 function TypeTypeCode(env: POCIEnv; err: POCIError;
507 const tdo: POCIType): OCITypeCode;
508 function TypeCollTypeCode(env:POCIEnv; err:POCIError;
509 const tdo: POCIType): OCITypeCode;
510 function TypeVersion(env: POCIEnv; err: POCIError; const tdo: POCIType;
511 v_length: Pub4): poratext;
512 function TypeAttrs(env: POCIEnv; err: POCIError;
513 const tdo:POCIType): ub4;
514 function TypeMethods(env: POCIEnv; err: POCIError;
515 const tdo: POCIType): ub4;
516 function TypeElemName(env: POCIEnv; err: POCIError;
517 const elem: POCITypeElem; n_length:Pub4): poratext;
518 function TypeElemTypeCode(env: POCIEnv; err: POCIError;
519 const elem: POCITypeElem): OCITypeCode;
520 function TypeElemType(env: POCIEnv; err: POCIError;
521 const elem: POCITypeElem; elem_tdo:PPOCIType): sword;
522 function TypeElemFlags(env: POCIEnv; err: POCIError;
523 const elem: POCITypeElem): ub4;
524 function TypeElemNumPrec(env: POCIEnv; err: POCIError;
525 const elem: POCITypeElem): ub1;
526 function TypeElemNumScale(env: POCIEnv; err: POCIError;
527 const elem: POCITypeElem): sb1;
528 function TypeElemLength(env: POCIEnv; err: POCIError;
529 const elem:POCITypeElem): ub4;
530 function TypeElemCharSetID(env: POCIEnv; err: POCIError;
531 const elem: POCITypeElem): ub2;
532 function TypeElemCharSetForm(env: POCIEnv; err: POCIError;
533 const elem: POCITypeElem): ub2;
534 function TypeElemParameterizedType(env: POCIEnv; err: POCIError;
535 const elem: POCITypeElem; type_stored: PPOCIType): sword;
536 function TypeElemExtTypeCode(env: POCIEnv; err: POCIError;
537 const elem: POCITypeElem): OCITypeCode;
538 function TypeAttrByName(env: POCIEnv; err: POCIError;
539 const tdo: POCIType; const name: Poratext; const n_length: ub4;
540 elem: PPOCITypeElem): sword;
541 function TypeAttrNext(env: POCIEnv; err: POCIError;
542 iterator_ort: POCITypeIter; elem: PPOCITypeElem): sword;
543 function TypeCollElem(env: POCIEnv; err: POCIError; const tdo:POCIType;
544 element: PPOCITypeElem): sword;
545 function TypeCollSize(env: POCIEnv; err: POCIError; const tdo: POCIType;
546 num_elems: Pub4): sword;
547 function TypeCollExtTypeCode(env: POCIEnv; err: POCIError;
548 const tdo:POCIType; sqt_code: POCITypeCode): sword;
549 function TypeMethodOverload(env: POCIEnv; err: POCIError;
550 const tdo: POCIType; const method_name: Poratext;
551 const m_length: ub4): ub4;
552 function TypeMethodByName(env: POCIEnv; err: POCIError;
553 const tdo: POCIType; const method_name: Poratext; const m_length: ub4;
554 mdos: PPOCITypeMethod): sword;
555 function TypeMethodNext(env: POCIEnv; err: POCIError;
556 iterator_ort: POCITypeIter; mdo: PPOCITypeMethod): sword;
557 function TypeMethodName(env:POCIEnv; err: POCIError;
558 const mdo: POCITypeMethod; n_length: Pub4): poratext;
559 function TypeMethodEncap(env: POCIEnv; err: POCIError;
560 const mdo: POCITypeMethod): OCITypeEncap;
561 function TypeMethodFlags(env: POCIEnv; err: POCIError;
562 const mdo:POCITypeMethod): OCITypeMethodFlag;
563 function TypeMethodMap(env: POCIEnv; err: POCIError; const tdo: POCIType;
564 mdo: PPOCITypeMethod): sword;
565 function TypeMethodOrder(env: POCIEnv; err: POCIError;
566 const tdo: POCIType; mdo: PPOCITypeMethod): sword;
567 function TypeMethodParams(env: POCIEnv; err: POCIError;
568 const mdo: POCITypeMethod): ub4;
569 function TypeResult(env: POCIEnv; err: POCIError;
570 const mdo: POCITypeMethod; elem: PPOCITypeElem): sword;
571 function TypeParamByPos(env: POCIEnv; err: POCIError;
572 const mdo: POCITypeMethod; const position: ub4;
573 elem: PPOCITypeElem): sword;
574 function TypeParamByName(env: POCIEnv; err: POCIError;
575 const mdo: POCITypeMethod; const name: Poratext; const n_length: ub4;
576 elem:PPOCITypeElem): sword;
577 function TypeParamPos(env: POCIEnv; err: POCIError;
578 const mdo: POCITypeMethod; const name: Poratext; const n_length: ub4;
579 position: Pub4; elem: PPOCITypeElem): sword;
580 function TypeElemParamMode(env: POCIEnv; err: POCIError;
581 const elem: POCITypeElem): OCITypeParamMode;
582 function TypeElemDefaultValue(env: POCIEnv; err: POCIError;
583 const elem: POCITypeElem; d_v_length: Pub4): poratext;
584 function TypeVTInit(env: POCIEnv; err: POCIError): sword;
585 function TypeVTInsert(env: POCIEnv; err: POCIError;
586 const schema_name: Poratext; const s_n_length: ub4;
587 const type_name: Poratext; const t_n_length: ub4;
588 const user_version:Poratext; const u_v_length:ub4): sword;
589 function TypeVTSelect(env: POCIEnv; err: POCIError;
590 const schema_name: Poratext; const s_n_length: ub4;
591 const type_name: Poratext; const t_n_length: ub4; user_version: PPoratext;
592 u_v_length: Pub4; version: Pub2): sword;
595 {** Implements a driver for Oracle 9i }
596 TZOracle9iPlainDriver = class (TZAbstractPlainDriver, IZPlainDriver,
599 OracleAPI: OracleOCI_API;
601 procedure LoadApi; override;
602 function Clone: IZPlainDriver; override;
606 function GetUnicodeCodePageName: String; override;
607 procedure LoadCodePages; override;
608 function GetProtocol: string; override;
609 function GetDescription: string; override;
610 procedure Initialize(const Location: String); override;
612 function Initializ(mode: ub4; ctxp: Pointer; malocfp: Pointer;
613 ralocfp: Pointer; mfreefp: Pointer): sword;
614 function EnvInit(var envhpp: POCIEnv; mode: ub4; xtramemsz: size_T;
615 usrmempp: PPointer): sword;
616 function EnvCreate(var envhpp: POCIEnv; mode: ub4; ctxp: Pointer;
617 malocfp: Pointer; ralocfp: Pointer; mfreefp: Pointer; xtramemsz: size_T;
618 usrmempp: PPointer): sword;
619 function EnvNlsCreate(var envhpp: POCIEnv; mode: ub4; ctxp: Pointer;
620 malocfp: Pointer; ralocfp: Pointer; mfreefp: Pointer; xtramemsz: size_T;
621 usrmempp: PPointer; charset, ncharset: ub2): sword;
623 function HandleAlloc(parenth: POCIHandle; var hndlpp: POCIHandle;
624 atype: ub4; xtramem_sz: size_T; usrmempp: PPointer): sword;
625 function ServerAttach(srvhp: POCIServer; errhp: POCIError; dblink: text;
626 dblink_len: sb4; mode: ub4): sword;
627 function AttrSet(trgthndlp: POCIHandle; trghndltyp: ub4;
628 attributep: Pointer; size: ub4; attrtype: ub4; errhp: POCIError):sword;
629 function SessionBegin(svchp: POCISvcCtx; errhp: POCIError;
630 usrhp: POCISession; credt: ub4; mode: ub4):sword;
631 function SessionEnd(svchp: POCISvcCtx; errhp: POCIError;
632 usrhp: POCISession; mode: ub4): sword;
633 function ServerDetach(srvhp: POCIServer; errhp: POCIError;
635 function HandleFree(hndlp: Pointer; atype: ub4): sword;
636 function ErrorGet(hndlp: Pointer; recordno: ub4; sqlstate: text;
637 var errcodep: sb4; bufp: text; bufsiz: ub4; atype: ub4): sword;
639 function StmtPrepare(stmtp: POCIStmt; errhp: POCIError; stmt: text;
640 stmt_len: ub4; language:ub4; mode: ub4):sword;
641 function StmtExecute(svchp: POCISvcCtx; stmtp: POCIStmt;
642 errhp: POCIError; iters: ub4; rowoff: ub4; snap_in: POCISnapshot;
643 snap_out: POCISnapshot; mode: ub4): sword;
644 function ParamGet(hndlp: Pointer; htype: ub4; errhp: POCIError;
645 var parmdpp: Pointer; pos: ub4): sword;
646 function AttrGet(trgthndlp: POCIHandle; trghndltyp: ub4;
647 attributep: Pointer; sizep: Pointer; attrtype: ub4;
648 errhp: POCIError): sword;
649 function StmtFetch(stmtp: POCIStmt; errhp: POCIError; nrows: ub4;
650 orientation: ub2; mode: ub4): sword;
651 function DefineByPos(stmtp: POCIStmt; var defnpp: POCIDefine;
652 errhp: POCIError; position: ub4; valuep: Pointer; value_sz: sb4; dty: ub2;
653 indp: Pointer; rlenp: Pointer; rcodep: Pointer; mode: ub4): sword;
654 function DefineArrayOfStruct(defnpp: POCIDefine; errhp: POCIError;
655 pvskip: ub4; indskip: ub4; rlskip: ub4; rcskip: ub4): sword;
657 function BindByPos(stmtp: POCIStmt; var bindpp: POCIBind;
658 errhp: POCIError; position: ub4; valuep: Pointer; value_sz: sb4; dty: ub2;
659 indp: Pointer; alenp: Pointer; rcodep: Pointer; maxarr_len: ub4;
660 curelep: Pointer; mode: ub4): sword;
661 function BindByName(stmtp: POCIStmt; var bindpp: POCIBind;
662 errhp: POCIError; placeholder: text; placeh_len: sb4; valuep: Pointer;
663 value_sz: sb4; dty: ub2; indp: Pointer; alenp: Pointer; rcodep: Pointer;
664 maxarr_len: ub4; curelep: Pointer; mode: ub4): sword;
665 function BindDynamic(bindp: POCIBind; errhp: POCIError; ictxp: Pointer;
666 icbfp: Pointer; octxp: Pointer; ocbfp: Pointer): sword;
667 function BindObject(bindp: POCIBind; errhp: POCIError;
668 const _type: POCIType; pgvpp: PPointer;
669 pvszsp: pub4; indpp: PPointer;
670 indszp: pub4): sword;
672 function DefineObject(defnpp:POCIDefine; errhp:POCIError;
673 _type:POCIHandle; pgvpp,pvszsp,indpp,indszp:pointer): sword;
676 function ObjectNew(env: POCIEnv; err: POCIError; const svc: POCISvcCtx;
677 typecode: OCITypeCode; tdo: POCIType; table: Pointer;
678 duration: OCIDuration; value: Longbool;
679 instance: PPointer): sword;
680 function ObjectPin(env: POCIEnv; err: POCIError;
681 const object_ref: POCIRef; const corhdl: POCIComplexObject;
682 const pin_option: OCIPinOpt; const pin_duration: OCIDuration;
683 const lock_option: OCILockOpt; _object: PPointer): sword;
684 function ObjectUnpin(env: POCIEnv; err: POCIError;
685 const _object: Pointer): sword;
686 function ObjectPinCountReset(env: POCIEnv; err: POCIError;
687 const _object: pointer): sword;
688 function ObjectLock(env: POCIEnv; err: POCIError;
689 const _object: pointer): sword;
690 function ObjectLockNoWait(env: POCIEnv; err: POCIError;
691 const _object: pointer): sword;
692 function ObjectMarkUpdate(env: POCIEnv; err: POCIError;
693 const _object: pointer): sword;
694 function ObjectUnmark(env: POCIEnv; err: POCIError;
695 const _object:pointer): sword;
696 function ObjectUnmarkByRef(env: POCIEnv; err: POCIError;
697 const ref: POCIRef): sword;
698 function ObjectFree(hndl: POCIEnv; err: POCIError;
699 instance:POCIHandle;flags :ub2):sword;
700 function ObjectMarkDeleteByRef(env: POCIEnv; err: POCIError;
701 const object_ref:POCIRef): sword;
702 function ObjectMarkDelete(env: POCIEnv; err: POCIError;
703 const instance:pointer): sword;
704 function ObjectFlush(env: POCIEnv; err: POCIError;
705 const _object: pointer): sword;
706 function ObjectRefresh(env: POCIEnv; err: POCIError;
707 _object: pointer): sword;
708 function ObjectCopy(env: POCIEnv; err: POCIError; const svc: POCISvcCtx;
709 const source, null_source, target, null_target: pointer; const tdo: POCIType;
710 const duration: OCIDuration; const option: ub1): sword;
711 function ObjectGetTypeRef(env: POCIEnv; err: POCIError;
712 const instance:pointer; type_ref: POCIRef): sword;
713 function ObjectGetObjectRef(env: POCIEnv; err: POCIError;
714 const _object: pointer; object_ref: POCIRef): sword;
715 function ObjectMakeObjectRef(env: POCIEnv; err: POCIError;
716 const svc: POCISvcCtx; const table: pointer; const values: PPointer;
717 const array_len: ub4; object_ref: POCIRef): sword;
718 function ObjectGetPrimaryKeyTypeRef(env: POCIEnv; err: POCIError;
719 const svc:POCISvcCtx; const table: pointer; type_ref: POCIRef): sword;
720 function ObjectGetInd(env: POCIEnv; err: POCIError;
721 const instance: pointer; null_struct: PPointer): sword;
722 function ObjectExists(env: POCIEnv; err: POCIError; const ins: pointer;
723 exist: PBoolean): sword;
724 function ObjectGetProperty(envh: POCIEnv; errh: POCIError;
725 const obj: pointer; const propertyId: OCIObjectPropId;
726 _property: pointer; size: Pub4): sword;
727 function ObjectIsLocked(env: POCIEnv; err: POCIError; const ins: pointer;
728 lock: Pboolean): sword;
729 function ObjectIsDirty(env: POCIEnv; err: POCIError; const ins: pointer;
730 dirty: PBoolean): sword;
731 function ObjectPinTable(env: POCIEnv; err: POCIError;
732 const svc:POCISvcCtx; const schema_name: Poratext; const s_n_length: ub4;
733 const object_name: Poratext; const o_n_length:ub4;
734 const scope_obj_ref: POCIRef; const pin_duration: OCIDuration;
735 _object: PPointer): sword;
736 function ObjectArrayPin(env: POCIEnv; err: POCIError;
737 const ref_array: PPOCIRef; const array_size: ub4;
738 const cor_array: PPOCIComplexObject; const cor_array_size: ub4;
739 const pin_option: OCIPinOpt; const pin_duration: OCIDuration;
740 const lock: OCILockOpt; obj_array: PPointer;
742 function CacheFlush(env: POCIEnv; err: POCIError; const svc:POCISvcCtx;
743 const context: pointer; const get: TOCICacheFlushGet;
744 ref: PPOCIRef): sword;
745 function CacheRefresh(env: POCIEnv; err: POCIError;
746 const svc:POCISvcCtx; const option: OCIRefreshOpt; const context: pointer;
747 get: TOCICacheRefreshGet; ref: PPOCIRef): sword;
748 function CacheUnpin(env: POCIEnv; err: POCIError;
749 const svc:POCISvcCtx): sword;
750 function CacheFree(env: POCIEnv; err: POCIError;
751 const svc: POCISvcCtx): sword;
752 function CacheUnmark(env: POCIEnv; err: POCIError;
753 const svc: POCISvcCtx): sword;
754 function DurationBegin(env: POCIEnv; err: POCIError;
755 svc: POCISvcCtx; const parent: OCIDuration;
756 dur: POCIDuration): sword;
757 function DurationEnd(env: POCIEnv; err: POCIError; svc: POCISvcCtx;
758 duration: OCIDuration): sword;
761 function TransStart(svchp: POCISvcCtx; errhp: POCIError; timeout: word;
763 function TransRollback(svchp:POCISvcCtx; errhp:POCIError;
765 function TransCommit(svchp: POCISvcCtx; errhp: POCIError;
767 function TransDetach(svchp: POCISvcCtx; errhp: POCIError;
769 function TransPrepare(svchp: POCISvcCtx; errhp: POCIError;
771 function TransForget(svchp: POCISvcCtx; errhp: POCIError;
774 function DescribeAny(svchp: POCISvcCtx; errhp: POCIError;
775 objptr: Pointer; objnm_len: ub4; objptr_typ: ub1; info_level: ub1;
776 objtyp: ub1; dschp: POCIDescribe): sword;
777 function Break(svchp: POCISvcCtx; errhp:POCIError): sword;
778 function Reset(svchp: POCISvcCtx; errhp:POCIError): sword;
779 function DescriptorAlloc(parenth: POCIEnv; var descpp: POCIDescriptor;
780 htype: ub4; xtramem_sz: integer; usrmempp: Pointer): sword;
781 function DescriptorFree(descp: Pointer; htype: ub4): sword;
783 function DateTimeAssign(hndl: POCIEnv; err: POCIError;
784 const from: POCIDateTime;_to: POCIDateTime): sword;
785 function DateTimeCheck(hndl: POCIEnv; err: POCIError;
786 const date: POCIDateTime; var valid: ub4): sword;
787 function DateTimeCompare(hndl: POCIEnv; err: POCIError;
788 const date1: POCIDateTime; const date2: POCIDateTime;
789 var _result: sword): sword;
790 function DateTimeConvert(hndl: POCIEnv; err: POCIError;
791 indate: POCIDateTime; outdate: POCIDateTime): sword;
792 function DateTimeFromText(hndl: POCIEnv; err: POCIError;
793 const date_str: text; d_str_length: size_t; const fmt: text;
794 fmt_length: ub1; const lang_name: text; lang_length: size_t;
795 date: POCIDateTime): sword;
796 function DateTimeGetDate(hndl: POCIEnv; err: POCIError;
797 const date: POCIDateTime; var year: sb2; var month: ub1;
798 var day: ub1): sword;
799 function DateTimeGetTime(hndl: POCIEnv; err: POCIError;
800 datetime: POCIDateTime; var hour: ub1; var minute: ub1; var sec: ub1;
801 var fsec: ub4): sword;
802 function DateTimeGetTimeZoneOffset(hndl: POCIEnv; err: POCIError;
803 const datetime: POCIDateTime; var hour: sb1; var minute: sb1): sword;
804 function DateTimeSysTimeStamp(hndl: POCIEnv; err: POCIError;
805 sys_date: POCIDateTime): sword;
806 function DateTimeConstruct(hndl: POCIEnv; err: POCIError;
807 datetime: POCIDateTime; year: sb2; month: ub1; day: ub1; hour: ub1;
808 min: ub1; sec: ub1; fsec: ub4; timezone: text;
809 timezone_length: size_t): sword;
810 function DateTimeToText(hndl: POCIEnv; err: POCIError;
811 const date: POCIDateTime; const fmt: text; fmt_length: ub1;
812 fsprec: ub1; const lang_name: text; lang_length: size_t;
813 var buf_size: ub4; buf: text): sword;
814 function DateTimeGetTimeZoneName(hndl: POCIEnv; err: POCIError;
815 datetime: POCIDateTime; var buf: ub1; var buflen: ub4): sword;
817 function LobAppend(svchp: POCISvcCtx; errhp: POCIError; dst_locp,
818 src_locp: POCILobLocator): sword;
819 function LobAssign(svchp: POCISvcCtx; errhp: POCIError;
820 src_locp: POCILobLocator; var dst_locpp: POCILobLocator): sword;
821 function LobClose(svchp: POCISvcCtx; errhp: POCIError;
822 locp: POCILobLocator): sword;
823 function LobCopy(svchp: POCISvcCtx; errhp: POCIError;
824 dst_locp: POCILobLocator; src_locp: POCILobLocator; amount: ub4;
825 dst_offset: ub4; src_offset: ub4): sword;
826 function LobEnableBuffering(svchp: POCISvcCtx; errhp: POCIError;
827 locp: POCILobLocator): sword;
828 function LobDisableBuffering(svchp: POCISvcCtx; errhp: POCIError;
829 locp: POCILobLocator): sword;
830 function LobErase(svchp: POCISvcCtx; errhp: POCIError; locp: POCILobLocator;
831 var amount: ub4; offset: ub4): sword;
832 function LobFileExists(svchp: POCISvcCtx; errhp: POCIError;
833 filep: POCILobLocator; var flag: Boolean): sword;
834 function LobFileGetName(envhp: POCIEnv; errhp: POCIError;
835 filep: POCILobLocator; dir_alias: text; var d_length: ub2; filename: text;
836 var f_length: ub2): sword;
837 function LobFileSetName(envhp: POCIEnv; errhp: POCIError;
838 var filep: POCILobLocator; dir_alias: text; d_length: ub2; filename: text;
839 f_length: ub2): sword;
840 function LobFlushBuffer(svchp: POCISvcCtx; errhp: POCIError;
841 locp: POCILobLocator; flag: ub4): sword;
842 function LobGetLength(svchp: POCISvcCtx; errhp: POCIError;
843 locp: POCILobLocator; var lenp: ub4): sword;
844 function LobIsOpen(svchp: POCISvcCtx; errhp: POCIError;
845 locp: POCILobLocator; var flag: LongBool): sword;
846 function LobLoadFromFile(svchp: POCISvcCtx; errhp: POCIError;
847 dst_locp: POCILobLocator; src_locp: POCILobLocator; amount: ub4;
848 dst_offset: ub4; src_offset: ub4): sword;
849 function LobLocatorIsInit(envhp: POCIEnv; errhp: POCIError;
850 locp: POCILobLocator; var is_initialized: LongBool): sword;
851 function LobOpen(svchp: POCISvcCtx; errhp: POCIError;
852 locp: POCILobLocator; mode: ub1): sword;
853 function LobRead(svchp: POCISvcCtx; errhp: POCIError;
854 locp: POCILobLocator; var amtp: ub4; offset: ub4; bufp: Pointer; bufl: ub4;
855 ctxp: Pointer; cbfp: Pointer; csid: ub2; csfrm: ub1): sword;
856 function LobTrim(svchp: POCISvcCtx; errhp: POCIError;
857 locp: POCILobLocator; newlen: ub4): sword;
858 function LobWrite(svchp: POCISvcCtx; errhp: POCIError;
859 locp: POCILobLocator; var amtp: ub4; offset: ub4; bufp: Pointer; bufl: ub4;
860 piece: ub1; ctxp: Pointer; cbfp: Pointer; csid: ub2; csfrm: ub1): sword;
861 function LobCreateTemporary(svchp: POCISvcCtx; errhp: POCIError;
862 locp: POCILobLocator; csid: ub2; csfrm: ub1; lobtype: ub1;
863 cache: LongBool; duration: OCIDuration): sword;
864 function LobIsTemporary(svchp: POCISvcCtx; errhp: POCIError;
865 locp: POCILobLocator; var is_temporary: LongBool): sword;
866 function LobFreeTemporary(svchp: POCISvcCtx; errhp: POCIError;
867 locp: POCILobLocator): sword;
868 function LobCharSetForm ( envhp: POCIEnv; errhp: POCIError;
869 const locp: POCILobLocator; csfrm: pub1): sword;
870 function LobCharSetId ( envhp: POCIEnv; errhp: POCIError;
871 const locp: POCILobLocator; csid: pub2): sword;
873 function StmtGetPieceInfo(stmtp: POCIStmt; errhp: POCIError;
874 var hndlpp: Pointer; var typep: ub4; var in_outp: ub1; var iterp: ub4;
875 var idxp: ub4; var piecep: ub1): sword;
876 function StmtSetPieceInfo(handle: Pointer; typep: ub4; errhp: POCIError;
877 buf: Pointer; var alenp: ub4; piece: ub1; indp: Pointer;
878 var rcodep: ub2): sword;
879 function PasswordChange(svchp: POCISvcCtx; errhp: POCIError;
880 user_name: text; usernm_len: ub4; opasswd: text; opasswd_len: ub4;
881 npasswd: text; npasswd_len: sb4; mode: ub4): sword;
882 function ServerVersion(hndlp: POCIHandle; errhp: POCIError; bufp: text;
883 bufsz: ub4; hndltype: ub1): sword;
884 function ServerRelease(hndlp: POCIHandle;
885 errhp: POCIError; bufp: text; bufsz: ub4; hndltype: ub1; version:pointer): sword;
886 function ResultSetToStmt(rsetdp: POCIHandle; errhp: POCIError): sword;
887 function GetEnvCharsetByteWidth(hndl: POCIEnv; err: POCIError;
889 procedure ClientVersion(major_version, minor_version, update_num,
890 patch_num, port_update_num: psword);
892 function NumberInc(err: POCIError; number: POCINumber): sword;
893 function NumberDec(err: POCIError; number: POCINumber): sword;
894 procedure NumberSetZero(err: POCIError; number: POCINumber);
895 procedure NumberSetPi(err: POCIError; number: POCINumber);
896 function NumberAdd(err: POCIError; const number1: POCINumber;
897 const number2: POCINumber; _result: POCINumber): sword;
898 function NumberSub(err: POCIError; const number1: POCINumber;
899 const number2: POCINumber; _result: POCINumber): sword;
900 function NumberMul(err: POCIError; const number1: POCINumber;
901 const number2: POCINumber; _result: POCINumber): sword;
902 function NumberDiv(err: POCIError; const number1: POCINumber;
903 const number2: POCINumber; _result: POCINumber): sword;
904 function NumberMod(err: POCIError; const number1: POCINumber;
905 const number2: POCINumber; _result: POCINumber): sword;
906 function NumberIntPower(err: POCIError; const number1: POCINumber;
907 const number2: POCINumber; _result: POCINumber): sword;
908 function NumberShift(err: POCIError; const number: POCINumber;
909 const nDig: sword; _result: POCINumber): sword;
910 function NumberNeg(err: POCIError; const number: POCINumber;
911 _result: POCINumber): sword;
912 function NumberToText(err: POCIError; const number: POCINumber;
913 const fmt: Poratext; fmt_length: ub4; const nls_params: Poratext;
914 nls_p_length: ub4; buf_size: pub4; buf: poratext): sword;
915 function NumberFromText(err: POCIError; const str: poratext;
916 str_length: ub4; const fmt: poratext; fmt_length: ub4;
917 const nls_params: poratext; nls_p_length: ub4; number: POCINumber): sword;
918 function NumberToInt(err: POCIError; const number: POCINumber;
919 rsl_length: uword; rsl_flag: uword; rsl: Pointer): sword;
920 function NumberFromInt(err: POCIError; const inum: Pointer;
921 inum_length: uword; inum_s_flag: uword; number: POCINumber): sword;
922 function NumberToReal(err: POCIError; const number: POCINumber;
923 rsl_length: uword; rsl: Pointer): sword;
924 function NumberToRealArray(err: POCIError; const number: PPOCINumber;
925 elems: uword; rsl_length: uword; rsl: Pointer): sword;
926 function NumberFromReal(err: POCIError; const rnum: Pointer;
927 rnum_length: uword; number: POCINumber): sword;
928 function NumberCmp(err: POCIError; const number1: POCINumber;
929 const number2: POCINumber; _result: psword): sword;
930 function NumberSign(err: POCIError; const number: POCINumber;
931 _result: psword): sword;
932 function NumberIsZero(err: POCIError; const number: POCINumber;
933 _Result: pboolean): sword;
934 function NumberIsInt(err: POCIError; const number: POCINumber;
935 _result: Pboolean): sword;
936 function NumberAssign(err: POCIError; const from: POCINumber;
937 _to: POCINumber): sword;
938 function NumberAbs(err: POCIError; const number: POCINumber;
939 _result: POCINumber): sword;
940 function NumberCeil(err: POCIError; const number: POCINumber;
941 _result: POCINumber): sword;
942 function NumberFloor(err: POCIError; const number: POCINumber;
943 _result: POCINumber): sword;
944 function NumberSqrt(err: POCIError; const number: POCINumber;
945 _result: POCINumber): sword;
946 function NumberTrunc(err: POCIError; const number: POCINumber;
947 _result: POCINumber): sword;
948 function NumberPower(err: POCIError; const base: POCINumber;
949 const number: POCINumber; _result: POCINumber): sword;
950 function NumberRound(err: POCIError; const number: POCINumber;
951 decplace: sword; _result: POCINumber): sword;
952 function NumberPrec(err: POCIError; const number: POCINumber;
953 nDigs: sword; _result: POCINumber): sword;
954 function NumberSin(err: POCIError; const number: POCINumber;
955 _result: POCINumber): sword;
956 function NumberArcSin(err: POCIError; const number: POCINumber;
957 _result: POCINumber): sword;
958 function NumberHypSin(err: POCIError; const number: POCINumber;
959 _result: POCINumber): sword;
960 function NumberCos(err: POCIError; const number: POCINumber;
961 _result: POCINumber): sword;
962 function NumberArcCos(err: POCIError; const number: POCINumber;
963 _result: POCINumber): sword;
964 function NumberHypCos(err: POCIError; const number: POCINumber;
965 _result: POCINumber): sword;
966 function NumberTan(err: POCIError; const number: POCINumber;
967 _result: POCINumber): sword;
968 function NumberArcTan(err: POCIError; const number: POCINumber;
969 _result: POCINumber): sword;
970 function NumberArcTan2(err: POCIError; const number1: POCINumber;
971 const number2: POCINumber; _result: POCINumber): sword;
972 function NumberHypTan(err: POCIError; const number: POCINumber;
973 _result: POCINumber): sword;
974 function NumberExp(err: POCIError; const number: POCINumber;
975 _result: POCINumber): sword;
976 function NumberLn(err: POCIError; const number: POCINumber;
977 _result: POCINumber): sword;
978 function NumberLog(err: POCIError; const base: POCINumber;
979 const number: POCINumber; _result: POCINumber): sword;
981 function TableSize(hndl: POCIEnv; err: POCIError; const tbl: POCITable;
983 function TableExists(hndl: POCIEnv; err: POCIError; const tbl: POCITable;
984 index: sb4; exists: PBoolean): sword;
985 function TableDelete(hndl: POCIEnv; err: POCIError; index: sb4;
986 tbl: POCITable): sword;
987 function TableFirst(hndl: POCIEnv; err: POCIError; const tbl: POCITable;
989 function TableLast(hndl: POCIEnv; err: POCIError; const tbl: POCITable;
991 function TableNext(hndl: POCIEnv; err: POCIError; index: sb4;
992 const tbl: POCITable; next_index: psb4; exists: PBoolean): sword;
993 function TablePrev(hndl: POCIEnv; err: POCIError; index: sb4;
994 const tbl: POCITable; prev_index: psb4; exists: PBoolean): sword;
996 function ObjectSetAttr(env: POCIEnv; err: POCIError; instance: Pointer;
997 null_struct: pointer; tdo: POCIType; const names: PPAnsiChar;
998 const lengths: pub4; const name_count: ub4;
999 const indexes: pub4; const index_count: ub4;
1000 const null_status: POCIInd; const attr_null_struct: Pointer;
1001 const attr_value: Pointer): sword; cdecl;
1002 function ObjectGetAttr(env: POCIEnv; err: POCIError; instance: Pointer;
1003 null_struct: Pointer; tdo: POCIType;
1004 const names: PPoratext; const lengths: pub4;
1005 const name_count: ub4; const indexes: pub4;
1006 const index_count: ub4; attr_null_status: POCIInd;
1007 attr_null_struct, attr_value: PPointer;
1008 attr_tdo: PPOCIType): sword;
1010 function Ping(svchp: POCISvcCtx; errhp: POCIError; mode: ub4 = OCI_DEFAULT): sword;
1012 function TypeIterNew(env: POCIEnv; err: POCIError; const tdo: POCIType;
1013 iterator_ort: PPOCITypeIter):sword;
1014 function TypeIterSet(env: POCIEnv; err: POCIError; const tdo: POCIType;
1015 iterator_ort: POCITypeIter): sword;
1016 function TypeIterFree(env: POCIEnv; err: POCIError;
1017 iterator_ort: POCITypeIter): sword;
1018 function TypeByName(env: POCIEnv; err: POCIError; const svc: POCISvcCtx;
1019 schema_name: Poratext; const s_length: ub4; const type_name: Poratext;
1020 const t_length: ub4; version_name: Poratext; const v_length: ub4;
1021 const pin_duration: OCIDuration; const get_option: OCITypeGetOpt;
1022 tdo: PPOCIType): sword;
1023 function TypeArrayByName(env: POCIEnv; err: POCIError; svc: POCISvcCtx;
1024 array_len: ub4; schema_name: PPoratext; s_length: Pub4;
1025 type_name: PPoratext; t_length: Pub4; version_name: PPoratext;
1026 v_length: Pub4; pin_duration: OCIDuration; get_option: OCITypeGetOpt;
1027 tdo: PPOCIType): sword;
1028 function TypeByRef(env: POCIEnv; err: POCIError; type_ref: POCIRef;
1029 pin_duration: OCIDuration; get_option: OCITypeGetOpt;
1030 tdo: PPOCIType): sword;
1031 function TypeArrayByRef(env: POCIEnv; err: POCIError; array_len: ub4;
1032 type_ref: PPOCIRef; pin_duration: OCIDuration; get_option: OCITypeGetOpt;
1033 tdo: PPOCIType): sword;
1034 function TypeName(env: POCIEnv; err: POCIError; tdo: POCIType;
1035 n_length: Pub4): poratext;
1036 function TypeSchema(env: POCIEnv; err: POCIError; const tdo: POCIType;
1037 n_length: Pub4): poratext;
1038 function TypeTypeCode(env: POCIEnv; err: POCIError;
1039 const tdo: POCIType): OCITypeCode;
1040 function TypeCollTypeCode(env:POCIEnv; err:POCIError;
1041 const tdo: POCIType): OCITypeCode;
1042 function TypeVersion(env: POCIEnv; err: POCIError; const tdo: POCIType;
1043 v_length: Pub4): poratext;
1044 function TypeAttrs(env: POCIEnv; err: POCIError;
1045 const tdo:POCIType): ub4;
1046 function TypeMethods(env: POCIEnv; err: POCIError;
1047 const tdo: POCIType): ub4;
1048 function TypeElemName(env: POCIEnv; err: POCIError;
1049 const elem: POCITypeElem; n_length:Pub4): poratext;
1050 function TypeElemTypeCode(env: POCIEnv; err: POCIError;
1051 const elem: POCITypeElem): OCITypeCode;
1052 function TypeElemType(env: POCIEnv; err: POCIError;
1053 const elem: POCITypeElem; elem_tdo:PPOCIType): sword;
1054 function TypeElemFlags(env: POCIEnv; err: POCIError;
1055 const elem: POCITypeElem): ub4;
1056 function TypeElemNumPrec(env: POCIEnv; err: POCIError;
1057 const elem: POCITypeElem): ub1;
1058 function TypeElemNumScale(env: POCIEnv; err: POCIError;
1059 const elem: POCITypeElem): sb1;
1060 function TypeElemLength(env: POCIEnv; err: POCIError;
1061 const elem:POCITypeElem): ub4;
1062 function TypeElemCharSetID(env: POCIEnv; err: POCIError;
1063 const elem: POCITypeElem): ub2;
1064 function TypeElemCharSetForm(env: POCIEnv; err: POCIError;
1065 const elem: POCITypeElem): ub2;
1066 function TypeElemParameterizedType(env: POCIEnv; err: POCIError;
1067 const elem: POCITypeElem; type_stored: PPOCIType): sword;
1068 function TypeElemExtTypeCode(env: POCIEnv; err: POCIError;
1069 const elem: POCITypeElem): OCITypeCode;
1070 function TypeAttrByName(env: POCIEnv; err: POCIError;
1071 const tdo: POCIType; const name: Poratext; const n_length: ub4;
1072 elem: PPOCITypeElem): sword;
1073 function TypeAttrNext(env: POCIEnv; err: POCIError;
1074 iterator_ort: POCITypeIter; elem: PPOCITypeElem): sword;
1075 function TypeCollElem(env: POCIEnv; err: POCIError; const tdo:POCIType;
1076 element: PPOCITypeElem): sword;
1077 function TypeCollSize(env: POCIEnv; err: POCIError; const tdo: POCIType;
1078 num_elems: Pub4): sword;
1079 function TypeCollExtTypeCode(env: POCIEnv; err: POCIError;
1080 const tdo:POCIType; sqt_code: POCITypeCode): sword;
1081 function TypeMethodOverload(env: POCIEnv; err: POCIError;
1082 const tdo: POCIType; const method_name: Poratext;
1083 const m_length: ub4): ub4;
1084 function TypeMethodByName(env: POCIEnv; err: POCIError;
1085 const tdo: POCIType; const method_name: Poratext; const m_length: ub4;
1086 mdos: PPOCITypeMethod): sword;
1087 function TypeMethodNext(env: POCIEnv; err: POCIError;
1088 iterator_ort: POCITypeIter; mdo: PPOCITypeMethod): sword;
1089 function TypeMethodName(env:POCIEnv; err: POCIError;
1090 const mdo: POCITypeMethod; n_length: Pub4): poratext;
1091 function TypeMethodEncap(env: POCIEnv; err: POCIError;
1092 const mdo: POCITypeMethod): OCITypeEncap;
1093 function TypeMethodFlags(env: POCIEnv; err: POCIError;
1094 const mdo:POCITypeMethod): OCITypeMethodFlag;
1095 function TypeMethodMap(env: POCIEnv; err: POCIError; const tdo: POCIType;
1096 mdo: PPOCITypeMethod): sword;
1097 function TypeMethodOrder(env: POCIEnv; err: POCIError;
1098 const tdo: POCIType; mdo: PPOCITypeMethod): sword;
1099 function TypeMethodParams(env: POCIEnv; err: POCIError;
1100 const mdo: POCITypeMethod): ub4;
1101 function TypeResult(env: POCIEnv; err: POCIError;
1102 const mdo: POCITypeMethod; elem: PPOCITypeElem): sword;
1103 function TypeParamByPos(env: POCIEnv; err: POCIError;
1104 const mdo: POCITypeMethod; const position: ub4;
1105 elem: PPOCITypeElem): sword;
1106 function TypeParamByName(env: POCIEnv; err: POCIError;
1107 const mdo: POCITypeMethod; const name: Poratext; const n_length: ub4;
1108 elem:PPOCITypeElem): sword;
1109 function TypeParamPos(env: POCIEnv; err: POCIError;
1110 const mdo: POCITypeMethod; const name: Poratext; const n_length: ub4;
1111 position: Pub4; elem: PPOCITypeElem): sword;
1112 function TypeElemParamMode(env: POCIEnv; err: POCIError;
1113 const elem: POCITypeElem): OCITypeParamMode;
1114 function TypeElemDefaultValue(env: POCIEnv; err: POCIError;
1115 const elem: POCITypeElem; d_v_length: Pub4): poratext;
1116 function TypeVTInit(env: POCIEnv; err: POCIError): sword;
1117 function TypeVTInsert(env: POCIEnv; err: POCIError;
1118 const schema_name: Poratext; const s_n_length: ub4;
1119 const type_name: Poratext; const t_n_length: ub4;
1120 const user_version:Poratext; const u_v_length:ub4): sword;
1121 function TypeVTSelect(env: POCIEnv; err: POCIError;
1122 const schema_name: Poratext; const s_n_length: ub4;
1123 const type_name: Poratext; const t_n_length: ub4; user_version: PPoratext;
1124 u_v_length: Pub4; version: Pub2): sword;
1131 { TZOracle9iPlainDriver }
1133 function TZOracle9iPlainDriver.GetUnicodeCodePageName: String;
1138 procedure TZOracle9iPlainDriver.LoadCodePages;
1140 (* AddCodePage('AL16UTF16', 2000, ceUTF16, zCP_UTF16); {Unicode 3.1 UTF-16 Universal character set}
1141 AddCodePage('AL32UTF8', 873, ceUTF8, zCP_UTF8); {Unicode 3.1 UTF-8 Universal character set}
1142 //AddCodePage('AR8ADOS710', 3); {Arabic MS-DOS 710 Server 8-bit Latin/Arabic}
1143 // AddCodePage('AR8ADOS710T', 4); {Arabic MS-DOS 710 8-bit Latin/Arabic}
1144 AddCodePage('AR8ADOS720', 558); {Arabic MS-DOS 720 Server 8-bit Latin/Arabic}
1145 // AddCodePage('AR8ADOS720T', 6); {Arabic MS-DOS 720 8-bit Latin/Arabic}
1146 // AddCodePage('AR8APTEC715', 7); {APTEC 715 Server 8-bit Latin/Arabic}
1147 // AddCodePage('AR8APTEC715T', 8); {APTEC 715 8-bit Latin/Arabic}
1148 // AddCodePage('AR8ASMO708PLUS', 9); {ASMO 708 Plus 8-bit Latin/Arabic}
1149 AddCodePage('AR8ASMO8X', 500); {ASMO Extended 708 8-bit Latin/Arabic}
1150 // AddCodePage('BN8BSCII', 11); {Bangladesh National Code 8-bit BSCII}
1151 // AddCodePage('TR7DEC', 12); {DEC VT100 7-bit Turkish}
1152 // AddCodePage('TR8DEC', 13); {DEC 8-bit Turkish}
1153 // AddCodePage('EL8DEC', 14); {DEC 8-bit Latin/Greek}
1154 // AddCodePage('EL8GCOS7', 15); {Bull EBCDIC GCOS7 8-bit Greek}
1155 // AddCodePage('IN8ISCII', 16); {Multiple-Script Indian Standard 8-bit Latin/Indian Languages}
1156 // AddCodePage('JA16DBCS', 17); {IBM EBCDIC 16-bit Japanese UDC}
1157 // AddCodePage('JA16EBCDIC930', 18); {IBM DBCS Code Page 290 16-bit Japanese UDC}
1158 AddCodePage('JA16EUC', 830); {EUC 24-bit Japanese}
1159 AddCodePage('JA16EUCTILDE', 837); {The same as JA16EUC except for the way that the wave dash and the tilde are mapped to and from Unicode.}
1160 // AddCodePage('JA16EUCYEN', 21); {EUC 24-bit Japanese with '\' mapped to the Japanese yen character}
1161 // AddCodePage('JA16MACSJIS', 22); {Mac client Shift-JIS 16-bit Japanese}
1162 AddCodePage('JA16SJIS', 832); {Shift-JIS 16-bit Japanese UDC}
1163 AddCodePage('JA16SJISTILDE', 838); {The same as JA16SJIS except for the way that the wave dash and the tilde are mapped to and from Unicode. UDC}
1164 // AddCodePage('JA16SJISYEN', 25); {Shift-JIS 16-bit Japanese with '\' mapped to the Japanese yen character UDC}
1165 // AddCodePage('JA16VMS', 26); {JVMS 16-bit Japanese}
1166 // AddCodePage('RU8BESTA', 27); {BESTA 8-bit Latin/Cyrillic}
1167 // AddCodePage('SF7ASCII', 28); {ASCII 7-bit Finnish}
1168 // AddCodePage('KO16DBCS', 29); {IBM EBCDIC 16-bit Korean UDC}
1169 // AddCodePage('KO16KSCCS', 30); {KSCCS 16-bit Korean}
1170 AddCodePage('KO16KSC5601', 840); {KSC5601 16-bit Korean}
1171 AddCodePage('KO16MSWIN949', 846); {MS Windows Code Page 949 Korean UDC}
1172 // AddCodePage('TH8MACTHAI', 33); {Mac Client 8-bit Latin/Thai}
1173 // AddCodePage('TH8MACTHAIS', 34); {Mac Server 8-bit Latin/Thai}
1174 AddCodePage('TH8TISASCII', 41); {Thai Industrial Standard 620-2533 - ASCII 8-bit}
1175 // AddCodePage('TH8TISEBCDIC', 36); {Thai Industrial Standard 620-2533 - EBCDIC 8-bit}
1176 // AddCodePage('TH8TISEBCDICS', 37); {Thai Industrial Standard 620-2533-EBCDIC Server 8-bit}
1177 AddCodePage('US7ASCII', 1); {U.S. 7-bit ASCII American}
1178 AddCodePage('VN8MSWIN1258', 45); {MS Windows Code Page 1258 8-bit Vietnamese}
1179 // AddCodePage('VN8VN3', 38); {VN3 8-bit Vietnamese}
1180 // AddCodePage('WE8GCOS7', 41); {Bull EBCDIC GCOS7 8-bit West European}
1181 // AddCodePage('YUG7ASCII', 42); {ASCII 7-bit Yugoslavian}
1182 AddCodePage('ZHS16CGB231280', 850); {CGB2312-80 16-bit Simplified Chinese}
1183 // AddCodePage('ZHS16DBCS', 44); {IBM EBCDIC 16-bit Simplified Chinese UDC}
1184 AddCodePage('ZHS16GBK', 852); {GBK 16-bit Simplified Chinese UDC}
1185 // AddCodePage('ZHS16MACCGB231280', 46); {Mac client CGB2312-80 16-bit Simplified Chinese}
1186 AddCodePage('ZHS32GB18030', 854); {GB18030-2000}
1187 AddCodePage('ZHT16BIG5', 856); {BIG5 16-bit Traditional Chinese}
1188 // AddCodePage('ZHT16CCDC', 49); {HP CCDC 16-bit Traditional Chinese}
1189 // AddCodePage('ZHT16DBCS', 50); {IBM EBCDIC 16-bit Traditional Chinese UDC}
1190 // AddCodePage('ZHT16DBT', 51); {Taiwan Taxation 16-bit Traditional Chinese}
1191 AddCodePage('ZHT16HKSCS', 868); {MS Windows Code Page 950 with Hong Kong Supplementary Character Set}
1192 AddCodePage('ZHT16MSWIN950', 867); {MS Windows Code Page 950 Traditional Chinese UDC}
1193 AddCodePage('ZHT32EUC', 860); {EUC 32-bit Traditional Chinese}
1194 // AddCodePage('ZHT32SOPS', 55); {SOPS 32-bit Traditional Chinese}
1195 // AddCodePage('ZHT32TRIS', 56); {TRIS 32-bit Traditional Chinese}
1197 // AddCodePage('WE8DEC', 57); {DEC 8-bit West European}
1198 // AddCodePage('D7DEC', 58); {DEC VT100 7-bit German}
1199 // AddCodePage('F7DEC', 59); {DEC VT100 7-bit French}
1200 // AddCodePage('S7DEC', 60); {DEC VT100 7-bit Swedish}
1201 // AddCodePage('E7DEC', 61); {DEC VT100 7-bit Spanish}
1202 // AddCodePage('NDK7DEC', 62); {DEC VT100 7-bit Norwegian/Danish}
1203 // AddCodePage('I7DEC', 63); {DEC VT100 7-bit Italian}
1204 // AddCodePage('NL7DEC', 64); {DEC VT100 7-bit Dutch}
1205 // AddCodePage('CH7DEC', 65); {DEC VT100 7-bit Swiss (German/French)}
1206 // AddCodePage('SF7DEC', 66); {DEC VT100 7-bit Finnish}
1207 // AddCodePage('WE8DG', 67); {DG 8-bit West European}
1208 // AddCodePage('WE8EBCDIC37', 68, ceAnsi, zCP_EBC037); {EBCDIC Code Page 37 8-bit West European}
1209 // AddCodePage('D8EBCDIC273', 69, ceAnsi, zCP_EBC273); {EBCDIC Code Page 273/1 8-bit Austrian German}
1210 // AddCodePage('DK8EBCDIC277', 70, ceAnsi, zCP_EBC277); {EBCDIC Code Page 277/1 8-bit Danish}
1211 // AddCodePage('S8EBCDIC278', 71, ceAnsi, zCP_EBC278); {EBCDIC Code Page 278/1 8-bit Swedish}
1212 // AddCodePage('I8EBCDIC280', 72, ceAnsi, zCP_EBC280); {EBCDIC Code Page 280/1 8-bit Italian}
1213 // AddCodePage('WE8EBCDIC284', 73, ceAnsi, zCP_EBC284); {EBCDIC Code Page 284 8-bit Latin American/Spanish}
1214 // AddCodePage('WE8EBCDIC285', 74); {EBCDIC Code Page 285 8-bit West European}
1215 // AddCodePage('WE8EBCDIC924', 75); {Latin 9 EBCDIC 924}
1216 // AddCodePage('WE8EBCDIC1047', 76); {EBCDIC Code Page 1047 8-bit West European}
1217 // AddCodePage('WE8EBCDIC1047E', 77); {Latin 1/Open Systems 1047}
1218 // AddCodePage('WE8EBCDIC1140', 78); {EBCDIC Code Page 1140 8-bit West European}
1219 // AddCodePage('WE8EBCDIC1140C', 79); {EBCDIC Code Page 1140 Client 8-bit West European}
1220 // AddCodePage('WE8EBCDIC1145', 80); {EBCDIC Code Page 1145 8-bit West European}
1221 // AddCodePage('WE8EBCDIC1146', 81); {EBCDIC Code Page 1146 8-bit West European}
1222 // AddCodePage('WE8EBCDIC1148', 82); {EBCDIC Code Page 1148 8-bit West European}
1223 // AddCodePage('WE8EBCDIC1148C', 83); {EBCDIC Code Page 1148 Client 8-bit West European}
1224 // AddCodePage('F8EBCDIC297', 84); {EBCDIC Code Page 297 8-bit French}
1225 // AddCodePage('WE8EBCDIC500', 85); {EBCDIC Code Page 500 8-bit West European}
1226 // AddCodePage('EE8EBCDIC870', 85); {EBCDIC Code Page 870 8-bit East European}
1227 // AddCodePage('EE8EBCDIC870C', 87); {EBCDIC Code Page 870 Client 8-bit East European}
1228 // AddCodePage('EE8EBCDIC870S', 88); {EBCDIC Code Page 870 Server 8-bit East European}
1229 // AddCodePage('WE8EBCDIC871', 89); {EBCDIC Code Page 871 8-bit Icelandic}
1230 AddCodePage('EL8EBCDIC875', 90); {EBCDIC Code Page 875 8-bit Greek}
1231 AddCodePage('EL8EBCDIC875R', 91); {EBCDIC Code Page 875 Server 8-bit Greek}
1232 AddCodePage('CL8EBCDIC1025', 92); {EBCDIC Code Page 1025 8-bit Cyrillic}
1233 AddCodePage('CL8EBCDIC1025C', 93); {EBCDIC Code Page 1025 Client 8-bit Cyrillic}
1234 AddCodePage('CL8EBCDIC1025R', 94); {EBCDIC Code Page 1025 Server 8-bit Cyrillic}
1235 AddCodePage('CL8EBCDIC1025S', 95); {EBCDIC Code Page 1025 Server 8-bit Cyrillic}
1236 AddCodePage('CL8EBCDIC1025X', 96); {EBCDIC Code Page 1025 (Modified) 8-bit Cyrillic}
1237 AddCodePage('BLT8EBCDIC1112', 97); {EBCDIC Code Page 1112 8-bit Baltic Multilingual}
1238 AddCodePage('BLT8EBCDIC1112S', 98); {EBCDIC Code Page 1112 8-bit Server Baltic Multilingual}
1239 AddCodePage('D8EBCDIC1141', 99); {EBCDIC Code Page 1141 8-bit Austrian German}
1240 AddCodePage('DK8EBCDIC1142', 100); {EBCDIC Code Page 1142 8-bit Danish}
1241 AddCodePage('S8EBCDIC1143', 101); {EBCDIC Code Page 1143 8-bit Swedish}
1242 AddCodePage('I8EBCDIC1144', 102); {EBCDIC Code Page 1144 8-bit Italian}
1243 AddCodePage('F8EBCDIC1147', 103); {EBCDIC Code Page 1147 8-bit French}
1244 AddCodePage('EEC8EUROASCI', 104); {EEC Targon 35 ASCI West European/Greek}
1245 AddCodePage('EEC8EUROPA3', 105); {EEC EUROPA3 8-bit West European/Greek}
1246 AddCodePage('LA8PASSPORT', 106); {German Government Printer 8-bit All-European Latin}
1247 AddCodePage('WE8HP', 107); {HP LaserJet 8-bit West European}
1248 AddCodePage('WE8ROMAN8', 108); {HP Roman8 8-bit West European}
1249 AddCodePage('HU8CWI2', 109); {Hungarian 8-bit CWI-2}
1250 AddCodePage('HU8ABMOD', 110); {Hungarian 8-bit Special AB Mod}
1251 AddCodePage('LV8RST104090', 111); {IBM-PC Alternative Code Page 8-bit Latvian (Latin/Cyrillic)}
1252 AddCodePage('US8PC437', 112); {IBM-PC Code Page 437 8-bit American}
1253 AddCodePage('BG8PC437S', 113); {IBM-PC Code Page 437 8-bit (Bulgarian Modification)}
1254 AddCodePage('EL8PC437S', 114); {IBM-PC Code Page 437 8-bit (Greek modification)}
1255 AddCodePage('EL8PC737', 115); {IBM-PC Code Page 737 8-bit Greek/Latin}
1256 AddCodePage('LT8PC772', 116); {IBM-PC Code Page 772 8-bit Lithuanian (Latin/Cyrillic)}
1257 AddCodePage('LT8PC774', 117); {IBM-PC Code Page 774 8-bit Lithuanian (Latin)}
1258 AddCodePage('BLT8PC775', 118); {IBM-PC Code Page 775 8-bit Baltic}
1259 AddCodePage('WE8PC850', 119); {IBM-PC Code Page 850 8-bit West European}
1260 AddCodePage('EL8PC851', 120); {IBM-PC Code Page 851 8-bit Greek/Latin}
1261 AddCodePage('EE8PC852', 121); {IBM-PC Code Page 852 8-bit East European}
1262 AddCodePage('RU8PC855', 122); {IBM-PC Code Page 855 8-bit Latin/Cyrillic}
1263 AddCodePage('WE8PC858', 123); {IBM-PC Code Page 858 8-bit West European}
1264 AddCodePage('WE8PC860', 124); {IBM-PC Code Page 860 8-bit West European}
1265 AddCodePage('IS8PC861', 125); {IBM-PC Code Page 861 8-bit Icelandic}
1266 AddCodePage('CDN8PC863', 126); {IBM-PC Code Page 863 8-bit Canadian French}
1267 AddCodePage('N8PC865', 127); {IBM-PC Code Page 865 8-bit Norwegian}
1268 AddCodePage('RU8PC866', 128); {IBM-PC Code Page 866 8-bit Latin/Cyrillic}
1269 AddCodePage('EL8PC869', 129); {IBM-PC Code Page 869 8-bit Greek/Latin}
1270 AddCodePage('LV8PC1117', 130); {IBM-PC Code Page 1117 8-bit Latvian}
1271 AddCodePage('US8ICL', 131); {ICL EBCDIC 8-bit American}
1272 AddCodePage('WE8ICL', 132); {ICL EBCDIC 8-bit West European}
1273 AddCodePage('WE8ISOICLUK', 133); {ICL special version ISO8859-1}
1274 AddCodePage('WE8ISO8859P1', 134); {ISO 8859-1 West European}
1275 AddCodePage('EE8ISO8859P2', 135); {ISO 8859-2 East European}
1276 AddCodePage('SE8ISO8859P3', 136); {ISO 8859-3 South European}
1277 AddCodePage('NEE8ISO8859P4', 137); {ISO 8859-4 North and North-East European}
1278 AddCodePage('CL8ISO8859P5', 138); {ISO 8859-5 Latin/Cyrillic}
1279 AddCodePage('EL8ISO8859P7', 139); {ISO 8859-7 Latin/Greek}
1280 AddCodePage('NE8ISO8859P10', 140); {ISO 8859-10 North European}
1281 AddCodePage('BLT8ISO8859P13', 141); {ISO 8859-13 Baltic}
1282 AddCodePage('CEL8ISO8859P14', 142); {ISO 8859-13 Celtic}
1283 AddCodePage('WE8ISO8859P15', 143); {ISO 8859-15 West European}
1284 AddCodePage('AR8ARABICMAC', 144); {Mac Client 8-bit Latin/Arabic}
1285 AddCodePage('EE8MACCE', 145); {Mac Client 8-bit Central European}
1286 AddCodePage('EE8MACCROATIAN', 146); {Mac Client 8-bit Croatian}
1287 AddCodePage('WE8MACROMAN8', 147); {Mac Client 8-bit Extended Roman8 West European}
1288 AddCodePage('EL8MACGREEK', 148); {Mac Client 8-bit Greek}
1289 AddCodePage('IS8MACICELANDIC', 149); {Mac Client 8-bit Icelandic}
1290 AddCodePage('CL8MACCYRILLIC', 150); {Mac Client 8-bit Latin/Cyrillic}
1291 AddCodePage('EE8MACCES', 151); {Mac Server 8-bit Central European}
1292 AddCodePage('EE8MACCROATIANS', 152); {Mac Server 8-bit Croatian}
1293 AddCodePage('WE8MACROMAN8S', 153); {Mac Server 8-bit Extended Roman8 West European}
1294 AddCodePage('CL8MACCYRILLICS', 154); {Mac Server 8-bit Latin/Cyrillic}
1295 AddCodePage('EL8MACGREEKS', 155); {Mac Server 8-bit Greek}
1296 AddCodePage('IS8MACICELANDICS', 156); {Mac Server 8-bit Icelandic}
1297 AddCodePage('BG8MSWIN', 157); {MS Windows 8-bit Bulgarian Cyrillic}
1298 AddCodePage('LT8MSWIN921', 158); {MS Windows Code Page 921 8-bit Lithuanian}
1299 AddCodePage('ET8MSWIN923', 159); {MS Windows Code Page 923 8-bit Estonian}
1300 AddCodePage('EE8MSWIN1250', 160, ceAnsi, zCP_WIN1250); {MS Windows Code Page 1250 8-bit East European}
1301 AddCodePage('CL8MSWIN1251', 161, ceAnsi, zCP_WIN1251); {MS Windows Code Page 1251 8-bit Latin/Cyrillic}
1302 AddCodePage('WE8MSWIN1252', 162, ceAnsi, zCP_WIN1252); {MS Windows Code Page 1252 8-bit West European}
1303 AddCodePage('EL8MSWIN1253', 163, ceAnsi, zCP_WIN1253); {MS Windows Code Page 1253 8-bit Latin/Greek}
1304 AddCodePage('BLT8MSWIN1257', 164, ceAnsi, zCP_WIN1257); {MS Windows Code Page 1257 8-bit Baltic}
1305 AddCodePage('BLT8CP921', 165); {Latvian Standard LVS8-92(1) Windows/Unix 8-bit Baltic}
1306 AddCodePage('LV8PC8LR', 166, ceAnsi, zCP_DOS866); {Latvian Version IBM-PC Code Page 866 8-bit Latin/Cyrillic}
1307 AddCodePage('WE8NCR4970', 167); {NCR 4970 8-bit West European}
1308 AddCodePage('WE8NEXTSTEP', 168); {NeXTSTEP PostScript 8-bit West European}
1309 AddCodePage('CL8ISOIR111', 169); {ISOIR111 Cyrillic}
1310 AddCodePage('CL8KOI8R', 170, ceAnsi, zCP_KOI8R); {RELCOM Internet Standard 8-bit Latin/Cyrillic}
1311 AddCodePage('CL8KOI8U', 171); {KOI8 Ukrainian Cyrillic}
1312 AddCodePage('US8BS2000', 172); {Siemens 9750-62 EBCDIC 8-bit American}
1313 AddCodePage('DK8BS2000', 173); {Siemens 9750-62 EBCDIC 8-bit Danish}
1314 AddCodePage('F8BS2000', 174); {Siemens 9750-62 EBCDIC 8-bit French}
1315 AddCodePage('D8BS2000', 175); {Siemens 9750-62 EBCDIC 8-bit German}
1316 AddCodePage('E8BS2000', 176); {Siemens 9750-62 EBCDIC 8-bit Spanish}
1317 AddCodePage('S8BS2000', 177); {Siemens 9750-62 EBCDIC 8-bit Swedish}
1318 AddCodePage('DK7SIEMENS9780X', 178); {Siemens 97801/97808 7-bit Danish}
1319 AddCodePage('F7SIEMENS9780X', 179); {Siemens 97801/97808 7-bit French}
1320 AddCodePage('D7SIEMENS9780X', 180); {Siemens 97801/97808 7-bit German}
1321 AddCodePage('I7SIEMENS9780X', 181); {Siemens 97801/97808 7-bit Italian}
1322 AddCodePage('N7SIEMENS9780X', 182); {Siemens 97801/97808 7-bit Norwegian}
1323 AddCodePage('E7SIEMENS9780X', 183); {Siemens 97801/97808 7-bit Spanish}
1324 AddCodePage('S7SIEMENS9780X', 184); {Siemens 97801/97808 7-bit Swedish}
1325 AddCodePage('EE8BS2000', 185); {Siemens EBCDIC.DF.04 8-bit East European}
1326 AddCodePage('WE8BS2000', 186); {Siemens EBCDIC.DF.04 8-bit West European}
1327 AddCodePage('WE8BS2000E', 187); {Siemens EBCDIC.DF.04 8-bit West European}
1328 AddCodePage('CL8BS2000', 188); {Siemens EBCDIC.EHC.LC 8-bit Cyrillic}
1329 AddCodePage('WE8EBCDIC37C', 189); {EBCDIC Code Page 37 8-bit Oracle/c}
1330 AddCodePage('IW8EBCDIC424', 190); {EBCDIC Code Page 424 8-bit Latin/Hebrew}
1331 AddCodePage('IW8EBCDIC424S', 191); {EBCDIC Code Page 424 Server 8-bit Latin/Hebrew}
1332 AddCodePage('WE8EBCDIC500C', 192); {EBCDIC Code Page 500 8-bit Oracle/c}
1333 AddCodePage('IW8EBCDIC1086', 193); {EBCDIC Code Page 1086 8-bit Hebrew}
1334 AddCodePage('AR8EBCDIC420S', 194); {EBCDIC Code Page 420 Server 8-bit Latin/Arabic}
1335 AddCodePage('AR8EBCDICX', 195); {EBCDIC XBASIC Server 8-bit Latin/Arabic}
1336 AddCodePage('TR8EBCDIC1026', 196, ceAnsi, zCP_IBM1026); {EBCDIC Code Page 1026 8-bit Turkish}
1337 AddCodePage('TR8EBCDIC1026S', 197); {EBCDIC Code Page 1026 Server 8-bit Turkish}
1338 AddCodePage('AR8HPARABIC8T', 198); {HP 8-bit Latin/Arabic}
1339 AddCodePage('TR8PC857', 199); {IBM-PC Code Page 857 8-bit Turkish}
1340 AddCodePage('IW8PC1507', 200); {IBM-PC Code Page 1507/862 8-bit Latin/Hebrew}
1341 AddCodePage('AR8ISO8859P6', 201); {ISO 8859-6 Latin/Arabic}
1342 AddCodePage('IW8ISO8859P8', 201); {ISO 8859-8 Latin/Hebrew}
1343 AddCodePage('WE8ISO8859P9', 203); {ISO 8859-9 West European & Turkish}
1344 AddCodePage('LA8ISO6937', 204); {ISO 6937 8-bit Coded Character Set for Text Communication}
1345 AddCodePage('IW7IS960', 205); {Israeli Standard 960 7-bit Latin/Hebrew}
1346 AddCodePage('IW8MACHEBREW', 206); {Mac Client 8-bit Hebrew}
1347 AddCodePage('AR8ARABICMACT', 207); {Mac 8-bit Latin/Arabic}
1348 AddCodePage('TR8MACTURKISH', 208); {Mac Client 8-bit Turkish}
1349 AddCodePage('IW8MACHEBREWS', 209); {Mac Server 8-bit Hebrew}
1350 AddCodePage('TR8MACTURKISHS', 210); {Mac Server 8-bit Turkish}
1351 AddCodePage('TR8MSWIN1254', 211); {MS Windows Code Page 1254 8-bit Turkish}
1352 AddCodePage('IW8MSWIN1255', 212); {MS Windows Code Page 1255 8-bit Latin/Hebrew}
1353 AddCodePage('AR8MSWIN1256', 213); {MS Windows Code Page 1256 8-Bit Latin/Arabic}
1354 AddCodePage('IN8ISCII', 214); {Multiple-Script Indian Standard 8-bit Latin/Indian Languages}
1355 AddCodePage('AR8MUSSAD768', 215); {Mussa'd Alarabi/2 768 Server 8-bit Latin/Arabic}
1356 AddCodePage('AR8MUSSAD768T', 216); {Mussa'd Alarabi/2 768 8-bit Latin/Arabic}
1357 AddCodePage('AR8NAFITHA711', 217); {Nafitha Enhanced 711 Server 8-bit Latin/Arabic}
1358 AddCodePage('AR8NAFITHA711T', 218); {Nafitha Enhanced 711 8-bit Latin/Arabic}
1359 AddCodePage('AR8NAFITHA721', 219); {Nafitha International 721 Server 8-bit Latin/Arabic}
1360 AddCodePage('AR8NAFITHA721T', 220); {Nafitha International 721 8-bit Latin/Arabic}
1361 AddCodePage('AR8SAKHR706', 221); {SAKHR 706 Server 8-bit Latin/Arabic}
1362 AddCodePage('AR8SAKHR707', 222); {SAKHR 707 Server 8-bit Latin/Arabic}
1363 AddCodePage('AR8SAKHR707T', 223); {SAKHR 707 8-bit Latin/Arabic}
1364 AddCodePage('AR8XBASIC', 224); {XBASIC 8-bit Latin/Arabic}
1365 AddCodePage('WE8BS2000L5', 225); {Siemens EBCDIC.DF.04.L5 8-bit West European/Turkish})
1366 AddCodePage('UTF8', 871, ceUTF8, zCP_UTF8); {Unicode 3.0 UTF-8 Universal character set, CESU-8 compliant}
1367 AddCodePage('UTFE', 227, ceUTF8, zCP_UTF8); {EBCDIC form of Unicode 3.0 UTF-8 Universal character set}
1370 //All supporteds from XE
1371 AddCodePage('US7ASCII', 1, ceAnsi, zCP_us_ascii);
1372 AddCodePage('US8PC437', 4, ceAnsi, zCP_DOS437);
1373 AddCodePage('WE8PC850', 10, ceAnsi, zCP_DOS850);
1374 AddCodePage('WE8PC858', 28, ceAnsi, zCP_DOS858);
1375 AddCodePage('WE8ISO8859P1', 31, ceAnsi, zCP_L1_ISO_8859_1);
1376 AddCodePage('EE8ISO8859P2', 32, ceAnsi, zCP_L2_ISO_8859_2);
1377 AddCodePage('SE8ISO8859P3', 33, ceAnsi, zCP_L3_ISO_8859_3);
1378 AddCodePage('NEE8ISO8859P4', 34, ceAnsi, zCP_L4_ISO_8859_4);
1379 AddCodePage('CL8ISO8859P5', 35, ceAnsi, zCP_L5_ISO_8859_5);
1380 AddCodePage('AR8ISO8859P6', 36, ceAnsi, zCP_L6_ISO_8859_6);
1381 AddCodePage('EL8ISO8859P7', 37, ceAnsi, zCP_L7_ISO_8859_7);
1382 AddCodePage('IW8ISO8859P8', 38, ceAnsi, zCP_L8_ISO_8859_8);
1383 AddCodePage('WE8ISO8859P9', 39, ceAnsi, zCP_L5_ISO_8859_9);
1384 AddCodePage('NE8ISO8859P10', 40, ceAnsi, zCP_L6_ISO_8859_10);
1385 AddCodePage('TH8TISASCII', 41, ceAnsi);
1386 AddCodePage('VN8MSWIN1258', 45, ceAnsi, zCP_WIN1258);
1387 AddCodePage('WE8ISO8859P15', 46, ceAnsi, zCP_L9_ISO_8859_15);
1388 AddCodePage('BLT8ISO8859P13', 47, ceAnsi, zCP_L7_ISO_8859_13);
1389 AddCodePage('CEL8ISO8859P14', 48, ceAnsi, zCP_L8_ISO_8859_14);
1390 AddCodePage('CL8KOI8U', 51, ceAnsi, zCP_KOI8U);
1391 AddCodePage('AZ8ISO8859P9E', 52, ceAnsi);
1392 AddCodePage('EE8PC852', 150, ceAnsi, zCP_DOS852);
1393 AddCodePage('RU8PC866', 152, ceAnsi, zCP_DOS856);
1394 AddCodePage('TR8PC857', 156, ceAnsi, zCP_DOS857);
1395 AddCodePage('EE8MSWIN1250', 170, ceAnsi, zCP_WIN1250);
1396 AddCodePage('CL8MSWIN1251', 171, ceAnsi, zCP_WIN1251);
1397 AddCodePage('ET8MSWIN923', 172, ceAnsi, zCP_MSWIN923);
1398 AddCodePage('EL8MSWIN1253', 174, ceAnsi, zCP_WIN1253);
1399 AddCodePage('IW8MSWIN1255', 175, ceAnsi, zCP_WIN1255);
1400 AddCodePage('LT8MSWIN921', 176, ceAnsi, zCP_MSWIN921);
1401 AddCodePage('TR8MSWIN1254', 177, ceAnsi, zCP_WIN1254);
1402 AddCodePage('WE8MSWIN1252', 178, ceAnsi, zCP_WIN1252);
1403 AddCodePage('BLT8MSWIN1257', 179, ceAnsi, zCP_WIN1257);
1404 AddCodePage('BLT8CP921', 191, ceAnsi, 921);
1405 AddCodePage('CL8KOI8R', 196, ceAnsi, zCP_KOI8R);
1406 AddCodePage('BLT8PC775', 197, ceAnsi, zCP_DOS775);
1407 AddCodePage('EL8PC737', 382, ceAnsi, zCP_DOS737);
1408 AddCodePage('AR8ASMO8X', 500, ceAnsi);
1409 AddCodePage('AR8ADOS720', 558, ceAnsi, zCP_DOS720);
1410 AddCodePage('AR8MSWIN1256', 560, ceAnsi, cCP_WIN1256);
1411 AddCodePage('JA16EUC', 830, ceAnsi, zCP_euc_JP_win);
1412 AddCodePage('JA16SJIS', 832, ceAnsi, zCP_csISO2022JP);
1413 AddCodePage('JA16EUCTILDE', 837, ceAnsi);
1414 AddCodePage('JA16SJISTILDE', 838, ceAnsi);
1415 AddCodePage('KO16KSC5601', 840, ceAnsi, 601);
1416 AddCodePage('KO16MSWIN949', 846, ceAnsi, zCP_EUCKR);
1417 AddCodePage('ZHS16CGB231280', 850, ceAnsi, zCP_GB2312);
1418 AddCodePage('ZHS16GBK', 852, ceAnsi);
1419 AddCodePage('ZHS32GB18030', 854, ceAnsi, zCP_GB18030);
1420 AddCodePage('ZHT32EUC', 860, ceAnsi, zCP_EUCKR);
1421 AddCodePage('ZHT16BIG5', 865, ceAnsi, zCP_Big5);
1422 AddCodePage('ZHT16MSWIN950', 867, ceAnsi, zCP_Big5);
1423 AddCodePage('ZHT16HKSCS', 868, ceAnsi);
1424 AddCodePage('UTF8', 871, ceUTF8, zCP_UTF8);
1425 AddCodePage('AL32UTF8', 873, ceUTF8, zCP_UTF8);
1426 AddCodePage('UTF16', 1000, ceUTF16, zCP_UTF16);
1427 AddCodePage('AL16UTF16', 2000, ceUTF16, zCP_UTF16);
1428 AddCodePage('AL16UTF16LE', 2002, ceUTF16, zCP_UTF16);
1431 procedure TZOracle9iPlainDriver.LoadApi;
1433 { ************** Load adresses of API Functions ************* }
1436 @OracleAPI.OCIEnvCreate := GetAddress('OCIEnvCreate');
1437 @OracleAPI.OCIEnvNlsCreate := GetAddress('OCIEnvNlsCreate');
1438 @OracleAPI.OCIInitialize := GetAddress('OCIInitialize');
1439 @OracleAPI.OCIEnvInit := GetAddress('OCIEnvInit');
1441 @OracleAPI.OCIHandleAlloc := GetAddress('OCIHandleAlloc');
1442 @OracleAPI.OCIHandleFree := GetAddress('OCIHandleFree');
1443 @OracleAPI.OCIAttrSet := GetAddress('OCIAttrSet');
1444 @OracleAPI.OCIAttrGet := GetAddress('OCIAttrGet');
1445 @OracleAPI.OCIDescriptorAlloc := GetAddress('OCIDescriptorAlloc');
1446 @OracleAPI.OCIDescriptorFree := GetAddress('OCIDescriptorFree');
1447 @OracleAPI.OCIErrorGet := GetAddress('OCIErrorGet');
1449 @OracleAPI.OCIServerAttach := GetAddress('OCIServerAttach');
1450 @OracleAPI.OCIServerDetach := GetAddress('OCIServerDetach');
1451 @OracleAPI.OCIServerVersion := GetAddress('OCIServerVersion');
1452 @OracleAPI.OCIServerRelease := GetAddress('OCIServerRelease');
1453 @OracleAPI.OCIBreak := GetAddress('OCIBreak');
1455 { For Oracle >= 8.1 }
1456 @OracleAPI.OCIReset := GetAddress('OCIReset');
1458 @OracleAPI.OCISessionBegin := GetAddress('OCISessionBegin');
1459 @OracleAPI.OCISessionEnd := GetAddress('OCISessionEnd');
1460 @OracleAPI.OCIPasswordChange := GetAddress('OCIPasswordChange');
1462 @OracleAPI.OCITransStart := GetAddress('OCITransStart');
1463 @OracleAPI.OCITransCommit := GetAddress('OCITransCommit');
1464 @OracleAPI.OCITransRollback := GetAddress('OCITransRollback');
1465 @OracleAPI.OCITransDetach := GetAddress('OCITransDetach');
1466 @OracleAPI.OCITransPrepare := GetAddress('OCITransPrepare');
1467 @OracleAPI.OCITransForget := GetAddress('OCITransForget');
1469 @OracleAPI.OCIStmtPrepare := GetAddress('OCIStmtPrepare');
1470 @OracleAPI.OCIStmtExecute := GetAddress('OCIStmtExecute');
1471 @OracleAPI.OCIStmtFetch := GetAddress('OCIStmtFetch');
1472 @OracleAPI.OCIStmtGetPieceInfo := GetAddress('OCIStmtGetPieceInfo');
1473 @OracleAPI.OCIStmtSetPieceInfo := GetAddress('OCIStmtSetPieceInfo');
1474 @OracleAPI.OCIParamGet := GetAddress('OCIParamGet');
1475 @OracleAPI.OCIResultSetToStmt := GetAddress('OCIResultSetToStmt');
1477 @OracleAPI.OCIDefineByPos := GetAddress('OCIDefineByPos');
1478 @OracleAPI.OCIDefineArrayOfStruct := GetAddress('OCIDefineArrayOfStruct');
1480 @OracleAPI.OCIBindByPos := GetAddress('OCIBindByPos');
1481 @OracleAPI.OCIBindByName := GetAddress('OCIBindByName');
1482 @OracleAPI.OCIBindDynamic := GetAddress('OCIBindDynamic');
1483 @OracleAPI.OCIBindObject := GetAddress('OCIBindObject');
1485 @OracleAPI.OCIDefineObject := GetAddress('OCIDefineObject');
1488 @OracleAPI.OCIObjectNew := GetAddress('OCIObjectNew');
1489 @OracleAPI.OCIObjectPin := GetAddress('OCIObjectPin');
1490 @OracleAPI.OCIObjectUnpin := GetAddress('OCIObjectUnpin');
1491 @OracleAPI.OCIObjectPinCountReset := GetAddress('OCIObjectPinCountReset');
1492 @OracleAPI.OCIObjectLock := GetAddress('OCIObjectLock');
1493 @OracleAPI.OCIObjectLockNoWait := GetAddress('OCIObjectLockNoWait');
1494 @OracleAPI.OCIObjectMarkUpdate := GetAddress('OCIObjectMarkUpdate');
1495 @OracleAPI.OCIObjectUnmark := GetAddress('OCIObjectUnmark');
1496 @OracleAPI.OCIObjectUnmarkByRef := GetAddress('OCIObjectUnmarkByRef');
1497 @OracleAPI.OCIObjectFree := GetAddress('OCIObjectFree');
1498 @OracleAPI.OCIObjectMarkDeleteByRef := GetAddress('OCIObjectMarkDeleteByRef');
1499 @OracleAPI.OCIObjectMarkDelete := GetAddress('OCIObjectMarkDelete');
1500 @OracleAPI.OCIObjectFlush := GetAddress('OCIObjectFlush');
1501 @OracleAPI.OCIObjectRefresh := GetAddress('OCIObjectRefresh');
1502 @OracleAPI.OCIObjectCopy := GetAddress('OCIObjectCopy');
1503 @OracleAPI.OCIObjectGetTypeRef := GetAddress('OCIObjectGetTypeRef');
1504 @OracleAPI.OCIObjectGetObjectRef := GetAddress('OCIObjectGetObjectRef');
1505 @OracleAPI.OCIObjectMakeObjectRef := GetAddress('OCIObjectMakeObjectRef');
1506 @OracleAPI.OCIObjectGetPrimaryKeyTypeRef := GetAddress('OCIObjectGetPrimaryKeyTypeRef');
1507 @OracleAPI.OCIObjectGetInd := GetAddress('OCIObjectGetInd');
1508 @OracleAPI.OCIObjectExists := GetAddress('OCIObjectExists');
1509 @OracleAPI.OCIObjectGetProperty := GetAddress('OCIObjectGetProperty');
1510 @OracleAPI.OCIObjectIsLocked := GetAddress('OCIObjectIsLocked');
1511 @OracleAPI.OCIObjectIsDirty := GetAddress('OCIObjectIsDirty');
1512 @OracleAPI.OCIObjectPinTable := GetAddress('OCIObjectPinTable');
1513 @OracleAPI.OCIObjectArrayPin := GetAddress('OCIObjectArrayPin');
1514 @OracleAPI.OCICacheFlush := GetAddress('OCICacheFlush');
1515 @OracleAPI.OCICacheRefresh := GetAddress('OCICacheRefresh');
1516 @OracleAPI.OCICacheUnpin := GetAddress('OCICacheUnpin');
1517 @OracleAPI.OCICacheFree := GetAddress('OCICacheFree');
1518 @OracleAPI.OCICacheUnmark := GetAddress('OCICacheUnmark');
1519 @OracleAPI.OCIDurationBegin := GetAddress('OCIDurationBegin');
1520 @OracleAPI.OCIDurationEnd := GetAddress('OCIDurationEnd');
1523 @OracleAPI.OCILobAppend := GetAddress('OCILobAppend');
1524 @OracleAPI.OCILobAssign := GetAddress('OCILobAssign');
1525 @OracleAPI.OCILobCopy := GetAddress('OCILobCopy');
1526 @OracleAPI.OCILobEnableBuffering := GetAddress('OCILobEnableBuffering');
1527 @OracleAPI.OCILobDisableBuffering := GetAddress('OCILobDisableBuffering');
1528 @OracleAPI.OCILobErase := GetAddress('OCILobErase');
1529 @OracleAPI.OCILobFileExists := GetAddress('OCILobFileExists');
1530 @OracleAPI.OCILobFileGetName := GetAddress('OCILobFileGetName');
1531 @OracleAPI.OCILobFileSetName := GetAddress('OCILobFileSetName');
1532 @OracleAPI.OCILobFlushBuffer := GetAddress('OCILobFlushBuffer');
1533 @OracleAPI.OCILobGetLength := GetAddress('OCILobGetLength');
1534 @OracleAPI.OCILobLoadFromFile := GetAddress('OCILobLoadFromFile');
1535 @OracleAPI.OCILobLocatorIsInit := GetAddress('OCILobLocatorIsInit');
1536 @OracleAPI.OCILobRead := GetAddress('OCILobRead');
1537 @OracleAPI.OCILobTrim := GetAddress('OCILobTrim');
1538 @OracleAPI.OCILobWrite := GetAddress('OCILobWrite');
1540 { For Oracle >= 8.1 }
1541 @OracleAPI.OCILobCreateTemporary := GetAddress('OCILobCreateTemporary');
1542 @OracleAPI.OCILobFreeTemporary := GetAddress('OCILobFreeTemporary');
1543 @OracleAPI.OCILobCharSetForm := GetAddress('OCILobCharSetForm');
1544 @OracleAPI.OCILobCharSetId := GetAddress('OCILobCharSetId');
1545 @OracleAPI.OCILobClose := GetAddress('OCILobClose');
1546 @OracleAPI.OCILobIsOpen := GetAddress('OCILobIsOpen');
1547 @OracleAPI.OCILobIsTemporary := GetAddress('OCILobIsTemporary');
1548 @OracleAPI.OCILobOpen := GetAddress('OCILobOpen');
1550 @OracleAPI.OCIDateTimeAssign := GetAddress('OCIDateTimeAssign');
1551 @OracleAPI.OCIDateTimeCheck := GetAddress('OCIDateTimeCheck');
1552 @OracleAPI.OCIDateTimeCompare := GetAddress('OCIDateTimeCompare');
1553 @OracleAPI.OCIDateTimeConvert := GetAddress('OCIDateTimeConvert');
1554 @OracleAPI.OCIDateTimeFromText := GetAddress('OCIDateTimeFromText');
1555 @OracleAPI.OCIDateTimeGetDate := GetAddress('OCIDateTimeGetDate');
1556 @OracleAPI.OCIDateTimeGetTime := GetAddress('OCIDateTimeGetTime');
1557 @OracleAPI.OCIDateTimeGetTimeZoneOffset := GetAddress('OCIDateTimeGetTimeZoneOffset');
1558 @OracleAPI.OCIDateTimeSysTimeStamp := GetAddress('OCIDateTimeSysTimeStamp');
1559 @OracleAPI.OCIDateTimeConstruct := GetAddress('OCIDateTimeConstruct');
1560 @OracleAPI.OCIDateTimeToText := GetAddress('OCIDateTimeToText');
1561 @OracleAPI.OCIDateTimeGetTimeZoneName := GetAddress('OCIDateTimeGetTimeZoneName');
1562 @OracleAPI.OCINlsNumericInfoGet := GetAddress('OCINlsNumericInfoGet');
1563 @OracleAPI.OCIClientVersion := GetAddress('OCIClientVersion');
1565 { For Oracle < 8.1 }
1566 //@OracleAPI.OCILobClose := GetAddress('OCILobFileClose');
1567 //@OracleAPI.OCILobIsOpen := GetAddress('OCILobFileIsOpen');
1568 //@OracleAPI.OCILobOpen := GetAddress('OCILobFileOpen');
1570 @OracleAPI.OCIDescribeAny := GetAddress('OCIDescribeAny');
1572 { OCI Number mapping }
1573 @OracleAPI.OCINumberInc := GetAddress('OCINumberInc');
1574 @OracleAPI.OCINumberDec := GetAddress('OCINumberDec');
1575 @OracleAPI.OCINumberSetZero := GetAddress('OCINumberSetZero');
1576 @OracleAPI.OCINumberSetPi := GetAddress('OCINumberSetPi');
1577 @OracleAPI.OCINumberAdd := GetAddress('OCINumberAdd');
1578 @OracleAPI.OCINumberSub := GetAddress('OCINumberSub');
1579 @OracleAPI.OCINumberMul := GetAddress('OCINumberMul');
1580 @OracleAPI.OCINumberDiv := GetAddress('OCINumberDiv');
1581 @OracleAPI.OCINumberMod := GetAddress('OCINumberMod');
1582 @OracleAPI.OCINumberIntPower := GetAddress('OCINumberIntPower');
1583 @OracleAPI.OCINumberShift := GetAddress('OCINumberShift');
1584 @OracleAPI.OCINumberNeg := GetAddress('OCINumberNeg');
1585 @OracleAPI.OCINumberToText := GetAddress('OCINumberToText');
1586 @OracleAPI.OCINumberFromText := GetAddress('OCINumberFromText');
1587 @OracleAPI.OCINumberToInt := GetAddress('OCINumberToInt');
1588 @OracleAPI.OCINumberFromInt := GetAddress('OCINumberFromInt');
1589 @OracleAPI.OCINumberToReal := GetAddress('OCINumberToReal');
1590 @OracleAPI.OCINumberToRealArray := GetAddress('OCINumberToRealArray');
1591 @OracleAPI.OCINumberFromReal := GetAddress('OCINumberFromReal');
1592 @OracleAPI.OCINumberCmp := GetAddress('OCINumberCmp');
1593 @OracleAPI.OCINumberSign := GetAddress('OCINumberSign');
1594 @OracleAPI.OCINumberIsZero := GetAddress('OCINumberIsZero');
1595 @OracleAPI.OCINumberIsInt := GetAddress('OCINumberIsInt');
1596 @OracleAPI.OCINumberAssign := GetAddress('OCINumberAssign');
1597 @OracleAPI.OCINumberAbs := GetAddress('OCINumberAbs');
1598 @OracleAPI.OCINumberCeil := GetAddress('OCINumberCeil');
1599 @OracleAPI.OCINumberFloor := GetAddress('OCINumberFloor');
1600 @OracleAPI.OCINumberSqrt := GetAddress('OCINumberSqrt');
1601 @OracleAPI.OCINumberTrunc := GetAddress('OCINumberTrunc');
1602 @OracleAPI.OCINumberPower := GetAddress('OCINumberPower');
1603 @OracleAPI.OCINumberRound := GetAddress('OCINumberRound');
1604 @OracleAPI.OCINumberPrec := GetAddress('OCINumberPrec');
1605 @OracleAPI.OCINumberSin := GetAddress('OCINumberSin');
1606 @OracleAPI.OCINumberArcSin := GetAddress('OCINumberArcSin');
1607 @OracleAPI.OCINumberHypSin := GetAddress('OCINumberHypSin');
1608 @OracleAPI.OCINumberCos := GetAddress('OCINumberCos');
1609 @OracleAPI.OCINumberArcCos := GetAddress('OCINumberArcCos');
1610 @OracleAPI.OCINumberHypCos := GetAddress('OCINumberHypCos');
1611 @OracleAPI.OCINumberTan := GetAddress('OCINumberTan');
1612 @OracleAPI.OCINumberArcTan := GetAddress('OCINumberArcTan');
1613 @OracleAPI.OCINumberArcTan2 := GetAddress('OCINumberArcTan2');
1614 @OracleAPI.OCINumberHypTan := GetAddress('OCINumberHypTan');
1615 @OracleAPI.OCINumberExp := GetAddress('OCINumberExp');
1616 @OracleAPI.OCINumberLn := GetAddress('OCINumberLn');
1617 @OracleAPI.OCINumberLog := GetAddress('OCINumberLog');
1619 @OracleAPI.OCITableSize := GetAddress('OCITableSize');
1620 @OracleAPI.OCITableExists := GetAddress('OCITableExists');
1621 @OracleAPI.OCITableDelete := GetAddress('OCITableDelete');
1622 @OracleAPI.OCITableFirst := GetAddress('OCITableFirst');
1623 @OracleAPI.OCITableLast := GetAddress('OCITableLast');
1624 @OracleAPI.OCITableNext := GetAddress('OCITableNext');
1625 @OracleAPI.OCITablePrev := GetAddress('OCITablePrev');
1627 @OracleAPI.OCIObjectGetAttr := GetAddress('OCIObjectGetAttr');
1628 @OracleAPI.OCIObjectSetAttr := GetAddress('OCIObjectSetAttr');
1630 @OracleAPI.OCIPing := GetAddress('OCIPing');
1632 @OracleAPI.OCITypeIterNew := GetAddress('OCITypeIterNew');
1633 @OracleAPI.OCITypeIterFree := GetAddress('OCITypeIterFree');
1634 @OracleAPI.OCITypeByName := GetAddress('OCITypeByName');
1635 @OracleAPI.OCITypeArrayByName := GetAddress('OCITypeArrayByName');
1636 @OracleAPI.OCITypeByRef := GetAddress('OCITypeByRef');
1637 @OracleAPI.OCITypeArrayByRef := GetAddress('OCITypeArrayByRef');
1638 @OracleAPI.OCITypeName := GetAddress('OCITypeName');
1639 @OracleAPI.OCITypeSchema := GetAddress('OCITypeSchema');
1640 @OracleAPI.OCITypeTypeCode := GetAddress('OCITypeTypeCode');
1641 @OracleAPI.OCITypeCollTypeCode:= GetAddress('OCITypeCollTypeCode');
1642 @OracleAPI.OCITypeVersion := GetAddress('OCITypeVersion');
1643 @OracleAPI.OCITypeAttrs := GetAddress('OCITypeAttrs');
1644 @OracleAPI.OCITypeMethods := GetAddress('OCITypeMethods');
1645 @OracleAPI.OCITypeElemName := GetAddress('OCITypeElemName');
1646 @OracleAPI.OCITypeElemTypeCode:= GetAddress('OCITypeElemTypeCode');
1647 @OracleAPI.OCITypeElemType := GetAddress('OCITypeElemType');
1648 @OracleAPI.OCITypeElemFlags := GetAddress('OCITypeElemFlags');
1649 @OracleAPI.OCITypeElemNumPrec := GetAddress('OCITypeElemNumPrec');
1650 @OracleAPI.OCITypeElemNumScale:= GetAddress('OCITypeElemNumScale');
1651 @OracleAPI.OCITypeElemLength := GetAddress('OCITypeElemLength');
1652 @OracleAPI.OCITypeElemCharSetID := GetAddress('OCITypeElemCharSetID');
1653 @OracleAPI.OCITypeElemCharSetForm := GetAddress('OCITypeElemCharSetForm');
1654 @OracleAPI.OCITypeElemParameterizedType := GetAddress('OCITypeElemParameterizedType');
1655 @OracleAPI.OCITypeElemExtTypeCode := GetAddress('OCITypeElemExtTypeCode');
1656 @OracleAPI.OCITypeAttrByName := GetAddress('OCITypeAttrByName');
1657 @OracleAPI.OCITypeAttrNext := GetAddress('OCITypeAttrNext');
1658 @OracleAPI.OCITypeCollElem := GetAddress('OCITypeCollElem');
1659 @OracleAPI.OCITypeCollSize := GetAddress('OCITypeCollSize');
1660 @OracleAPI.OCITypeCollExtTypeCode := GetAddress('OCITypeCollExtTypeCode');
1661 @OracleAPI.OCITypeMethodOverload := GetAddress('OCITypeMethodOverload');
1662 @OracleAPI.OCITypeMethodByName:= GetAddress('OCITypeMethodByName');
1663 @OracleAPI.OCITypeMethodNext := GetAddress('OCITypeMethodNext');
1664 @OracleAPI.OCITypeMethodName := GetAddress('OCITypeMethodName');
1665 @OracleAPI.OCITypeMethodEncap := GetAddress('OCITypeMethodEncap');
1666 @OracleAPI.OCITypeMethodFlags := GetAddress('OCITypeMethodFlags');
1667 @OracleAPI.OCITypeMethodMap := GetAddress('OCITypeMethodMap');
1668 @OracleAPI.OCITypeMethodOrder := GetAddress('OCITypeMethodOrder');
1669 @OracleAPI.OCITypeMethodParams:= GetAddress('OCITypeMethodParams');
1670 @OracleAPI.OCITypeResult := GetAddress('OCITypeResult');
1671 @OracleAPI.OCITypeParamByPos := GetAddress('OCITypeParamByPos');
1672 @OracleAPI.OCITypeParamByName := GetAddress('OCITypeParamByName');
1673 @OracleAPI.OCITypeParamPos := GetAddress('OCITypeParamPos');
1674 @OracleAPI.OCITypeElemParamMode := GetAddress('OCITypeElemParamMode');
1675 @OracleAPI.OCITypeElemDefaultValue := GetAddress('OCITypeElemDefaultValue');
1676 @OracleAPI.OCITypeVTInit := GetAddress('OCITypeVTInit');
1677 @OracleAPI.OCITypeVTInsert := GetAddress('OCITypeVTInsert');
1678 @OracleAPI.OCITypeVTSelect := GetAddress('OCITypeVTSelect');
1682 function TZOracle9iPlainDriver.Clone: IZPlainDriver;
1684 Result := TZOracle9iPlainDriver.Create;
1687 constructor TZOracle9iPlainDriver.Create;
1690 FLoader := TZNativeLibraryLoader.Create([]);
1692 FLoader.AddLocation(WINDOWS_DLL_LOCATION);
1694 FLoader.AddLocation(LINUX_DLL_LOCATION);
1699 function TZOracle9iPlainDriver.GetProtocol: string;
1701 Result := 'oracle-9i';
1704 function TZOracle9iPlainDriver.GetDescription: string;
1706 Result := 'Native Plain Driver for Oracle 9i';
1709 procedure TZOracle9iPlainDriver.Initialize(const Location: String);
1711 inherited Initialize(Location);
1712 OracleAPI.OCIInitialize(OCI_THREADED, nil, nil, nil, nil);
1715 function TZOracle9iPlainDriver.AttrGet(trgthndlp: POCIHandle;
1716 trghndltyp: ub4; attributep, sizep: Pointer; attrtype: ub4;
1717 errhp: POCIError): sword;
1719 Result := OracleAPI.OCIAttrGet(trgthndlp, trghndltyp, attributep, sizep,
1723 function TZOracle9iPlainDriver.AttrSet(trgthndlp: POCIHandle;
1724 trghndltyp: ub4; attributep: Pointer; size, attrtype: ub4;
1725 errhp: POCIError): sword;
1727 Result := OracleAPI.OCIAttrSet(trgthndlp, trghndltyp, attributep, size,
1731 function TZOracle9iPlainDriver.BindByName(stmtp: POCIStmt;
1732 var bindpp: POCIBind; errhp: POCIError; placeholder: text;
1733 placeh_len: sb4; valuep: Pointer; value_sz: sb4; dty: ub2; indp, alenp,
1734 rcodep: Pointer; maxarr_len: ub4; curelep: Pointer; mode: ub4): sword;
1736 Result := OracleAPI.OCIBindByName(stmtp, bindpp, errhp, placeholder,
1737 placeh_len, valuep, value_sz, dty, indp, alenp, rcodep, maxarr_len,
1741 function TZOracle9iPlainDriver.BindByPos(stmtp: POCIStmt;
1742 var bindpp: POCIBind; errhp: POCIError; position: ub4; valuep: Pointer;
1743 value_sz: sb4; dty: ub2; indp, alenp, rcodep: Pointer; maxarr_len: ub4;
1744 curelep: Pointer; mode: ub4): sword;
1746 Result := OracleAPI.OCIBindByPos(stmtp, bindpp, errhp, position, valuep,
1747 value_sz, dty, indp, alenp, rcodep, maxarr_len, curelep, mode);
1750 function TZOracle9iPlainDriver.BindDynamic(bindp: POCIBind;
1751 errhp: POCIError; ictxp, icbfp, octxp, ocbfp: Pointer): sword;
1753 Result := OracleAPI.OCIBindDynamic(bindp, errhp, ictxp, icbfp, octxp,
1757 function TZOracle9iPlainDriver.BindObject(bindp: POCIBind; errhp: POCIError;
1758 const _type: POCIType; pgvpp: PPointer;
1759 pvszsp: pub4; indpp: PPointer;
1760 indszp: pub4): sword;
1762 Result := OracleAPI.OCIBindObject(bindp, errhp, _type, pgvpp, pvszsp, indpp,
1766 function TZOracle9iPlainDriver.DefineObject(defnpp: POCIDefine;
1767 errhp: POCIError; _type: POCIHandle; pgvpp,pvszsp,indpp,indszp:pointer): sword;
1769 Result := OracleAPI.OCIDefineObject(defnpp, errhp, _type, pgvpp, pvszsp,
1774 function TZOracle9iPlainDriver.ObjectNew(env: POCIEnv; err: POCIError;
1775 const svc: POCISvcCtx; typecode: OCITypeCode; tdo: POCIType; table: Pointer;
1776 duration: OCIDuration; value: Longbool; instance: PPointer): sword;
1778 Result := OracleAPI.OCIObjectNew(env, err, svc, typecode, tdo, table,
1779 duration, value, instance);
1782 function TZOracle9iPlainDriver.ObjectPin(env: POCIEnv; err: POCIError;
1783 const object_ref: POCIRef; const corhdl: POCIComplexObject;
1784 const pin_option: OCIPinOpt; const pin_duration: OCIDuration;
1785 const lock_option: OCILockOpt; _object: PPointer): sword;
1787 Result := OracleAPI.OCIObjectPin(env, err, object_ref, corhdl,
1788 pin_option, pin_duration, lock_option, _object);
1791 function TZOracle9iPlainDriver.ObjectUnpin(env: POCIEnv; err: POCIError;
1792 const _object: Pointer): sword;
1794 Result := OracleAPI.OCIObjectUnpin(env, err, _object);
1797 function TZOracle9iPlainDriver.ObjectPinCountReset(env: POCIEnv; err: POCIError;
1798 const _object: pointer): sword;
1800 Result := OracleAPI.OCIObjectPinCountReset(env, err, _object);
1803 function TZOracle9iPlainDriver.ObjectLock(env: POCIEnv; err: POCIError;
1804 const _object: pointer): sword;
1806 Result := OracleAPI.OCIObjectLock(env, err, _object);
1809 function TZOracle9iPlainDriver.ObjectLockNoWait(env: POCIEnv; err: POCIError;
1810 const _object: pointer): sword;
1812 Result := OracleAPI.OCIObjectLockNoWait(env, err, _object);
1815 function TZOracle9iPlainDriver.ObjectMarkUpdate(env: POCIEnv; err: POCIError;
1816 const _object: pointer): sword;
1818 Result := OracleAPI.OCIObjectMarkUpdate(env, err, _object);
1821 function TZOracle9iPlainDriver.ObjectUnmark(env: POCIEnv; err: POCIError;
1822 const _object:pointer): sword;
1824 Result := OracleAPI.OCIObjectUnmark(env, err, _object);
1827 function TZOracle9iPlainDriver.ObjectUnmarkByRef(env: POCIEnv; err: POCIError;
1828 const ref: POCIRef): sword;
1830 Result := OracleAPI.OCIObjectUnmarkByRef(env, err, ref);
1833 function TZOracle9iPlainDriver.ObjectFree(hndl: POCIEnv; err: POCIError;
1834 instance:POCIHandle;flags :ub2):sword;
1836 Result := OracleAPI.OCIObjectFree(hndl, err, instance, flags);
1839 function TZOracle9iPlainDriver.ObjectMarkDeleteByRef(env: POCIEnv;
1840 err: POCIError; const object_ref:POCIRef): sword;
1842 Result := OracleAPI.OCIObjectMarkDeleteByRef(env, err, object_ref);
1845 function TZOracle9iPlainDriver.ObjectMarkDelete(env: POCIEnv; err: POCIError;
1846 const instance:pointer): sword;
1848 Result := OracleAPI.OCIObjectMarkDelete(env, err, instance);
1851 function TZOracle9iPlainDriver.ObjectFlush(env: POCIEnv; err: POCIError;
1852 const _object: pointer): sword;
1854 Result := OracleAPI.OCIObjectFlush(env, err, _object);
1857 function TZOracle9iPlainDriver.ObjectRefresh(env: POCIEnv; err: POCIError;
1858 _object: pointer): sword;
1860 Result := OracleAPI.OCIObjectRefresh(env, err, _object);
1863 function TZOracle9iPlainDriver.ObjectCopy(env: POCIEnv; err: POCIError;
1864 const svc: POCISvcCtx; const source, null_source, target, null_target: pointer;
1865 const tdo: POCIType; const duration: OCIDuration; const option: ub1): sword;
1867 Result := OracleAPI.OCIObjectCopy(env, err, svc, source, null_source, target,
1868 null_target, tdo, duration, option);
1871 function TZOracle9iPlainDriver.ObjectGetTypeRef(env: POCIEnv; err: POCIError;
1872 const instance:pointer; type_ref: POCIRef): sword;
1874 Result := OracleAPI.OCIObjectGetTypeRef(env, err, instance, type_ref);
1877 function TZOracle9iPlainDriver.ObjectGetObjectRef(env: POCIEnv; err: POCIError;
1878 const _object: pointer; object_ref: POCIRef): sword;
1880 Result := OracleAPI.OCIObjectGetObjectRef(env, err, _object, object_ref);
1883 function TZOracle9iPlainDriver.ObjectMakeObjectRef(env: POCIEnv; err: POCIError;
1884 const svc: POCISvcCtx; const table: pointer; const values: PPointer;
1885 const array_len: ub4; object_ref: POCIRef): sword;
1887 Result := OracleAPI.OCIObjectMakeObjectRef(env, err, svc, table, values,
1888 array_len, object_ref);
1891 function TZOracle9iPlainDriver.ObjectGetPrimaryKeyTypeRef(env: POCIEnv;
1892 err: POCIError; const svc:POCISvcCtx; const table: pointer;
1893 type_ref: POCIRef): sword;
1895 Result := OracleAPI.OCIObjectGetPrimaryKeyTypeRef(env, err, svc, table,
1899 function TZOracle9iPlainDriver.ObjectGetInd(env: POCIEnv; err: POCIError;
1900 const instance: pointer; null_struct: PPointer): sword;
1902 Result := OracleAPI.OCIObjectGetInd(env, err, instance, null_struct);
1905 function TZOracle9iPlainDriver.ObjectExists(env: POCIEnv; err: POCIError;
1906 const ins: pointer; exist: PBoolean): sword;
1908 Result := OracleAPI.OCIObjectExists(env, err, ins, exist);
1911 function TZOracle9iPlainDriver.ObjectGetProperty(envh: POCIEnv; errh: POCIError;
1912 const obj: pointer; const propertyId: OCIObjectPropId;
1913 _property: pointer; size: Pub4): sword;
1915 Result := OracleAPI.OCIObjectGetProperty(envh, errh, obj, propertyId,
1919 function TZOracle9iPlainDriver.ObjectIsLocked(env: POCIEnv; err: POCIError;
1920 const ins: pointer; lock: Pboolean): sword;
1922 Result := OracleAPI.OCIObjectIsLocked(env, err, ins, lock);
1925 function TZOracle9iPlainDriver.ObjectIsDirty(env: POCIEnv; err: POCIError;
1926 const ins: pointer; dirty: PBoolean): sword;
1928 Result := OracleAPI.OCIObjectIsDirty(env, err, ins, dirty);
1931 function TZOracle9iPlainDriver.ObjectPinTable(env: POCIEnv; err: POCIError;
1932 const svc:POCISvcCtx; const schema_name: Poratext; const s_n_length: ub4;
1933 const object_name: Poratext; const o_n_length:ub4;
1934 const scope_obj_ref: POCIRef; const pin_duration: OCIDuration;
1935 _object: PPointer): sword;
1937 Result := OracleAPI.OCIObjectPinTable(env, err, svc, schema_name, s_n_length,
1938 object_name, o_n_length, scope_obj_ref, pin_duration, _object);
1941 function TZOracle9iPlainDriver.ObjectArrayPin(env: POCIEnv; err: POCIError;
1942 const ref_array: PPOCIRef; const array_size: ub4;
1943 const cor_array: PPOCIComplexObject; const cor_array_size: ub4;
1944 const pin_option: OCIPinOpt; const pin_duration: OCIDuration;
1945 const lock: OCILockOpt; obj_array: PPointer;
1948 Result := OracleAPI.OCIObjectArrayPin(env, err, ref_array, array_size,
1949 cor_array, cor_array_size, pin_option, pin_duration, lock, obj_array, pos);
1952 function TZOracle9iPlainDriver.CacheFlush(env: POCIEnv; err: POCIError;
1953 const svc:POCISvcCtx; const context: pointer; const get: TOCICacheFlushGet;
1954 ref: PPOCIRef): sword;
1956 Result := OracleAPI.OCICacheFlush(env, err, svc, context, get, ref);
1959 function TZOracle9iPlainDriver.CacheRefresh(env: POCIEnv; err: POCIError;
1960 const svc:POCISvcCtx; const option: OCIRefreshOpt; const context: pointer;
1961 get: TOCICacheRefreshGet; ref: PPOCIRef): sword;
1963 Result := OracleAPI.OCICacheRefresh(env, err, svc, option, context, get, ref);
1966 function TZOracle9iPlainDriver.CacheUnpin(env: POCIEnv; err: POCIError;
1967 const svc:POCISvcCtx): sword;
1969 Result := OracleAPI.OCICacheUnpin(env, err, svc);
1972 function TZOracle9iPlainDriver.CacheFree(env: POCIEnv; err: POCIError;
1973 const svc: POCISvcCtx): sword;
1975 Result := OracleAPI.OCICacheFree(env, err, svc);
1978 function TZOracle9iPlainDriver.CacheUnmark(env: POCIEnv; err: POCIError;
1979 const svc: POCISvcCtx): sword;
1981 Result := OracleAPI.OCICacheUnmark(env, err, svc);
1984 function TZOracle9iPlainDriver.DurationBegin(env: POCIEnv; err: POCIError;
1985 svc: POCISvcCtx; const parent: OCIDuration;
1986 dur: POCIDuration): sword;
1988 Result := OracleAPI.OCIDurationBegin(env, err, svc, parent, dur);
1991 function TZOracle9iPlainDriver.DurationEnd(env: POCIEnv; err: POCIError;
1992 svc: POCISvcCtx; duration: OCIDuration): sword;
1994 Result := OracleAPI.OCIDurationEnd(env, err, svc, duration);
1998 function TZOracle9iPlainDriver.Break(svchp: POCISvcCtx;
1999 errhp: POCIError): sword;
2001 Result := OracleAPI.OCIBreak(svchp, errhp);
2004 function TZOracle9iPlainDriver.DefineArrayOfStruct(defnpp: POCIDefine;
2005 errhp: POCIError; pvskip, indskip, rlskip, rcskip: ub4): sword;
2007 Result := OracleAPI.OCIDefineArrayOfStruct(defnpp, errhp, pvskip,
2008 indskip, rlskip, rcskip);
2011 function TZOracle9iPlainDriver.DefineByPos(stmtp: POCIStmt;
2012 var defnpp: POCIDefine; errhp: POCIError; position: ub4; valuep: Pointer;
2013 value_sz: sb4; dty: ub2; indp, rlenp, rcodep: Pointer; mode: ub4): sword;
2015 Result := OracleAPI.OCIDefineByPos(stmtp, defnpp, errhp, position,
2016 valuep, value_sz, dty, indp, rlenp, rcodep, mode);
2019 function TZOracle9iPlainDriver.DescribeAny(svchp: POCISvcCtx;
2020 errhp: POCIError; objptr: Pointer; objnm_len: ub4; objptr_typ,
2021 info_level, objtyp: ub1; dschp: POCIDescribe): sword;
2023 Result := OracleAPI.OCIDescribeAny(svchp, errhp, objptr,
2024 objnm_len, objptr_typ, info_level, objtyp, dschp);
2027 function TZOracle9iPlainDriver.DescriptorAlloc(parenth: POCIEnv;
2028 var descpp: POCIDescriptor; htype: ub4; xtramem_sz: integer;
2029 usrmempp: Pointer): sword;
2031 Result := OracleAPI.OCIDescriptorAlloc(parenth, descpp, htype,
2032 xtramem_sz, usrmempp);
2035 function TZOracle9iPlainDriver.DescriptorFree(descp: Pointer;
2038 Result := OracleAPI.OCIDescriptorFree(descp, htype);
2041 function TZOracle9iPlainDriver.EnvCreate(var envhpp: POCIEnv; mode: ub4;
2042 ctxp: Pointer; malocfp: Pointer; ralocfp: Pointer; mfreefp: Pointer;
2043 xtramemsz: size_T; usrmempp: PPointer): sword;
2045 Result := OracleAPI.OCIEnvCreate(envhpp, mode, ctxp, malocfp, ralocfp,
2046 mfreefp, xtramemsz, usrmempp);
2049 function TZOracle9iPlainDriver.EnvNlsCreate(var envhpp: POCIEnv; mode: ub4;
2050 ctxp: Pointer; malocfp: Pointer; ralocfp: Pointer; mfreefp: Pointer;
2051 xtramemsz: size_T; usrmempp: PPointer; charset, ncharset: ub2): sword;
2053 Result := OracleAPI.OCIEnvNlsCreate(envhpp, mode, ctxp, malocfp, ralocfp,
2054 mfreefp, xtramemsz, usrmempp, charset, ncharset);
2057 function TZOracle9iPlainDriver.EnvInit(var envhpp: POCIEnv; mode: ub4;
2058 xtramemsz: size_T; usrmempp: PPointer): sword;
2060 Result := OracleAPI.OCIEnvInit(envhpp, mode, xtramemsz, usrmempp);
2063 function TZOracle9iPlainDriver.ErrorGet(hndlp: Pointer; recordno: ub4;
2064 sqlstate: text; var errcodep: sb4; bufp: text; bufsiz,
2067 Result := OracleAPI.OCIErrorGet(hndlp, recordno, sqlstate, errcodep,
2068 bufp, bufsiz, atype);
2071 function TZOracle9iPlainDriver.HandleAlloc(parenth: POCIHandle;
2072 var hndlpp: POCIHandle; atype: ub4; xtramem_sz: size_T;
2073 usrmempp: PPointer): sword;
2075 Result := OracleAPI.OCIHandleAlloc(parenth, hndlpp, atype, xtramem_sz,
2079 function TZOracle9iPlainDriver.HandleFree(hndlp: Pointer; atype: ub4): sword;
2081 Result := OracleAPI.OCIHandleFree(hndlp, atype);
2084 function TZOracle9iPlainDriver.Initializ(mode: ub4; ctxp, malocfp,
2085 ralocfp, mfreefp: Pointer): sword;
2087 Result := OracleAPI.OCIInitialize(mode, ctxp, malocfp, ralocfp, mfreefp);
2090 function TZOracle9iPlainDriver.LobAppend(svchp: POCISvcCtx;
2091 errhp: POCIError; dst_locp, src_locp: POCILobLocator): sword;
2093 Result := OracleAPI.OCILobAppend(svchp, errhp, dst_locp, src_locp);
2096 function TZOracle9iPlainDriver.LobAssign(svchp: POCISvcCtx; errhp: POCIError;
2097 src_locp: POCILobLocator; var dst_locpp: POCILobLocator): sword;
2099 Result := OracleAPI.OCILobAssign(svchp, errhp, src_locp, dst_locpp);
2102 function TZOracle9iPlainDriver.LobClose(svchp: POCISvcCtx;
2103 errhp: POCIError; locp: POCILobLocator): sword;
2105 Result := OracleAPI.OCILobClose(svchp, errhp, locp);
2108 function TZOracle9iPlainDriver.LobCopy(svchp: POCISvcCtx; errhp: POCIError;
2109 dst_locp, src_locp: POCILobLocator; amount, dst_offset,
2110 src_offset: ub4): sword;
2112 Result := OracleAPI.OCILobCopy(svchp, errhp, dst_locp, src_locp,
2113 amount, dst_offset, src_offset);
2116 function TZOracle9iPlainDriver.LobDisableBuffering(svchp: POCISvcCtx;
2117 errhp: POCIError; locp: POCILobLocator): sword;
2119 Result := OracleAPI.OCILobDisableBuffering(svchp, errhp, locp);
2122 function TZOracle9iPlainDriver.LobEnableBuffering(svchp: POCISvcCtx;
2123 errhp: POCIError; locp: POCILobLocator): sword;
2125 Result := OracleAPI.OCILobEnableBuffering(svchp, errhp, locp);
2128 function TZOracle9iPlainDriver.LobErase(svchp: POCISvcCtx;
2129 errhp: POCIError; locp: POCILobLocator; var amount: ub4;
2130 offset: ub4): sword;
2132 Result := OracleAPI.OCILobErase(svchp, errhp, locp, amount, offset);
2135 function TZOracle9iPlainDriver.LobFileExists(svchp: POCISvcCtx;
2136 errhp: POCIError; filep: POCILobLocator; var flag: Boolean): sword;
2138 Result := OracleAPI.OCILobFileExists(svchp, errhp, filep, flag);
2141 function TZOracle9iPlainDriver.LobFileGetName(envhp: POCIEnv;
2142 errhp: POCIError; filep: POCILobLocator; dir_alias: text;
2143 var d_length: ub2; filename: text; var f_length: ub2): sword;
2145 Result := OracleAPI.OCILobFileGetName(envhp, errhp, filep, dir_alias,
2146 d_length, filename, f_length);
2149 function TZOracle9iPlainDriver.LobFileSetName(envhp: POCIEnv;
2150 errhp: POCIError; var filep: POCILobLocator; dir_alias: text;
2151 d_length: ub2; filename: text; f_length: ub2): sword;
2153 Result := OracleAPI.OCILobFileSetName(envhp, errhp, filep, dir_alias,
2154 d_length, filename, f_length);
2157 function TZOracle9iPlainDriver.LobFlushBuffer(svchp: POCISvcCtx;
2158 errhp: POCIError; locp: POCILobLocator; flag: ub4): sword;
2160 Result := OracleAPI.OCILobFlushBuffer(svchp, errhp, locp, flag);
2163 function TZOracle9iPlainDriver.LobGetLength(svchp: POCISvcCtx;
2164 errhp: POCIError; locp: POCILobLocator; var lenp: ub4): sword;
2166 Result := OracleAPI.OCILobGetLength(svchp, errhp, locp, lenp);
2169 function TZOracle9iPlainDriver.LobIsOpen(svchp: POCISvcCtx;
2170 errhp: POCIError; locp: POCILobLocator; var flag: LongBool): sword;
2172 Result := OracleAPI.OCILobIsOpen(svchp, errhp, locp, flag);
2175 function TZOracle9iPlainDriver.LobLoadFromFile(svchp: POCISvcCtx;
2176 errhp: POCIError; dst_locp, src_locp: POCILobLocator; amount, dst_offset,
2177 src_offset: ub4): sword;
2179 Result := OracleAPI.OCILobLoadFromFile(svchp, errhp, dst_locp, src_locp,
2180 amount, dst_offset, src_offset);
2183 function TZOracle9iPlainDriver.LobLocatorIsInit(envhp: POCIEnv;
2184 errhp: POCIError; locp: POCILobLocator;
2185 var is_initialized: LongBool): sword;
2187 Result := OracleAPI.OCILobLocatorIsInit(envhp, errhp, locp,
2191 function TZOracle9iPlainDriver.LobOpen(svchp: POCISvcCtx; errhp: POCIError;
2192 locp: POCILobLocator; mode: ub1): sword;
2194 Result := OracleAPI.OCILobOpen(svchp, errhp, locp, mode);
2197 function TZOracle9iPlainDriver.LobRead(svchp: POCISvcCtx; errhp: POCIError;
2198 locp: POCILobLocator; var amtp: ub4; offset: ub4; bufp: Pointer;
2199 bufl: ub4; ctxp, cbfp: Pointer; csid: ub2; csfrm: ub1): sword;
2201 Result := OracleAPI.OCILobRead(svchp, errhp, locp, amtp, offset, bufp,
2202 bufl, ctxp, cbfp, csid, csfrm);
2205 function TZOracle9iPlainDriver.LobTrim(svchp: POCISvcCtx; errhp: POCIError;
2206 locp: POCILobLocator; newlen: ub4): sword;
2208 Result := OracleAPI.OCILobTrim(svchp, errhp, locp, newlen);
2211 function TZOracle9iPlainDriver.LobWrite(svchp: POCISvcCtx;
2212 errhp: POCIError; locp: POCILobLocator; var amtp: ub4; offset: ub4;
2213 bufp: Pointer; bufl: ub4; piece: ub1; ctxp, cbfp: Pointer; csid: ub2;
2216 Result := OracleAPI.OCILobWrite(svchp, errhp, locp, amtp, offset,
2217 bufp, bufl, piece, ctxp, cbfp, csid, csfrm);
2220 function TZOracle9iPlainDriver.LobCreateTemporary(svchp: POCISvcCtx;
2221 errhp: POCIError; locp: POCILobLocator; csid: ub2; csfrm, lobtype: ub1;
2222 cache: LongBool; duration: OCIDuration): sword;
2224 Result := OracleAPI.OCILobCreateTemporary(svchp, errhp, locp,
2225 csid, csfrm, lobtype, cache, duration);
2228 function TZOracle9iPlainDriver.LobFreeTemporary(svchp: POCISvcCtx;
2229 errhp: POCIError; locp: POCILobLocator): sword;
2231 Result := OracleAPI.OCILobFreeTemporary(svchp, errhp, locp);
2234 function TZOracle9iPlainDriver.LobCharSetForm ( envhp: POCIEnv; errhp: POCIError;
2235 const locp: POCILobLocator; csfrm: pub1): sword;
2237 Result := OracleAPI.OCILobCharSetForm(envhp, errhp, locp, csfrm);
2240 function TZOracle9iPlainDriver.LobCharSetId ( envhp: POCIEnv; errhp: POCIError;
2241 const locp: POCILobLocator; csid: pub2): sword;
2243 Result := OracleAPI.OCILobCharSetId (envhp, errhp, locp, csid);
2246 function TZOracle9iPlainDriver.LobIsTemporary(svchp: POCISvcCtx;
2247 errhp: POCIError; locp: POCILobLocator;
2248 var is_temporary: LongBool): sword;
2250 Result := OracleAPI.OCILobIsTemporary(svchp, errhp, locp, is_temporary);
2253 function TZOracle9iPlainDriver.ParamGet(hndlp: Pointer; htype: ub4;
2254 errhp: POCIError; var parmdpp: Pointer; pos: ub4): sword;
2256 Result := OracleAPI.OCIParamGet(hndlp, htype, errhp, parmdpp, pos);
2259 function TZOracle9iPlainDriver.PasswordChange(svchp: POCISvcCtx;
2260 errhp: POCIError; user_name: text; usernm_len: ub4; opasswd: text;
2261 opasswd_len: ub4; npasswd: text; npasswd_len: sb4; mode: ub4): sword;
2263 Result := OracleAPI.OCIPasswordChange(svchp, errhp, user_name,
2264 usernm_len, opasswd, opasswd_len, npasswd, npasswd_len, mode);
2267 function TZOracle9iPlainDriver.Reset(svchp: POCISvcCtx;
2268 errhp: POCIError): sword;
2270 Result := OracleAPI.OCIReset(svchp, errhp);
2273 function TZOracle9iPlainDriver.ResultSetToStmt(rsetdp: POCIHandle;
2274 errhp: POCIError): sword;
2276 Result := OracleAPI.OCIResultSetToStmt(rsetdp, errhp);
2279 function TZOracle9iPlainDriver.GetEnvCharsetByteWidth(hndl: POCIEnv; err: POCIError;
2282 Result := OracleAPI.OCINlsNumericInfoGet(hndl, err, @value, OCI_NLS_CHARSET_MAXBYTESZ);
2285 procedure TZOracle9iPlainDriver.ClientVersion(major_version, minor_version,
2286 update_num, patch_num, port_update_num: psword);
2288 OracleAPI.OCIClientVersion(major_version, minor_version,
2289 update_num, patch_num, port_update_num);
2292 function TZOracle9iPlainDriver.NumberInc(err: POCIError; number: POCINumber): sword;
2294 Result := OracleAPI.OCINumberInc(err, number);
2297 function TZOracle9iPlainDriver.NumberDec(err: POCIError; number: POCINumber): sword;
2299 Result := OracleAPI.OCINumberDec(err, number);
2302 procedure TZOracle9iPlainDriver.NumberSetZero(err: POCIError; number: POCINumber);
2304 OracleAPI.OCINumberSetZero(err, number);
2307 procedure TZOracle9iPlainDriver.NumberSetPi(err: POCIError; number: POCINumber);
2309 OracleAPI.OCINumberSetPi(err, number);
2312 function TZOracle9iPlainDriver.NumberAdd(err: POCIError; const number1: POCINumber;
2313 const number2: POCINumber; _result: POCINumber): sword;
2315 Result := OracleAPI.OCINumberAdd(err, number1, number2, _result);
2318 function TZOracle9iPlainDriver.NumberSub(err: POCIError; const number1: POCINumber;
2319 const number2: POCINumber; _result: POCINumber): sword;
2321 Result := OracleAPI.OCINumberSub(err, number1, number2, _result);
2324 function TZOracle9iPlainDriver.NumberMul(err: POCIError; const number1: POCINumber;
2325 const number2: POCINumber; _result: POCINumber): sword;
2327 Result := OracleAPI.OCINumberMul(err, number1, number2, _result);
2330 function TZOracle9iPlainDriver.NumberDiv(err: POCIError; const number1: POCINumber;
2331 const number2: POCINumber; _result: POCINumber): sword;
2333 Result := OracleAPI.OCINumberDiv(err, number1, number2, _result);
2336 function TZOracle9iPlainDriver.NumberMod(err: POCIError; const number1: POCINumber;
2337 const number2: POCINumber; _result: POCINumber): sword;
2339 Result := OracleAPI.OCINumberMod(err, number1, number2, _result);
2342 function TZOracle9iPlainDriver.NumberIntPower(err: POCIError; const number1: POCINumber;
2343 const number2: POCINumber; _result: POCINumber): sword;
2345 Result := OracleAPI.OCINumberIntPower(err, number1, number2, _result);
2348 function TZOracle9iPlainDriver.NumberShift(err: POCIError; const number: POCINumber;
2349 const nDig: sword; _result: POCINumber): sword;
2351 Result := OracleAPI.OCINumberShift(err, number, nDig, _result);
2354 function TZOracle9iPlainDriver.NumberNeg(err: POCIError; const number: POCINumber;
2355 _result: POCINumber): sword;
2357 Result := OracleAPI.OCINumberNeg(err, number, _result);
2360 function TZOracle9iPlainDriver.NumberToText(err: POCIError; const number: POCINumber;
2361 const fmt: Poratext; fmt_length: ub4; const nls_params: Poratext;
2362 nls_p_length: ub4; buf_size: pub4; buf: poratext): sword;
2364 Result := OracleAPI.OCINumberToText(err, number, fmt, fmt_length, nls_params,
2365 nls_p_length, buf_size, buf);
2368 function TZOracle9iPlainDriver.NumberFromText(err: POCIError; const str: poratext;
2369 str_length: ub4; const fmt: poratext; fmt_length: ub4;
2370 const nls_params: poratext; nls_p_length: ub4; number: POCINumber): sword;
2372 Result := OracleAPI.OCINumberFromText(err, str, str_length, fmt, fmt_length,
2373 nls_params, nls_p_length, number);
2376 function TZOracle9iPlainDriver.NumberToInt(err: POCIError; const number: POCINumber;
2377 rsl_length: uword; rsl_flag: uword; rsl: Pointer): sword;
2379 Result := OracleAPI.OCINumberToInt(err, number, rsl_length, rsl_flag, rsl);
2382 function TZOracle9iPlainDriver.NumberFromInt(err: POCIError; const inum: Pointer;
2383 inum_length: uword; inum_s_flag: uword; number: POCINumber): sword;
2385 Result := OracleAPI.OCINumberFromInt(err, inum, inum_length, inum_s_flag, number);
2388 function TZOracle9iPlainDriver.NumberToReal(err: POCIError; const number: POCINumber;
2389 rsl_length: uword; rsl: Pointer): sword;
2391 Result := OracleAPI.OCINumberToReal(err, number, rsl_length, rsl);
2394 function TZOracle9iPlainDriver.NumberToRealArray(err: POCIError; const number: PPOCINumber;
2395 elems: uword; rsl_length: uword; rsl: Pointer): sword;
2397 Result := OracleAPI.OCINumberToRealArray(err, number, elems, rsl_length, rsl);
2400 function TZOracle9iPlainDriver.NumberFromReal(err: POCIError; const rnum: Pointer;
2401 rnum_length: uword; number: POCINumber): sword;
2403 Result := OracleAPI.OCINumberFromReal(err, rnum, rnum_length, number);
2406 function TZOracle9iPlainDriver.NumberCmp(err: POCIError; const number1: POCINumber;
2407 const number2: POCINumber; _result: psword): sword;
2409 Result := OracleAPI.OCINumberCmp(err, number1, number2, _result);
2412 function TZOracle9iPlainDriver.NumberSign(err: POCIError; const number: POCINumber;
2413 _result: psword): sword;
2415 Result := OracleAPI.OCINumberSign(err, number, _result);
2418 function TZOracle9iPlainDriver.NumberIsZero(err: POCIError; const number: POCINumber;
2419 _Result: pboolean): sword;
2421 Result := OracleAPI.OCINumberIsZero(err, number, _result);
2424 function TZOracle9iPlainDriver.NumberIsInt(err: POCIError; const number: POCINumber;
2425 _result: Pboolean): sword;
2427 Result := OracleAPI.OCINumberIsInt(err, number, _result);
2430 function TZOracle9iPlainDriver.NumberAssign(err: POCIError; const from: POCINumber;
2431 _to: POCINumber): sword;
2433 Result := OracleAPI.OCINumberAssign(err, from, _to);
2436 function TZOracle9iPlainDriver.NumberAbs(err: POCIError; const number: POCINumber;
2437 _result: POCINumber): sword;
2439 Result := OracleAPI.OCINumberAbs(err, number, _result);
2442 function TZOracle9iPlainDriver.NumberCeil(err: POCIError; const number: POCINumber;
2443 _result: POCINumber): sword;
2445 Result := OracleAPI.OCINumberCeil(err, number, _result);
2448 function TZOracle9iPlainDriver.NumberFloor(err: POCIError; const number: POCINumber;
2449 _result: POCINumber): sword;
2451 Result := OracleAPI.OCINumberFloor(err, number, _result);
2454 function TZOracle9iPlainDriver.NumberSqrt(err: POCIError; const number: POCINumber;
2455 _result: POCINumber): sword;
2457 Result := OracleAPI.OCINumberSqrt(err, number, _result);
2460 function TZOracle9iPlainDriver.NumberTrunc(err: POCIError; const number: POCINumber;
2461 _result: POCINumber): sword;
2463 Result := OracleAPI.OCINumberTrunc(err, number, _result);
2466 function TZOracle9iPlainDriver.NumberPower(err: POCIError; const base: POCINumber;
2467 const number: POCINumber; _result: POCINumber): sword;
2469 Result := OracleAPI.OCINumberPower(err, base, number, _result);
2472 function TZOracle9iPlainDriver.NumberRound(err: POCIError; const number: POCINumber;
2473 decplace: sword; _result: POCINumber): sword;
2475 Result := OracleAPI.OCINumberRound(err, number, decplace, _result);
2478 function TZOracle9iPlainDriver.NumberPrec(err: POCIError; const number: POCINumber;
2479 nDigs: sword; _result: POCINumber): sword;
2481 Result := OracleAPI.OCINumberPrec(err, number, nDigs, _result);
2484 function TZOracle9iPlainDriver.NumberSin(err: POCIError; const number: POCINumber;
2485 _result: POCINumber): sword;
2487 Result := OracleAPI.OCINumberSin(err, number, _result);
2490 function TZOracle9iPlainDriver.NumberArcSin(err: POCIError; const number: POCINumber;
2491 _result: POCINumber): sword;
2493 Result := OracleAPI.OCINumberArcSin(err, number, _result);
2496 function TZOracle9iPlainDriver.NumberHypSin(err: POCIError; const number: POCINumber;
2497 _result: POCINumber): sword;
2499 Result := OracleAPI.OCINumberHypSin(err, number, _result);
2502 function TZOracle9iPlainDriver.NumberCos(err: POCIError; const number: POCINumber;
2503 _result: POCINumber): sword;
2505 Result := OracleAPI.OCINumberCos(err, number, _result);
2508 function TZOracle9iPlainDriver.NumberArcCos(err: POCIError; const number: POCINumber;
2509 _result: POCINumber): sword;
2511 Result := OracleAPI.OCINumberArcCos(err, number, _result);
2514 function TZOracle9iPlainDriver.NumberHypCos(err: POCIError; const number: POCINumber;
2515 _result: POCINumber): sword;
2517 Result := OracleAPI.OCINumberHypCos(err, number, _result);
2520 function TZOracle9iPlainDriver.NumberTan(err: POCIError; const number: POCINumber;
2521 _result: POCINumber): sword;
2523 Result := OracleAPI.OCINumberTan(err, number, _result);
2526 function TZOracle9iPlainDriver.NumberArcTan(err: POCIError; const number: POCINumber;
2527 _result: POCINumber): sword;
2529 Result := OracleAPI.OCINumberArcTan(err, number, _result);
2532 function TZOracle9iPlainDriver.NumberArcTan2(err: POCIError; const number1: POCINumber;
2533 const number2: POCINumber; _result: POCINumber): sword;
2535 Result := OracleAPI.OCINumberArcTan2(err, number1, number2, _result);
2538 function TZOracle9iPlainDriver.NumberHypTan(err: POCIError; const number: POCINumber;
2539 _result: POCINumber): sword;
2541 Result := OracleAPI.OCINumberHypTan(err, number, _result);
2544 function TZOracle9iPlainDriver.NumberExp(err: POCIError; const number: POCINumber;
2545 _result: POCINumber): sword;
2547 Result := OracleAPI.OCINumberExp(err, number, _result);
2550 function TZOracle9iPlainDriver.NumberLn(err: POCIError; const number: POCINumber;
2551 _result: POCINumber): sword;
2553 Result := OracleAPI.OCINumberLn(err, number, _result);
2556 function TZOracle9iPlainDriver.NumberLog(err: POCIError; const base: POCINumber;
2557 const number: POCINumber; _result: POCINumber): sword;
2559 Result := OracleAPI.OCINumberLog(err, base, number, _result);
2562 function TZOracle9iPlainDriver.TableSize(hndl: POCIEnv; err: POCIError;
2563 const tbl: POCITable; size: psb4): sword;
2565 Result := OracleAPI.OCITableSize(hndl, err, tbl, size);
2568 function TZOracle9iPlainDriver.TableExists(hndl: POCIEnv; err: POCIError;
2569 const tbl: POCITable; index: sb4; exists: PBoolean): sword;
2571 Result := OracleAPI.OCITableExists(hndl, err, tbl, index, exists);
2574 function TZOracle9iPlainDriver.TableDelete(hndl: POCIEnv; err: POCIError;
2575 index: sb4; tbl: POCITable): sword;
2577 Result := OracleAPI.OCITableDelete(hndl, err, index, tbl);
2580 function TZOracle9iPlainDriver.TableFirst(hndl: POCIEnv; err: POCIError;
2581 const tbl: POCITable; index: sb4): sword;
2583 Result := OracleAPI.OCITableFirst(hndl, err, tbl, index);
2586 function TZOracle9iPlainDriver.TableLast(hndl: POCIEnv; err: POCIError;
2587 const tbl: POCITable; index: sb4): sword;
2589 Result := OracleAPI.OCITableLast(hndl, err, tbl, index);
2592 function TZOracle9iPlainDriver.TableNext(hndl: POCIEnv; err: POCIError;
2593 index: sb4; const tbl: POCITable; next_index: psb4; exists: PBoolean): sword;
2595 Result := OracleAPI.OCITableNext(hndl, err, index, tbl, next_index, exists);
2598 function TZOracle9iPlainDriver.TablePrev(hndl: POCIEnv; err: POCIError;
2599 index: sb4; const tbl: POCITable; prev_index: psb4; exists: PBoolean): sword;
2601 Result := OracleAPI.OCITablePrev(hndl, err, index, tbl, prev_index, exists);
2604 function TZOracle9iPlainDriver.ObjectSetAttr(env: POCIEnv; err: POCIError;
2605 instance: Pointer; null_struct: pointer; tdo: POCIType;
2606 const names: PPAnsiChar; const lengths: pub4; const name_count: ub4;
2607 const indexes: pub4; const index_count: ub4; const null_status: POCIInd;
2608 const attr_null_struct: Pointer; const attr_value: Pointer): sword;
2610 Result := OracleAPI.OCIObjectSetAttr(env, err, instance, null_struct, tdo,
2611 names, lengths, name_count, indexes, index_count, null_status,
2612 attr_null_struct, attr_value);
2615 function TZOracle9iPlainDriver.ObjectGetAttr(env: POCIEnv; err: POCIError;
2616 instance: Pointer; null_struct: Pointer; tdo: POCIType;
2617 const names: PPoratext; const lengths: pub4; const name_count: ub4;
2618 const indexes: pub4; const index_count: ub4; attr_null_status: POCIInd;
2619 attr_null_struct, attr_value: PPointer; attr_tdo: PPOCIType): sword;
2621 Result := OracleAPI.OCIObjectGetAttr(env, err, instance, null_struct, tdo,
2622 names, lengths, name_count, indexes, index_count, attr_null_status,
2623 attr_null_struct, attr_value, attr_tdo);
2626 function TZOracle9iPlainDriver.Ping(svchp: POCISvcCtx; errhp: POCIError;
2627 mode: ub4 = OCI_DEFAULT): sword;
2629 Result := OracleAPI.OCIPing(svchp, errhp, mode);
2632 function TZOracle9iPlainDriver.ServerAttach(srvhp: POCIServer;
2633 errhp: POCIError; dblink: text; dblink_len: sb4; mode: ub4): sword;
2635 Result := OracleAPI.OCIServerAttach(srvhp, errhp, dblink, dblink_len,
2639 function TZOracle9iPlainDriver.ServerDetach(srvhp: POCIServer;
2640 errhp: POCIError; mode: ub4): sword;
2642 Result := OracleAPI.OCIServerDetach(srvhp, errhp, mode);
2645 function TZOracle9iPlainDriver.ServerVersion(hndlp: POCIHandle;
2646 errhp: POCIError; bufp: text; bufsz: ub4; hndltype: ub1): sword;
2648 Result := OracleAPI.OCIServerVersion(hndlp, errhp, bufp, bufsz,
2652 function TZOracle9iPlainDriver.ServerRelease(hndlp: POCIHandle;
2653 errhp: POCIError; bufp: text; bufsz: ub4; hndltype: ub1; version:pointer): sword;
2656 if assigned(OracleAPI.OCIServerRelease) then
2657 Result := OracleAPI.OCIServerRelease(hndlp, errhp, bufp, bufsz,
2661 function TZOracle9iPlainDriver.SessionBegin(svchp: POCISvcCtx;
2662 errhp: POCIError; usrhp: POCISession; credt, mode: ub4): sword;
2664 Result := OracleAPI.OCISessionBegin(svchp, errhp, usrhp, credt, mode);
2667 function TZOracle9iPlainDriver.SessionEnd(svchp: POCISvcCtx;
2668 errhp: POCIError; usrhp: POCISession; mode: ub4): sword;
2670 Result := OracleAPI.OCISessionEnd(svchp, errhp, usrhp, mode);
2673 function TZOracle9iPlainDriver.StmtExecute(svchp: POCISvcCtx;
2674 stmtp: POCIStmt; errhp: POCIError; iters, rowoff: ub4; snap_in,
2675 snap_out: POCISnapshot; mode: ub4): sword;
2677 Result := OracleAPI.OCIStmtExecute(svchp, stmtp, errhp, iters, rowoff,
2678 snap_in, snap_out, mode);
2681 function TZOracle9iPlainDriver.StmtFetch(stmtp: POCIStmt; errhp: POCIError;
2682 nrows: ub4; orientation: ub2; mode: ub4): sword;
2684 Result := OracleAPI.OCIStmtFetch(stmtp, errhp, nrows, orientation, mode);
2687 function TZOracle9iPlainDriver.StmtGetPieceInfo(stmtp: POCIStmt;
2688 errhp: POCIError; var hndlpp: Pointer; var typep: ub4; var in_outp: ub1;
2689 var iterp, idxp: ub4; var piecep: ub1): sword;
2691 Result := OracleAPI.OCIStmtGetPieceInfo(stmtp, errhp, hndlpp, typep,
2692 in_outp, iterp, idxp, piecep);
2695 function TZOracle9iPlainDriver.StmtPrepare(stmtp: POCIStmt;
2696 errhp: POCIError; stmt: text; stmt_len, language, mode: ub4): sword;
2698 Result := OracleAPI.OCIStmtPrepare(stmtp, errhp, stmt, stmt_len,
2702 function TZOracle9iPlainDriver.StmtSetPieceInfo(handle: Pointer;
2703 typep: ub4; errhp: POCIError; buf: Pointer; var alenp: ub4; piece: ub1;
2704 indp: Pointer; var rcodep: ub2): sword;
2706 Result := OracleAPI.OCIStmtSetPieceInfo(handle, typep,
2707 errhp, buf, alenp, piece, indp, rcodep);
2710 function TZOracle9iPlainDriver.TransCommit(svchp: POCISvcCtx;
2711 errhp: POCIError; flags: ub4): sword;
2713 Result := OracleAPI.OCITransCommit(svchp, errhp, flags);
2716 function TZOracle9iPlainDriver.TransDetach(svchp: POCISvcCtx;
2717 errhp: POCIError; flags: ub4): sword;
2719 Result := OracleAPI.OCITransDetach(svchp, errhp, flags);
2722 function TZOracle9iPlainDriver.TransForget(svchp: POCISvcCtx;
2723 errhp: POCIError; flags: ub4): sword;
2725 Result := OracleAPI.OCITransForget(svchp, errhp, flags);
2728 function TZOracle9iPlainDriver.TransPrepare(svchp: POCISvcCtx;
2729 errhp: POCIError; flags: ub4): sword;
2731 Result := OracleAPI.OCITransPrepare(svchp, errhp, flags);
2734 function TZOracle9iPlainDriver.TransRollback(svchp: POCISvcCtx;
2735 errhp: POCIError; flags: ub4): sword;
2737 Result := OracleAPI.OCITransRollback(svchp, errhp, flags);
2740 function TZOracle9iPlainDriver.TransStart(svchp: POCISvcCtx;
2741 errhp: POCIError; timeout: word; flags: ub4): sword;
2743 Result := OracleAPI.OCITransStart(svchp, errhp, timeout, flags);
2746 function TZOracle9iPlainDriver.DateTimeAssign(hndl: POCIEnv;
2747 err: POCIError; const from: POCIDateTime; _to: POCIDateTime): sword;
2749 Result := OracleAPI.OCIDateTimeAssign(hndl, err, from, _to);
2752 function TZOracle9iPlainDriver.DateTimeCheck(hndl: POCIEnv; err: POCIError;
2753 const date: POCIDateTime; var valid: ub4): sword;
2755 Result := OracleAPI.OCIDateTimeCheck(hndl, err, date, valid);
2758 function TZOracle9iPlainDriver.DateTimeCompare(hndl: POCIEnv;
2759 err: POCIError; const date1, date2: POCIDateTime;
2760 var _result: sword): sword;
2762 Result := OracleAPI.OCIDateTimeCompare(hndl, err, date1, date2, _result);
2765 function TZOracle9iPlainDriver.DateTimeConstruct(hndl: POCIEnv;
2766 err: POCIError; datetime: POCIDateTime; year: sb2; month, day, hour, min,
2767 sec: ub1; fsec: ub4; timezone: text; timezone_length: size_t): sword;
2769 Result := OracleAPI.OCIDateTimeConstruct(hndl, err, datetime,
2770 year, month, day, hour, min, sec, fsec, timezone, timezone_length);
2773 function TZOracle9iPlainDriver.DateTimeConvert(hndl: POCIEnv;
2774 err: POCIError; indate, outdate: POCIDateTime): sword;
2776 Result := OracleAPI.OCIDateTimeConvert(hndl, err, indate, outdate);
2779 function TZOracle9iPlainDriver.DateTimeFromText(hndl: POCIEnv;
2780 err: POCIError; const date_str: text; d_str_length: size_t;
2781 const fmt: text; fmt_length: ub1; const lang_name: text;
2782 lang_length: size_t; date: POCIDateTime): sword;
2784 Result := OracleAPI.OCIDateTimeFromText(hndl, err,
2785 date_str, d_str_length, fmt, fmt_length, lang_name, lang_length, date);
2788 function TZOracle9iPlainDriver.DateTimeGetDate(hndl: POCIEnv;
2789 err: POCIError; const date: POCIDateTime; var year: sb2; var month,
2792 Result := OracleAPI.OCIDateTimeGetDate(hndl, err, date, year, month, day);
2795 function TZOracle9iPlainDriver.DateTimeGetTime(hndl: POCIEnv;
2796 err: POCIError; datetime: POCIDateTime; var hour, minute, sec: ub1;
2797 var fsec: ub4): sword;
2799 Result := OracleAPI.OCIDateTimeGetTime(hndl, err, datetime,
2800 hour, minute, sec, fsec);
2803 function TZOracle9iPlainDriver.DateTimeGetTimeZoneName(hndl: POCIEnv;
2804 err: POCIError; datetime: POCIDateTime; var buf: ub1;
2805 var buflen: ub4): sword;
2807 Result := OracleAPI.OCIDateTimeGetTimeZoneName(hndl, err, datetime,
2811 function TZOracle9iPlainDriver.DateTimeGetTimeZoneOffset(hndl: POCIEnv;
2812 err: POCIError; const datetime: POCIDateTime; var hour,
2813 minute: sb1): sword;
2815 Result := OracleAPI.OCIDateTimeGetTimeZoneOffset(hndl, err, datetime,
2819 function TZOracle9iPlainDriver.DateTimeSysTimeStamp(hndl: POCIEnv;
2820 err: POCIError; sys_date: POCIDateTime): sword;
2822 Result := OracleAPI.OCIDateTimeSysTimeStamp(hndl, err, sys_date);
2825 function TZOracle9iPlainDriver.DateTimeToText(hndl: POCIEnv;
2826 err: POCIError; const date: POCIDateTime; const fmt: text; fmt_length,
2827 fsprec: ub1; const lang_name: text; lang_length: size_t;
2828 var buf_size: ub4; buf: text): sword;
2830 Result := OracleAPI.OCIDateTimeToText(hndl, err, date, fmt, fmt_length,
2831 fsprec, lang_name, lang_length, buf_size, buf);
2835 function TZOracle9iPlainDriver.TypeIterNew(env: POCIEnv; err: POCIError;
2836 const tdo: POCIType; iterator_ort: PPOCITypeIter): sword;
2838 Result := OracleAPI.OCITypeIterNew(env, err, tdo, iterator_ort);
2841 function TZOracle9iPlainDriver.TypeIterSet(env: POCIEnv; err: POCIError;
2842 const tdo: POCIType; iterator_ort: POCITypeIter): sword;
2844 Result := OracleAPI.OCITypeIterSet(env, err, tdo, iterator_ort);
2847 function TZOracle9iPlainDriver.TypeIterFree(env: POCIEnv; err: POCIError;
2848 iterator_ort: POCITypeIter): sword;
2850 Result := OracleAPI.OCITypeIterFree(env, err, iterator_ort);
2853 function TZOracle9iPlainDriver.TypeByName(env: POCIEnv; err: POCIError;
2854 const svc: POCISvcCtx; schema_name: Poratext; const s_length: ub4;
2855 const type_name: Poratext; const t_length: ub4; version_name: Poratext;
2856 const v_length: ub4; const pin_duration: OCIDuration;
2857 const get_option: OCITypeGetOpt; tdo: PPOCIType): sword;
2859 Result := OracleAPI.OCITypeByName(env, err, svc, schema_name, s_length,
2860 type_name, t_length, version_name, v_length, pin_duration, get_option, tdo);
2863 function TZOracle9iPlainDriver.TypeArrayByName(env: POCIEnv; err: POCIError;
2864 svc: POCISvcCtx; array_len: ub4; schema_name: PPoratext; s_length: Pub4;
2865 type_name: PPoratext; t_length: Pub4; version_name: PPoratext;
2866 v_length: Pub4; pin_duration: OCIDuration; get_option: OCITypeGetOpt;
2867 tdo: PPOCIType): sword;
2869 Result := OracleAPI.OCITypeArrayByName(env, err, svc, array_len, schema_name,
2870 s_length, type_name, t_length, version_name, v_length, pin_duration,
2874 function TZOracle9iPlainDriver.TypeByRef(env: POCIEnv; err: POCIError;
2875 type_ref: POCIRef; pin_duration: OCIDuration; get_option: OCITypeGetOpt;
2876 tdo: PPOCIType): sword;
2878 Result := OracleAPI.OCITypeByRef(env, err, type_ref, pin_duration, get_option,
2882 function TZOracle9iPlainDriver.TypeArrayByRef(env: POCIEnv; err: POCIError;
2883 array_len: ub4; type_ref: PPOCIRef; pin_duration: OCIDuration;
2884 get_option: OCITypeGetOpt; tdo: PPOCIType): sword;
2886 Result := OracleAPI.OCITypeArrayByRef(env, err, array_len, type_ref,
2887 pin_duration, get_option, tdo);
2890 function TZOracle9iPlainDriver.TypeName(env: POCIEnv; err: POCIError;
2891 tdo: POCIType; n_length: Pub4): poratext;
2893 Result := OracleAPI.OCITypeName(env, err, tdo, n_length);
2896 function TZOracle9iPlainDriver.TypeSchema(env: POCIEnv; err: POCIError;
2897 const tdo: POCIType; n_length: Pub4): poratext;
2899 Result := OracleAPI.OCITypeSchema(env, err, tdo, n_length);
2902 function TZOracle9iPlainDriver.TypeTypeCode(env: POCIEnv; err: POCIError;
2903 const tdo: POCIType): OCITypeCode;
2905 Result := OracleAPI.OCITypeTypeCode(env, err, tdo);
2908 function TZOracle9iPlainDriver.TypeCollTypeCode(env: POCIEnv; err:POCIError;
2909 const tdo: POCIType): OCITypeCode;
2911 Result := OracleAPI.OCITypeCollTypeCode(env, err, tdo);
2914 function TZOracle9iPlainDriver.TypeVersion(env: POCIEnv; err: POCIError;
2915 const tdo: POCIType; v_length: Pub4): poratext;
2917 Result := OracleAPI.OCITypeVersion(env, err, tdo, v_length);
2920 function TZOracle9iPlainDriver.TypeAttrs(env: POCIEnv; err: POCIError;
2921 const tdo:POCIType): ub4;
2923 Result := OracleAPI.OCITypeAttrs(env, err, tdo);
2926 function TZOracle9iPlainDriver.TypeMethods(env: POCIEnv; err: POCIError;
2927 const tdo: POCIType): ub4;
2929 Result := OracleAPI.OCITypeMethods(env, err, tdo);
2932 function TZOracle9iPlainDriver.TypeElemName(env: POCIEnv; err: POCIError;
2933 const elem: POCITypeElem; n_length:Pub4): poratext;
2935 Result := OracleAPI.OCITypeElemName(env, err, elem, n_length);
2938 function TZOracle9iPlainDriver.TypeElemTypeCode(env: POCIEnv; err: POCIError;
2939 const elem: POCITypeElem): OCITypeCode;
2941 Result := OracleAPI.OCITypeElemTypeCode(env, err, elem);
2944 function TZOracle9iPlainDriver.TypeElemType(env: POCIEnv; err: POCIError;
2945 const elem: POCITypeElem; elem_tdo:PPOCIType): sword;
2947 Result := OracleAPI.OCITypeElemType(env, err, elem, elem_tdo);
2950 function TZOracle9iPlainDriver.TypeElemFlags(env: POCIEnv; err: POCIError;
2951 const elem: POCITypeElem): ub4;
2953 Result := OracleAPI.OCITypeElemFlags(env, err, elem);
2956 function TZOracle9iPlainDriver.TypeElemNumPrec(env: POCIEnv; err: POCIError;
2957 const elem: POCITypeElem): ub1;
2959 Result := OracleAPI.OCITypeElemNumPrec(env, err, elem);
2962 function TZOracle9iPlainDriver.TypeElemNumScale(env: POCIEnv; err: POCIError;
2963 const elem: POCITypeElem): sb1;
2965 Result := OracleAPI.OCITypeElemNumScale(env, err, elem);
2968 function TZOracle9iPlainDriver.TypeElemLength(env: POCIEnv; err: POCIError;
2969 const elem:POCITypeElem): ub4;
2971 Result := OracleAPI.OCITypeElemLength(env, err, elem);
2974 function TZOracle9iPlainDriver.TypeElemCharSetID(env: POCIEnv; err: POCIError;
2975 const elem: POCITypeElem): ub2;
2977 Result := OracleAPI.OCITypeElemCharSetID(env, err, elem);
2980 function TZOracle9iPlainDriver.TypeElemCharSetForm(env: POCIEnv; err: POCIError;
2981 const elem: POCITypeElem): ub2;
2983 Result := OracleAPI.OCITypeElemCharSetForm(env, err, elem);
2986 function TZOracle9iPlainDriver.TypeElemParameterizedType(env: POCIEnv;
2987 err: POCIError; const elem: POCITypeElem; type_stored: PPOCIType): sword;
2989 Result := OracleAPI.OCITypeElemParameterizedType(env, err, elem, type_stored);
2992 function TZOracle9iPlainDriver.TypeElemExtTypeCode(env: POCIEnv; err: POCIError;
2993 const elem: POCITypeElem): OCITypeCode;
2995 Result := OracleAPI.OCITypeElemExtTypeCode(env, err, elem);
2998 function TZOracle9iPlainDriver.TypeAttrByName(env: POCIEnv; err: POCIError;
2999 const tdo: POCIType; const name: Poratext; const n_length: ub4;
3000 elem: PPOCITypeElem): sword;
3002 Result := OracleAPI.OCITypeAttrByName(env, err, tdo, name, n_length, elem);
3005 function TZOracle9iPlainDriver.TypeAttrNext(env: POCIEnv; err: POCIError;
3006 iterator_ort: POCITypeIter; elem: PPOCITypeElem): sword;
3008 Result := OracleAPI.OCITypeAttrNext(env, err, iterator_ort, elem);
3011 function TZOracle9iPlainDriver.TypeCollElem(env: POCIEnv; err: POCIError;
3012 const tdo:POCIType; element: PPOCITypeElem): sword;
3014 Result := OracleAPI.OCITypeCollElem(env, err, tdo, element);
3017 function TZOracle9iPlainDriver.TypeCollSize(env: POCIEnv; err: POCIError;
3018 const tdo: POCIType; num_elems: Pub4): sword;
3020 Result := OracleAPI.OCITypeCollSize(env, err, tdo, num_elems);
3023 function TZOracle9iPlainDriver.TypeCollExtTypeCode(env: POCIEnv; err: POCIError;
3024 const tdo:POCIType; sqt_code: POCITypeCode): sword;
3026 Result := OracleAPI.OCITypeCollExtTypeCode(env, err, tdo, sqt_code);
3029 function TZOracle9iPlainDriver.TypeMethodOverload(env: POCIEnv; err: POCIError;
3030 const tdo: POCIType; const method_name: Poratext;
3031 const m_length: ub4): ub4;
3033 Result := OracleAPI.OCITypeMethodOverload(env, err, tdo, method_name,
3037 function TZOracle9iPlainDriver.TypeMethodByName(env: POCIEnv; err: POCIError;
3038 const tdo: POCIType; const method_name: Poratext; const m_length: ub4;
3039 mdos: PPOCITypeMethod): sword;
3041 Result := OracleAPI.OCITypeMethodByName(env, err, tdo, method_name, m_length,
3045 function TZOracle9iPlainDriver.TypeMethodNext(env: POCIEnv; err: POCIError;
3046 iterator_ort: POCITypeIter; mdo: PPOCITypeMethod): sword;
3048 Result := OracleAPI.OCITypeMethodNext(env, err, iterator_ort, mdo);
3051 function TZOracle9iPlainDriver.TypeMethodName(env:POCIEnv; err: POCIError;
3052 const mdo: POCITypeMethod; n_length: Pub4): poratext;
3054 Result := OracleAPI.OCITypeMethodName(env, err, mdo, n_length);
3057 function TZOracle9iPlainDriver.TypeMethodEncap(env: POCIEnv; err: POCIError;
3058 const mdo: POCITypeMethod): OCITypeEncap;
3060 Result := OracleAPI.OCITypeMethodEncap(env, err, mdo);
3063 function TZOracle9iPlainDriver.TypeMethodFlags(env: POCIEnv; err: POCIError;
3064 const mdo:POCITypeMethod): OCITypeMethodFlag;
3066 Result := OracleAPI.OCITypeMethodFlags(env, err, mdo);
3069 function TZOracle9iPlainDriver.TypeMethodMap(env: POCIEnv; err: POCIError;
3070 const tdo: POCIType; mdo: PPOCITypeMethod): sword;
3072 Result := OracleAPI.OCITypeMethodMap(env, err, tdo, mdo);
3075 function TZOracle9iPlainDriver.TypeMethodOrder(env: POCIEnv; err: POCIError;
3076 const tdo: POCIType; mdo: PPOCITypeMethod): sword;
3078 Result := OracleAPI.OCITypeMethodOrder(env, err, tdo, mdo);
3081 function TZOracle9iPlainDriver.TypeMethodParams(env: POCIEnv; err: POCIError;
3082 const mdo: POCITypeMethod): ub4;
3084 Result := OracleAPI.OCITypeMethodParams(env, err, mdo);
3087 function TZOracle9iPlainDriver.TypeResult(env: POCIEnv; err: POCIError;
3088 const mdo: POCITypeMethod; elem: PPOCITypeElem): sword;
3090 Result := OracleAPI.OCITypeResult(env, err, mdo, elem);
3093 function TZOracle9iPlainDriver.TypeParamByPos(env: POCIEnv; err: POCIError;
3094 const mdo: POCITypeMethod; const position: ub4;
3095 elem: PPOCITypeElem): sword;
3097 Result := OracleAPI.OCITypeParamByPos(env, err, mdo, position, elem);
3100 function TZOracle9iPlainDriver.TypeParamByName(env: POCIEnv; err: POCIError;
3101 const mdo: POCITypeMethod; const name: Poratext; const n_length: ub4;
3102 elem:PPOCITypeElem): sword;
3104 Result := OracleAPI.OCITypeParamByName(env, err, mdo, name, n_length, elem);
3107 function TZOracle9iPlainDriver.TypeParamPos(env: POCIEnv; err: POCIError;
3108 const mdo: POCITypeMethod; const name: Poratext; const n_length: ub4;
3109 position: Pub4; elem: PPOCITypeElem): sword;
3111 Result := OracleAPI.OCITypeParamPos(env, err, mdo, name, n_length, position,
3115 function TZOracle9iPlainDriver.TypeElemParamMode(env: POCIEnv; err: POCIError;
3116 const elem: POCITypeElem): OCITypeParamMode;
3118 Result := OracleAPI.OCITypeElemParamMode(env, err, elem);
3121 function TZOracle9iPlainDriver.TypeElemDefaultValue(env: POCIEnv;
3122 err: POCIError; const elem: POCITypeElem; d_v_length: Pub4): poratext;
3124 Result := OracleAPI.OCITypeElemDefaultValue(env, err, elem, d_v_length);
3127 function TZOracle9iPlainDriver.TypeVTInit(env: POCIEnv; err: POCIError): sword;
3129 Result := OracleAPI.OCITypeVTInit(env, err);
3132 function TZOracle9iPlainDriver.TypeVTInsert(env: POCIEnv; err: POCIError;
3133 const schema_name: Poratext; const s_n_length: ub4;
3134 const type_name: Poratext; const t_n_length: ub4;
3135 const user_version:Poratext; const u_v_length:ub4): sword;
3137 Result := OracleAPI.OCITypeVTInsert(env, err, schema_name, s_n_length,
3138 type_name, t_n_length, user_version, u_v_length);
3141 function TZOracle9iPlainDriver.TypeVTSelect(env: POCIEnv; err: POCIError;
3142 const schema_name: Poratext; const s_n_length: ub4;
3143 const type_name: Poratext; const t_n_length: ub4; user_version: PPoratext;
3144 u_v_length: Pub4; version: Pub2): sword;
3146 Result := OracleAPI.OCITypeVTSelect(env, err, schema_name, s_n_length,
3147 type_name, t_n_length, user_version, u_v_length, version);