~ubuntu-branches/debian/lenny/fpc/lenny

« back to all changes in this revision

Viewing changes to packages/base/oracle/oraoci.pp

  • Committer: Bazaar Package Importer
  • Author(s): Mazen Neifer, Torsten Werner, Mazen Neifer
  • Date: 2008-05-17 17:12:11 UTC
  • mfrom: (3.1.9 intrepid)
  • Revision ID: james.westby@ubuntu.com-20080517171211-9qi33xhd9evfa0kg
Tags: 2.2.0-dfsg1-9
[ Torsten Werner ]
* Add Mazen Neifer to Uploaders field.

[ Mazen Neifer ]
* Moved FPC sources into a version dependent directory from /usr/share/fpcsrc
  to /usr/share/fpcsrc/${FPCVERSION}. This allow installing more than on FPC
  release.
* Fixed far call issue in compiler preventing building huge binearies.
  (closes: #477743)
* Updated building dependencies, recomennded and suggested packages.
* Moved fppkg to fp-utils as it is just a helper tool and is not required by
  compiler.

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
{
2
 
    $Id: oraoci.pp,v 1.3 2003/08/09 15:19:01 marco Exp $
3
 
    Copyright (c) 1999-2000 by Pavel Stingl <stingp1.eti@mail.cez.cz>
4
 
 
5
 
 
6
 
    Oracle Call Interface Translation
7
 
 
8
 
    See the file COPYING.FPC, included in this distribution,
9
 
    for details about the copyright.
10
 
 
11
 
    This program is distributed in the hope that it will be useful,
12
 
    but WITHOUT ANY WARRANTY; without even the implied warranty of
13
 
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
14
 
 
15
 
 **********************************************************************}
16
 
unit OraOCI;
17
 
 
18
 
{$MODE FPC}
19
 
{$linklib clntsh}
20
 
{$linklib common}
21
 
{$linklib core4}
22
 
{$linklib nlsrtl3}
23
 
{$ifndef BSD}
24
 
{$linklib dl}
25
 
{$ENDIF}
26
 
{$linklib c}
27
 
 
28
 
interface
29
 
 
30
 
  type
31
 
    sb1                 = shortint;
32
 
    ub1                 = byte;
33
 
    sb2                 = integer;
34
 
    ub2                 = word;
35
 
    sb4                 = longint;
36
 
    ub4                 = cardinal;
37
 
    eb1                 = byte;
38
 
    eb2                 = word;
39
 
    eb4                 = cardinal;
40
 
    sword               = integer;
41
 
    uword               = integer;
42
 
    eword               = integer;
43
 
    PDouble             = ^double;
44
 
    PLongint            = ^longint;
45
 
    PPointer            = ^pointer;
46
 
    PWord               = ^word;
47
 
    PBoolean            = ^boolean;
48
 
    PCardinal           = ^cardinal;
49
 
    PByte               = ^byte;
50
 
 
51
 
 
52
 
    POCITime = ^OCITime;
53
 
    OCITime = packed record
54
 
      OCITimeHH      : ub1;
55
 
      OCITimeMM      : ub1;
56
 
      OCITimeSS      : ub1;
57
 
    end;
58
 
 
59
 
    POCIDate = ^OCIDate;
60
 
    OCIDate = packed record
61
 
      OCIDateYYYY    : sb2;
62
 
      OCIDateMM      : ub1;
63
 
      OCIDateDD      : ub1;
64
 
      OCIDateTime    : OCITime;
65
 
    end;
66
 
 
67
 
    POCIDateTime = ^TOCIDate;
68
 
    TOCIDate = packed record
69
 
      Year           : sb2;
70
 
      Month          : ub1;
71
 
      Day            : ub1;
72
 
      Hour           : ub1;
73
 
      Min            : ub1;
74
 
      Sec            : ub1;
75
 
    end;
76
 
 
77
 
    PCDA_DEF = ^TCDA_DEF;
78
 
    TCDA_DEF = packed record
79
 
      v2_rc             : sb2;
80
 
      ft                : ub2;
81
 
      rpc               : ub4;
82
 
      peo               : ub2;
83
 
      fc                : ub1;
84
 
      rcs1              : ub1;
85
 
      rc                : ub2;
86
 
      wrn               : ub1;
87
 
      rcs2              : ub1;
88
 
      rcs3              : sword;
89
 
        rid             : record
90
 
          rd            : record
91
 
            rcs4        : ub4;
92
 
            rcs5        : ub2;
93
 
            rcs6        : ub1;
94
 
          end;
95
 
          rcs7          : ub4;
96
 
          rcs8          : ub2;
97
 
        end;
98
 
      ose               : sword;
99
 
      chk               : ub1;
100
 
      rcsp              : pointer;
101
 
      filler            : array [39..64] of byte;
102
 
    end;
103
 
 
104
 
    PLDA_DEF            = ^TCDA_DEF;
105
 
    TLDA_DEF            = TCDA_DEF;
106
 
 
107
 
 
108
 
 
109
 
  const
110
 
    EB4MAXVAL           = 2147483647;
111
 
    EB4MINVAL           = 0;
112
 
    UB4MAXVAL           = $FFFFFFFF;
113
 
    UB4MINVAL           = 0;
114
 
    SB4MAXVAL           = 2147483647;
115
 
    SB4MINVAL           = -2147483647;
116
 
    MINEB4MAXVAL        = 2147483647;
117
 
    MAXEB4MINVAL        = 0;
118
 
    MINUB4MAXVAL        = $FFFFFFFF;
119
 
    MAXUB4MINVAL        = 0;
120
 
    MINSB4MAXVAL        = 2147483647;
121
 
    MAXSB4MINVAL        = -2147483647;
122
 
 
123
 
  const
124
 
     VARCHAR2_TYPE = 1;
125
 
     NUMBER_TYPE = 2;
126
 
     INT_TYPE = 3;
127
 
     FLOAT_TYPE = 4;
128
 
     STRING_TYPE = 5;
129
 
     ROWID_TYPE = 11;
130
 
     DATE_TYPE = 12;
131
 
 
132
 
     { OCI Environment Modes for opinit call  }
133
 
     OCI_EV_DEF = 0;            { default single-threaded environment  }
134
 
     OCI_EV_TSF = 1;            { thread-safe environment  }
135
 
 
136
 
     { OCI Logon Modes for olog call  }
137
 
     OCI_LM_DEF = 0;            { default login  }
138
 
     OCI_LM_NBL = 1;            { non-blocking logon  }
139
 
 
140
 
     OCI_ONE_PIECE = 0;         { there or this is the only piece  }
141
 
     OCI_FIRST_PIECE = 1;       { the first of many pieces  }
142
 
     OCI_NEXT_PIECE = 2;        { the next of many pieces  }
143
 
     OCI_LAST_PIECE = 3;        { the last piece of this column  }
144
 
 
145
 
     { input data types  }
146
 
     SQLT_CHR = 1;              { (ORANET TYPE) character string  }
147
 
     SQLT_NUM = 2;              { (ORANET TYPE) oracle numeric  }
148
 
     SQLT_INT = 3;              { (ORANET TYPE) integer  }
149
 
     SQLT_FLT = 4;              { (ORANET TYPE) Floating point number  }
150
 
     SQLT_STR = 5;              { zero terminated string  }
151
 
     SQLT_VNU = 6;              { NUM with preceding length byte  }
152
 
     SQLT_PDN = 7;              { (ORANET TYPE) Packed Decimal Numeric  }
153
 
     SQLT_LNG = 8;              { long  }
154
 
     SQLT_VCS = 9;              { Variable character string  }
155
 
     SQLT_NON = 10;             { Null/empty PCC Descriptor entry  }
156
 
     SQLT_RID = 11;             { rowid  }
157
 
     SQLT_DAT = 12;             { date in oracle format  }
158
 
     SQLT_VBI = 15;             { binary in VCS format  }
159
 
     SQLT_BIN = 23;             { binary data(DTYBIN)  }
160
 
     SQLT_LBI = 24;             { long binary  }
161
 
     SQLT_UIN = 68;             { unsigned integer  }
162
 
     SQLT_SLS = 91;             { Display sign leading separate  }
163
 
     SQLT_LVC = 94;             { Longer longs (char)  }
164
 
     SQLT_LVB = 95;             { Longer long binary  }
165
 
     SQLT_AFC = 96;             { Ansi fixed char  }
166
 
     SQLT_AVC = 97;             { Ansi Var char  }
167
 
     SQLT_CUR = 102;            { cursor  type  }
168
 
     SQLT_RDD = 104;            { rowid descriptor  }
169
 
     SQLT_LAB = 105;            { label type  }
170
 
     SQLT_OSL = 106;            { oslabel type  }
171
 
     SQLT_NTY = 108;            { named object type  }
172
 
     SQLT_REF = 110;            { ref type  }
173
 
     SQLT_CLOB = 112;           { character lob  }
174
 
     SQLT_BLOB = 113;           { binary lob  }
175
 
     SQLT_BFILEE = 114;         { binary file lob  }
176
 
     SQLT_CFILEE = 115;         { character file lob  }
177
 
     SQLT_RSET = 116;           { result set type  }
178
 
     SQLT_NCO = 122;            { named collection type (varray or nested table)  }
179
 
     SQLT_VST = 155;            { OCIString type  }
180
 
     SQLT_ODT = 156;            { OCIDate type  }
181
 
 
182
 
     { binary file lob  }
183
 
     SQLT_FILE = SQLT_BFILEE;
184
 
     SQLT_CFILE = SQLT_CFILEE;
185
 
     SQLT_BFILE = SQLT_BFILEE;
186
 
 
187
 
     { CHAR/NCHAR/VARCHAR2/NVARCHAR2/CLOB/NCLOB char set "form" information  }
188
 
     SQLCS_IMPLICIT = 1;        { for CHAR, VARCHAR2, CLOB w/o a specified set  }
189
 
     SQLCS_NCHAR = 2;           { for NCHAR, NCHAR VARYING, NCLOB  }
190
 
     SQLCS_EXPLICIT = 3;        { for CHAR, etc, with "CHARACTER SET ..." syntax  }
191
 
     SQLCS_FLEXIBLE = 4;        { for PL/SQL "flexible" parameters  }
192
 
     SQLCS_LIT_NULL = 5;        { for typecheck of NULL and empty_clob() lits  }
193
 
 
194
 
     { OCI Modes }
195
 
     OCI_DEFAULT = $00;  { the default value for parameters and attributes  }
196
 
     OCI_THREADED = $01;  { the application is in threaded environment  }
197
 
     OCI_OBJECT = $02;  { the application is in object environment  }
198
 
     OCI_NON_BLOCKING = $04;  { non blocking mode of operation  }
199
 
     OCI_ENV_NO_MUTEX = $08;  { the environment handle will not be protected
200
 
                                 by a mutex internally  }
201
 
 
202
 
     { OCI Handle Types }
203
 
     { handle types range from 1 - 49  }
204
 
     OCI_HTYPE_FIRST = 1;  { start value of handle type  }
205
 
     OCI_HTYPE_ENV = 1;  { environment handle  }
206
 
     OCI_HTYPE_ERROR = 2;  { error handle  }
207
 
     OCI_HTYPE_SVCCTX = 3;  { service handle  }
208
 
     OCI_HTYPE_STMT = 4;  { statement handle  }
209
 
     OCI_HTYPE_BIND = 5;  { bind handle  }
210
 
     OCI_HTYPE_DEFINE = 6;  { define handle  }
211
 
     OCI_HTYPE_DESCRIBE = 7;  { describe handle  }
212
 
     OCI_HTYPE_SERVER = 8;  { server handle  }
213
 
     OCI_HTYPE_SESSION = 9;  { authentication handle  }
214
 
     OCI_HTYPE_TRANS = 10;  { transaction handle  }
215
 
     OCI_HTYPE_COMPLEXOBJECT = 11;  { complex object retrieval handle  }
216
 
     OCI_HTYPE_SECURITY = 12;  { security handle  }
217
 
     OCI_HTYPE_LAST = 12;  { last value of a handle type  }
218
 
 
219
 
     { Descriptor Types }
220
 
     { descriptor values range from 50 - 255  }
221
 
     OCI_DTYPE_FIRST = 50;  { start value of descriptor type  }
222
 
     OCI_DTYPE_LOB = 50;  { lob  locator  }
223
 
     OCI_DTYPE_SNAP = 51;  { snapshot descriptor  }
224
 
     OCI_DTYPE_RSET = 52;  { result set descriptor  }
225
 
     OCI_DTYPE_PARAM = 53;  { a parameter descriptor obtained from ocigparm  }
226
 
     OCI_DTYPE_ROWID = 54;  { rowid descriptor  }
227
 
     OCI_DTYPE_COMPLEXOBJECTCOMP = 55;  { complex object retrieval descriptor  }
228
 
     OCI_DTYPE_FILE = 56;  { File Lob locator  }
229
 
     OCI_DTYPE_AQENQ_OPTIONS = 57;  { enqueue options  }
230
 
     OCI_DTYPE_AQDEQ_OPTIONS = 58;  { dequeue options  }
231
 
     OCI_DTYPE_AQMSG_PROPERTIES = 59;  { message properties  }
232
 
     OCI_DTYPE_AQAGENT = 60;  { aq agent  }
233
 
     OCI_DTYPE_LAST = 60;  { last value of a descriptor type  }
234
 
 
235
 
     { Object Ptr Types }
236
 
     OCI_OTYPE_NAME = 1;  { object name  }
237
 
     OCI_OTYPE_REF = 2;  { REF to TDO  }
238
 
     OCI_OTYPE_PTR = 3;  { PTR to TDO  }
239
 
 
240
 
  { Attribute Types }
241
 
  { the OCI function code  }
242
 
     OCI_ATTR_FNCODE = 1;  { the OCI function code  }
243
 
     OCI_ATTR_OBJECT = 2;  { is the environment initialized in object mode  }
244
 
     OCI_ATTR_NONBLOCKING_MODE = 3;  { non blocking mode  }
245
 
     OCI_ATTR_SQLCODE = 4;  { the SQL verb  }
246
 
     OCI_ATTR_ENV = 5;  { the environment handle  }
247
 
     OCI_ATTR_SERVER = 6;  { the server handle  }
248
 
     OCI_ATTR_SESSION = 7;  { the user session handle  }
249
 
     OCI_ATTR_TRANS = 8;  { the transaction handle  }
250
 
     OCI_ATTR_ROW_COUNT = 9;  { the rows processed so far  }
251
 
     OCI_ATTR_SQLFNCODE = 10;  { the SQL verb of the statement  }
252
 
     OCI_ATTR_PREFETCH_ROWS = 11;  { sets the number of rows to prefetch  }
253
 
     OCI_ATTR_NESTED_PREFETCH_ROWS = 12;  { the prefetch rows of nested table }
254
 
     OCI_ATTR_PREFETCH_MEMORY = 13;  { memory limit for rows fetched  }
255
 
     OCI_ATTR_NESTED_PREFETCH_MEMORY = 14;  { memory limit for nested rows  }
256
 
     OCI_ATTR_CHAR_COUNT = 15;  { this specifies the bind and define size in characters  }
257
 
     OCI_ATTR_PDSCL = 16;  { packed decimal scale  }
258
 
     OCI_ATTR_PDFMT = 17;  { packed decimal format  }
259
 
     OCI_ATTR_PARAM_COUNT = 18;  { number of column in the select list  }
260
 
     OCI_ATTR_ROWID = 19;  { the rowid  }
261
 
     OCI_ATTR_CHARSET = 20;  { the character set value  }
262
 
     OCI_ATTR_NCHAR = 21;  { NCHAR type  }
263
 
     OCI_ATTR_USERNAME = 22;  { username attribute  }
264
 
     OCI_ATTR_PASSWORD = 23;  { password attribute  }
265
 
     OCI_ATTR_STMT_TYPE = 24;  { statement type  }
266
 
     OCI_ATTR_INTERNAL_NAME = 25;  { user friendly global name  }
267
 
     OCI_ATTR_EXTERNAL_NAME = 26;  { the internal name for global txn  }
268
 
     OCI_ATTR_XID = 27;  { XOPEN defined global transaction id  }
269
 
     OCI_ATTR_TRANS_LOCK = 28;  { transaction lock }
270
 
     OCI_ATTR_TRANS_NAME = 29;  { string to identify a global transaction  }
271
 
     OCI_ATTR_HEAPALLOC = 30;  { memory allocated on the heap  }
272
 
     OCI_ATTR_CHARSET_ID = 31;  { Character Set ID  }
273
 
     OCI_ATTR_CHARSET_FORM = 32;  { Character Set Form  }
274
 
     OCI_ATTR_MAXDATA_SIZE = 33;  { Maximumsize of data on the server   }
275
 
     OCI_ATTR_CACHE_OPT_SIZE = 34;  { object cache optimal size  }
276
 
     OCI_ATTR_CACHE_MAX_SIZE = 35;  { object cache maximum size percentage  }
277
 
     OCI_ATTR_PINOPTION = 36;  { object cache default pin option  }
278
 
     OCI_ATTR_ALLOC_DURATION = 37;  { object cache default allocation duration  }
279
 
     OCI_ATTR_PIN_DURATION = 38;  { object cache default pin duration  }
280
 
     OCI_ATTR_FDO = 39;  { Format Descriptor object attribute  }
281
 
     OCI_ATTR_POSTPROCESSING_CALLBACK = 40;  { Callback to process outbind data  }
282
 
     OCI_ATTR_POSTPROCESSING_CONTEXT = 41;  { Callback context to process outbind data  }
283
 
     OCI_ATTR_ROWS_RETURNED = 42;  { Number of rows returned in current iter - for Bind handles  }
284
 
     OCI_ATTR_FOCBK = 43;  { Failover Callback attribute  }
285
 
     OCI_ATTR_IN_V8_MODE = 44;  { is the server/service context in V8 mode  }
286
 
     OCI_ATTR_LOBEMPTY = 45;  { empty lob ?  }
287
 
     OCI_ATTR_SESSLANG = 46;  { session language handle  }
288
 
 
289
 
  { Enqueue Options }
290
 
     OCI_ATTR_VISIBILITY = 47;  { visibility  }
291
 
     OCI_ATTR_RELATIVE_MSGID = 48;  { relative message id  }
292
 
     OCI_ATTR_SEQUENCE_DEVIATION = 49;  { sequence deviation  }
293
 
 
294
 
  { Dequeue Options }
295
 
     OCI_ATTR_CONSUMER_NAME = 50;  { consumer name  }
296
 
     OCI_ATTR_DEQ_MODE = 51;  { dequeue mode  }
297
 
     OCI_ATTR_NAVIGATION = 52;  { navigation  }
298
 
     OCI_ATTR_WAIT = 53;  { wait  }
299
 
     OCI_ATTR_DEQ_MSGID = 54;  { dequeue message id  }
300
 
 
301
 
  { Message Properties }
302
 
     OCI_ATTR_PRIORITY = 55;  { priority  }
303
 
     OCI_ATTR_DELAY = 56;  { delay  }
304
 
     OCI_ATTR_EXPIRATION = 57;  { expiration  }
305
 
     OCI_ATTR_CORRELATION = 58;  { correlation id  }
306
 
     OCI_ATTR_ATTEMPTS = 59;  { # of attempts  }
307
 
     OCI_ATTR_RECIPIENT_LIST = 60;  { recipient list  }
308
 
     OCI_ATTR_EXCEPTION_QUEUE = 61;  { exception queue name  }
309
 
     OCI_ATTR_ENQ_TIME = 62;  { enqueue time (only OCIAttrGet)  }
310
 
     OCI_ATTR_MSG_STATE = 63;  { message state (only OCIAttrGet)  }
311
 
 
312
 
  { AQ Agent }
313
 
     OCI_ATTR_AGENT_NAME = 64;  { agent name  }
314
 
     OCI_ATTR_AGENT_ADDRESS = 65;  { agent address  }
315
 
     OCI_ATTR_AGENT_PROTOCOL = 66;  { agent protocol  }
316
 
 
317
 
  { Parameter Attribute Types }
318
 
     OCI_ATTR_UNK = 101;  { unknown attribute  }
319
 
     OCI_ATTR_NUM_COLS = 102;  { number of columns  }
320
 
     OCI_ATTR_LIST_COLUMNS = 103;  { parameter of the column list  }
321
 
     OCI_ATTR_RDBA = 104;  { DBA of the segment header  }
322
 
     OCI_ATTR_CLUSTERED = 105;  { whether the table is clustered  }
323
 
     OCI_ATTR_PARTITIONED = 106;  { whether the table is partitioned  }
324
 
     OCI_ATTR_INDEX_ONLY = 107;  { whether the table is index only  }
325
 
     OCI_ATTR_LIST_ARGUMENTS = 108;  { parameter of the argument list  }
326
 
     OCI_ATTR_LIST_SUBPROGRAMS = 109;  { parameter of the subprogram list  }
327
 
     OCI_ATTR_REF_TDO = 110;  { REF to the type descriptor  }
328
 
     OCI_ATTR_LINK = 111;  { the database link name  }
329
 
     OCI_ATTR_MIN = 112;  { minimum value  }
330
 
     OCI_ATTR_MAX = 113;  { maximum value  }
331
 
     OCI_ATTR_INCR = 114;  { increment value  }
332
 
     OCI_ATTR_CACHE = 115;  { number of sequence numbers cached  }
333
 
     OCI_ATTR_ORDER = 116;  { whether the sequence is ordered  }
334
 
     OCI_ATTR_HW_MARK = 117;  { high-water mark  }
335
 
     OCI_ATTR_TYPE_SCHEMA = 118;  { type's schema name  }
336
 
     OCI_ATTR_TIMESTAMP = 119;  { timestamp of the object  }
337
 
     OCI_ATTR_NUM_ATTRS = 120;  { number of attributes  }
338
 
     OCI_ATTR_NUM_PARAMS = 121;  { number of parameters  }
339
 
     OCI_ATTR_OBJID = 122;  { object id for a table or view  }
340
 
     OCI_ATTR_PTYPE = 123;  { type of info described by  }
341
 
     OCI_ATTR_PARAM = 124;  { parameter descriptor  }
342
 
     OCI_ATTR_OVERLOAD_ID = 125;  { overload ID for funcs and procs  }
343
 
     OCI_ATTR_TABLESPACE = 126;  { table name space  }
344
 
     OCI_ATTR_TDO = 127;  { TDO of a type  }
345
 
     OCI_ATTR_PARSE_ERROR_OFFSET = 128;  { Parse Error offset  }
346
 
 
347
 
  { Credential Types }
348
 
     OCI_CRED_RDBMS = 1;  { database username/password  }
349
 
     OCI_CRED_EXT = 2;  { externally provided credentials  }
350
 
 
351
 
  { Error Return Values }
352
 
     OCI_SUCCESS = 0;  { maps to SQL_SUCCESS of SAG CLI  }
353
 
     OCI_SUCCESS_WITH_INFO = 1;  { maps to SQL_SUCCESS_WITH_INFO  }
354
 
     OCI_NO_DATA = 100;  { maps to SQL_NO_DATA  }
355
 
     OCI_ERROR = -(1);  { maps to SQL_ERROR  }
356
 
     OCI_INVALID_HANDLE = -(2);  { maps to SQL_INVALID_HANDLE  }
357
 
     OCI_NEED_DATA = 99;  { maps to SQL_NEED_DATA  }
358
 
     OCI_STILL_EXECUTING = -(3123);  { OCI would block error  }
359
 
     OCI_CONTINUE = -(24200);  { Continue with the body of the OCI function  }
360
 
 
361
 
  { Parsing Syntax Types }
362
 
     OCI_V7_SYNTAX = 2;  { V7 language  }
363
 
     OCI_V8_SYNTAX = 3;  { V8 language  }
364
 
     OCI_NTV_SYNTAX = 1;
365
 
     { Use what so ever is the native lang of server  }
366
 
     { these values must match the values defined in kpul.h  }
367
 
 
368
 
  { Scrollable Cursor Options }
369
 
     OCI_FETCH_NEXT = $02;  { next row  }
370
 
     OCI_FETCH_FIRST = $04;  { first row of the result set  }
371
 
     OCI_FETCH_LAST = $08;  { the last row of the result set  }
372
 
     OCI_FETCH_PRIOR = $10;  { the previous row relative to current  }
373
 
     OCI_FETCH_ABSOLUTE = $20;  { absolute offset from first  }
374
 
     OCI_FETCH_RELATIVE = $40;  { offset relative to current  }
375
 
 
376
 
  { Bind and Define Options }
377
 
     OCI_SB2_IND_PTR = $01;  { unused  }
378
 
     OCI_DATA_AT_EXEC = $02;  { data at execute time  }
379
 
     OCI_DYNAMIC_FETCH = $02;  { fetch dynamically  }
380
 
     OCI_PIECEWISE = $04;  { piecewise DMLs or fetch  }
381
 
 
382
 
  { Execution Modes }
383
 
     OCI_BATCH_MODE = $01;  { batch the oci statement for execution  }
384
 
     OCI_EXACT_FETCH = $02;  { fetch the exact rows specified  }
385
 
     OCI_KEEP_FETCH_STATE = $04;  { unused  }
386
 
     OCI_SCROLLABLE_CURSOR = $08;  { cursor scrollable  }
387
 
     OCI_DESCRIBE_ONLY = $10;  { only describe the statement  }
388
 
     OCI_COMMIT_ON_SUCCESS = $20;  { commit, if successful execution  }
389
 
 
390
 
  { Authentication Modes }
391
 
     OCI_MIGRATE = $0001;  { migratable auth context  }
392
 
     OCI_SYSDBA = $0002;  { for SYSDBA authorization  }
393
 
     OCI_SYSOPER = $0004;  { for SYSOPER authorization  }
394
 
     OCI_PRELIM_AUTH = $0008;  { for preliminary authorization  }
395
 
 
396
 
  { Piece Information }
397
 
     OCI_PARAM_IN = $01;  { in parameter  }
398
 
     OCI_PARAM_OUT = $02;  { out parameter  }
399
 
 
400
 
  { Transaction Start Flags }
401
 
  { NOTE: OCI_TRANS_JOIN and OCI_TRANS_NOMIGRATE not supported in 8.0.X        }
402
 
  { starts a new transaction branch  }
403
 
     OCI_TRANS_NEW = $00000001;  { starts a new transaction branch  }
404
 
     OCI_TRANS_JOIN = $00000002;  { join an existing transaction  }
405
 
     OCI_TRANS_RESUME = $00000004;  { resume this transaction  }
406
 
     OCI_TRANS_STARTMASK = $000000ff;
407
 
     OCI_TRANS_READONLY = $00000100;  { starts a readonly transaction  }
408
 
     OCI_TRANS_READWRITE = $00000200;  { starts a read-write transaction  }
409
 
     OCI_TRANS_SERIALIZABLE = $00000400;  { starts a serializable transaction  }
410
 
     OCI_TRANS_ISOLMASK = $0000ff00;
411
 
     OCI_TRANS_LOOSE = $00010000;  { a loosely coupled branch  }
412
 
     OCI_TRANS_TIGHT = $00020000;  { a tightly coupled branch  }
413
 
     OCI_TRANS_TYPEMASK = $000f0000;
414
 
     OCI_TRANS_NOMIGRATE = $00100000;  { non migratable transaction  }
415
 
 
416
 
  { Transaction End Flags }
417
 
     OCI_TRANS_TWOPHASE = $01000000;  { use two phase commit  }
418
 
 
419
 
  { AQ Constants
420
 
     NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE
421
 
     The following constants must match the PL/SQL dbms_aq constants
422
 
     NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE
423
 
    }
424
 
  { Visibility flags }
425
 
     OCI_ENQ_IMMEDIATE = 1;  { enqueue is an independent transaction  }
426
 
     OCI_ENQ_ON_COMMIT = 2;  { enqueue is part of current transaction  }
427
 
 
428
 
     OCI_DEQ_BROWSE = 1;  { read message without acquiring a lock  }
429
 
     OCI_DEQ_LOCKED = 2;  { read and obtain write lock on message  }
430
 
     OCI_DEQ_REMOVE = 3;  { read the message and delete it  }
431
 
 
432
 
  { Dequeue navigation flags }
433
 
     OCI_DEQ_FIRST_MSG = 1;  { get first message at head of queue  }
434
 
     OCI_DEQ_NEXT_MSG = 3;  { next message that is available  }
435
 
     OCI_DEQ_NEXT_TRANSACTION = 2;  { get first message of next txn group  }
436
 
 
437
 
  { Message states }
438
 
     OCI_MSG_WAITING = 1;  { the message delay has not yet completed  }
439
 
     OCI_MSG_READY = 0;  { the message is ready to be processed  }
440
 
     OCI_MSG_PROCESSED = 2;  { the message has been processed  }
441
 
     OCI_MSG_EXPIRED = 3;  { message has moved to exception queue  }
442
 
 
443
 
  { Sequence deviation }
444
 
     OCI_ENQ_BEFORE = 2;  { enqueue message before another message  }
445
 
     OCI_ENQ_TOP = 3;  { enqueue message before all messages  }
446
 
 
447
 
  { Visibility flags }
448
 
     OCI_DEQ_IMMEDIATE = 1;  { dequeue is an independent transaction  }
449
 
     OCI_DEQ_ON_COMMIT = 2;  { dequeue is part of current transaction  }
450
 
 
451
 
  { Wait }
452
 
     OCI_DEQ_WAIT_FOREVER = -(1);  { wait forever if no message available  }
453
 
     OCI_DEQ_NO_WAIT = 0;  { do not wait if no message is available  }
454
 
 
455
 
  { Delay }
456
 
     OCI_MSG_NO_DELAY = 0;  { message is available immediately  }
457
 
 
458
 
  { Expiration }
459
 
     OCI_MSG_NO_EXPIRATION = -(1);  { message will never expire  }
460
 
 
461
 
  { -------------------------- END AQ Constants -----------------------------  }
462
 
  {-----------Object Types      Not to be Used      -------------------------- }
463
 
  { Deprecated  }
464
 
     OCI_OTYPE_UNK = 0;
465
 
     OCI_OTYPE_TABLE = 1;
466
 
     OCI_OTYPE_VIEW = 2;
467
 
     OCI_OTYPE_SYN = 3;
468
 
     OCI_OTYPE_PROC = 4;
469
 
     OCI_OTYPE_FUNC = 5;
470
 
     OCI_OTYPE_PKG = 6;
471
 
     OCI_OTYPE_STMT = 7;
472
 
 
473
 
  { Describe Handle Parameter Attributes }
474
 
  { Attributes common to Columns and Stored Procs  }
475
 
     OCI_ATTR_DATA_SIZE = 1;  { maximum size of the data  }
476
 
     OCI_ATTR_DATA_TYPE = 2;  { the SQL type of the column/argument  }
477
 
     OCI_ATTR_DISP_SIZE = 3;  { the display size  }
478
 
     OCI_ATTR_NAME = 4;  { the name of the column/argument  }
479
 
     OCI_ATTR_PRECISION = 5;  { precision if number type  }
480
 
     OCI_ATTR_SCALE = 6;  { scale if number type  }
481
 
     OCI_ATTR_IS_NULL = 7;  { is it null ?  }
482
 
     OCI_ATTR_TYPE_NAME = 8;  { name of the named data type or a package name for package private types  }
483
 
     OCI_ATTR_SCHEMA_NAME = 9;  { the schema name  }
484
 
     OCI_ATTR_SUB_NAME = 10;  { type name if package private type  }
485
 
     OCI_ATTR_POSITION = 11;  { relative position of col/arg in the list of cols/args  }
486
 
     OCI_ATTR_COMPLEXOBJECTCOMP_TYPE = 50;  { complex object retrieval parameter attributes  }
487
 
     OCI_ATTR_COMPLEXOBJECTCOMP_TYPE_LEVEL = 51;
488
 
     OCI_ATTR_COMPLEXOBJECT_LEVEL = 52;
489
 
     OCI_ATTR_COMPLEXOBJECT_COLL_OUTOFLINE = 53;
490
 
 
491
 
  { Only Columns  }
492
 
     OCI_ATTR_DISP_NAME = 100;  { the display name  }
493
 
 
494
 
  {Only Stored Procs  }
495
 
     OCI_ATTR_OVERLOAD = 210;  { is this position overloaded  }
496
 
     OCI_ATTR_LEVEL = 211;  { level for structured types  }
497
 
     OCI_ATTR_HAS_DEFAULT = 212;  { has a default value  }
498
 
     OCI_ATTR_IOMODE = 213;  { in, out inout  }
499
 
     OCI_ATTR_RADIX = 214;  { returns a radix  }
500
 
     OCI_ATTR_NUM_ARGS = 215;  { total number of arguments  }
501
 
 
502
 
  { only named type attributes  }
503
 
     OCI_ATTR_TYPECODE = 216;  { object or collection  }
504
 
     OCI_ATTR_COLLECTION_TYPECODE = 217;  { varray or nested table  }
505
 
     OCI_ATTR_VERSION = 218;  { user assigned version  }
506
 
     OCI_ATTR_IS_INCOMPLETE_TYPE = 219;  { is this an incomplete type  }
507
 
     OCI_ATTR_IS_SYSTEM_TYPE = 220;  { a system type  }
508
 
     OCI_ATTR_IS_PREDEFINED_TYPE = 221;  { a predefined type  }
509
 
     OCI_ATTR_IS_TRANSIENT_TYPE = 222;  { a transient type  }
510
 
     OCI_ATTR_IS_SYSTEM_GENERATED_TYPE = 223;  { system generated type  }
511
 
     OCI_ATTR_HAS_NESTED_TABLE = 224;  { contains nested table attr  }
512
 
     OCI_ATTR_HAS_LOB = 225;  { has a lob attribute  }
513
 
     OCI_ATTR_HAS_FILE = 226;  { has a file attribute  }
514
 
     OCI_ATTR_COLLECTION_ELEMENT = 227;  { has a collection attribute  }
515
 
     OCI_ATTR_NUM_TYPE_ATTRS = 228;  { number of attribute types  }
516
 
     OCI_ATTR_LIST_TYPE_ATTRS = 229;  { list of type attributes  }
517
 
     OCI_ATTR_NUM_TYPE_METHODS = 230;  { number of type methods  }
518
 
     OCI_ATTR_LIST_TYPE_METHODS = 231;  { list of type methods  }
519
 
     OCI_ATTR_MAP_METHOD = 232;  { map method of type  }
520
 
     OCI_ATTR_ORDER_METHOD = 233;  { order method of type  }
521
 
 
522
 
  { only collection element  }
523
 
     OCI_ATTR_NUM_ELEMS = 234;  { number of elements  }
524
 
 
525
 
  { only type methods  }
526
 
     OCI_ATTR_ENCAPSULATION = 235;  { encapsulation level  }
527
 
     OCI_ATTR_IS_SELFISH = 236;  { method selfish  }
528
 
     OCI_ATTR_IS_VIRTUAL = 237;  { virtual  }
529
 
     OCI_ATTR_IS_INLINE = 238;  { inline  }
530
 
     OCI_ATTR_IS_CONSTANT = 239;  { constant  }
531
 
     OCI_ATTR_HAS_RESULT = 240;  { has result  }
532
 
     OCI_ATTR_IS_CONSTRUCTOR = 241;  { constructor  }
533
 
     OCI_ATTR_IS_DESTRUCTOR = 242;  { destructor  }
534
 
     OCI_ATTR_IS_OPERATOR = 243;  { operator  }
535
 
     OCI_ATTR_IS_MAP = 244;  { a map method  }
536
 
     OCI_ATTR_IS_ORDER = 245;  { order method  }
537
 
     OCI_ATTR_IS_RNDS = 246;  { read no data state method  }
538
 
     OCI_ATTR_IS_RNPS = 247;  { read no process state  }
539
 
     OCI_ATTR_IS_WNDS = 248;  { write no data state method  }
540
 
     OCI_ATTR_IS_WNPS = 249;  { write no process state  }
541
 
 
542
 
  { describing public objects  }
543
 
     OCI_ATTR_DESC_PUBLIC = 250;  { public object  }
544
 
 
545
 
  {---------------------------OCIPasswordChange------------------------------- }
546
 
     OCI_AUTH = $08;  { Change the password but do not login  }
547
 
 
548
 
  {------------------------Other Constants------------------------------------ }
549
 
     OCI_MAX_FNS = 100;  { max number of OCI Functions  }
550
 
     OCI_SQLSTATE_SIZE = 5;
551
 
     OCI_ERROR_MAXMSG_SIZE = 1024;  { max size of an error message  }
552
 
     OCI_LOBMAXSIZE = MINUB4MAXVAL;  { maximum lob data size  }
553
 
     OCI_ROWID_LEN = 23;
554
 
  {------------------------ Fail Over Events --------------------------------- }
555
 
     OCI_FO_END = $00000001;
556
 
     OCI_FO_ABORT = $00000002;
557
 
     OCI_FO_REAUTH = $00000004;
558
 
     OCI_FO_BEGIN = $00000008;
559
 
     OCI_FO_ERROR = $00000010;
560
 
  {------------------------- Fail Over Types --------------------------------- }
561
 
     OCI_FO_NONE = $00000001;
562
 
     OCI_FO_SESSION = $00000002;
563
 
     OCI_FO_SELECT = $00000004;
564
 
     OCI_FO_TXNAL = $00000008;
565
 
  {-----------------------Function Codes-------------------------------------- }
566
 
  { OCIInitialize  }
567
 
     OCI_FNCODE_INITIALIZE = 1;
568
 
  { OCIHandleAlloc  }
569
 
     OCI_FNCODE_HANDLEALLOC = 2;
570
 
  { OCIHandleFree  }
571
 
     OCI_FNCODE_HANDLEFREE = 3;
572
 
  { OCIDescriptorAlloc  }
573
 
     OCI_FNCODE_DESCRIPTORALLOC = 4;
574
 
  { OCIDescriptorFree  }
575
 
     OCI_FNCODE_DESCRIPTORFREE = 5;
576
 
  { OCIEnvInit  }
577
 
     OCI_FNCODE_ENVINIT = 6;
578
 
  { OCIServerAttach  }
579
 
     OCI_FNCODE_SERVERATTACH = 7;
580
 
  { OCIServerDetach  }
581
 
     OCI_FNCODE_SERVERDETACH = 8;
582
 
  { unused         9  }
583
 
  { OCISessionBegin  }
584
 
     OCI_FNCODE_SESSIONBEGIN = 10;
585
 
  { OCISessionEnd  }
586
 
     OCI_FNCODE_SESSIONEND = 11;
587
 
  { OCIPasswordChange  }
588
 
     OCI_FNCODE_PASSWORDCHANGE = 12;
589
 
  { OCIStmtPrepare  }
590
 
     OCI_FNCODE_STMTPREPARE = 13;
591
 
  { unused       14- 16  }
592
 
  { OCIBindDynamic  }
593
 
     OCI_FNCODE_BINDDYNAMIC = 17;
594
 
  { OCIBindObject  }
595
 
     OCI_FNCODE_BINDOBJECT = 18;
596
 
  { 19 unused  }
597
 
  { OCIBindArrayOfStruct  }
598
 
     OCI_FNCODE_BINDARRAYOFSTRUCT = 20;
599
 
  { OCIStmtExecute  }
600
 
     OCI_FNCODE_STMTEXECUTE = 21;
601
 
  { unused 22-24  }
602
 
  { OCIDefineObject  }
603
 
     OCI_FNCODE_DEFINEOBJECT = 25;
604
 
  { OCIDefineDynamic  }
605
 
     OCI_FNCODE_DEFINEDYNAMIC = 26;
606
 
  { OCIDefineArrayOfStruct  }
607
 
     OCI_FNCODE_DEFINEARRAYOFSTRUCT = 27;
608
 
  { OCIStmtFetch  }
609
 
     OCI_FNCODE_STMTFETCH = 28;
610
 
  { OCIStmtGetBindInfo  }
611
 
     OCI_FNCODE_STMTGETBIND = 29;
612
 
  { 30, 31 unused  }
613
 
  { OCIDescribeAny  }
614
 
     OCI_FNCODE_DESCRIBEANY = 32;
615
 
  { OCITransStart  }
616
 
     OCI_FNCODE_TRANSSTART = 33;
617
 
  { OCITransDetach  }
618
 
     OCI_FNCODE_TRANSDETACH = 34;
619
 
  { OCITransCommit  }
620
 
     OCI_FNCODE_TRANSCOMMIT = 35;
621
 
  { 36 unused  }
622
 
  { OCIErrorGet  }
623
 
     OCI_FNCODE_ERRORGET = 37;
624
 
  { OCILobFileOpen  }
625
 
     OCI_FNCODE_LOBOPENFILE = 38;
626
 
  { OCILobFileClose  }
627
 
     OCI_FNCODE_LOBCLOSEFILE = 39;
628
 
  { 40 was LOBCREATEFILE, unused  }
629
 
  { 41 was OCILobFileDelete, unused   }
630
 
  { OCILobCopy  }
631
 
     OCI_FNCODE_LOBCOPY = 42;
632
 
  { OCILobAppend  }
633
 
     OCI_FNCODE_LOBAPPEND = 43;
634
 
  { OCILobErase  }
635
 
     OCI_FNCODE_LOBERASE = 44;
636
 
  { OCILobGetLength  }
637
 
     OCI_FNCODE_LOBLENGTH = 45;
638
 
  { OCILobTrim  }
639
 
     OCI_FNCODE_LOBTRIM = 46;
640
 
  { OCILobRead  }
641
 
     OCI_FNCODE_LOBREAD = 47;
642
 
  { OCILobWrite  }
643
 
     OCI_FNCODE_LOBWRITE = 48;
644
 
  { 49 unused  }
645
 
  { OCIBreak  }
646
 
     OCI_FNCODE_SVCCTXBREAK = 50;
647
 
  { OCIServerVersion  }
648
 
     OCI_FNCODE_SERVERVERSION = 51;
649
 
  { unused 52, 53  }
650
 
  { OCIAttrGet  }
651
 
     OCI_FNCODE_ATTRGET = 54;
652
 
  { OCIAttrSet  }
653
 
     OCI_FNCODE_ATTRSET = 55;
654
 
  { OCIParamSet  }
655
 
     OCI_FNCODE_PARAMSET = 56;
656
 
  { OCIParamGet  }
657
 
     OCI_FNCODE_PARAMGET = 57;
658
 
  { OCIStmtGetPieceInfo  }
659
 
     OCI_FNCODE_STMTGETPIECEINFO = 58;
660
 
  { OCILdaToSvcCtx  }
661
 
     OCI_FNCODE_LDATOSVCCTX = 59;
662
 
  { 60 unused  }
663
 
  { OCIStmtSetPieceInfo  }
664
 
     OCI_FNCODE_STMTSETPIECEINFO = 61;
665
 
  { OCITransForget  }
666
 
     OCI_FNCODE_TRANSFORGET = 62;
667
 
  { OCITransPrepare  }
668
 
     OCI_FNCODE_TRANSPREPARE = 63;
669
 
  { OCITransRollback  }
670
 
     OCI_FNCODE_TRANSROLLBACK = 64;
671
 
  { OCIDefineByPos  }
672
 
     OCI_FNCODE_DEFINEBYPOS = 65;
673
 
  { OCIBindByPos  }
674
 
     OCI_FNCODE_BINDBYPOS = 66;
675
 
  { OCIBindByName  }
676
 
     OCI_FNCODE_BINDBYNAME = 67;
677
 
  { OCILobAssign  }
678
 
     OCI_FNCODE_LOBASSIGN = 68;
679
 
  { OCILobIsEqual  }
680
 
     OCI_FNCODE_LOBISEQUAL = 69;
681
 
  { OCILobLocatorIsInit  }
682
 
     OCI_FNCODE_LOBISINIT = 70;
683
 
  { 71 was lob locator size in beta2  }
684
 
  { OCILobEnableBuffering  }
685
 
     OCI_FNCODE_LOBENABLEBUFFERING = 71;
686
 
  { OCILobCharSetID  }
687
 
     OCI_FNCODE_LOBCHARSETID = 72;
688
 
  { OCILobCharSetForm  }
689
 
     OCI_FNCODE_LOBCHARSETFORM = 73;
690
 
  { OCILobFileSetName  }
691
 
     OCI_FNCODE_LOBFILESETNAME = 74;
692
 
  { OCILobFileGetName  }
693
 
     OCI_FNCODE_LOBFILEGETNAME = 75;
694
 
  { OCILogon  }
695
 
     OCI_FNCODE_LOGON = 76;
696
 
  { OCILogoff  }
697
 
     OCI_FNCODE_LOGOFF = 77;
698
 
  { OCILobDisableBuffering  }
699
 
     OCI_FNCODE_LOBDISABLEBUFFERING = 78;
700
 
  { OCILobFlushBuffer  }
701
 
     OCI_FNCODE_LOBFLUSHBUFFER = 79;
702
 
  { OCILobLoadFromFile  }
703
 
     OCI_FNCODE_LOBLOADFROMFILE = 80;
704
 
 
705
 
  {--------------------------- FILE open modes ------------------------------- }
706
 
     OCI_FILE_READONLY = 1;  { readonly mode open for FILE types  }
707
 
 
708
 
  {----------------------- LOB Buffering Flush Flags ------------------------- }
709
 
     OCI_LOB_BUFFER_FREE = 1;
710
 
     OCI_LOB_BUFFER_NOFREE = 2;
711
 
 
712
 
  {--------------------------- OCI Statement Types --------------------------- }
713
 
     OCI_STMT_SELECT = 1;  { select statement  }
714
 
     OCI_STMT_UPDATE = 2;  { update statement  }
715
 
     OCI_STMT_DELETE = 3;  { delete statement  }
716
 
     OCI_STMT_INSERT = 4;  { Insert Statement  }
717
 
     OCI_STMT_CREATE = 5;  { create statement  }
718
 
     OCI_STMT_DROP = 6;  { drop statement  }
719
 
     OCI_STMT_ALTER = 7;  { alter statement  }
720
 
     OCI_STMT_BEGIN = 8;  { begin ... (pl/sql statement) }
721
 
     OCI_STMT_DECLARE = 9;  { declare .. (pl/sql statement )  }
722
 
 
723
 
  {--------------------------- OCI Parameter Types --------------------------- }
724
 
     OCI_PTYPE_UNK = 0;  { unknown    }
725
 
     OCI_PTYPE_TABLE = 1;  { table      }
726
 
     OCI_PTYPE_VIEW = 2;  { view       }
727
 
     OCI_PTYPE_PROC = 3;  { procedure  }
728
 
     OCI_PTYPE_FUNC = 4;  { function   }
729
 
     OCI_PTYPE_PKG = 5;  { package    }
730
 
     OCI_PTYPE_TYPE = 6;  { user-defined type  }
731
 
     OCI_PTYPE_SYN = 7;  { synonym    }
732
 
     OCI_PTYPE_SEQ = 8;  { sequence   }
733
 
     OCI_PTYPE_COL = 9;  { column     }
734
 
     OCI_PTYPE_ARG = 10;  { argument   }
735
 
     OCI_PTYPE_LIST = 11;  { list       }
736
 
     OCI_PTYPE_TYPE_ATTR = 12;  { user-defined type's attribute  }
737
 
     OCI_PTYPE_TYPE_COLL = 13;  { collection type's element  }
738
 
     OCI_PTYPE_TYPE_METHOD = 14;  { collection type's element  }
739
 
     OCI_PTYPE_TYPE_ARG = 15;  { user-defined type method's argument  }
740
 
     OCI_PTYPE_TYPE_RESULT = 16;  { user-defined type method's result  }
741
 
 
742
 
  {----------------------------- OCI List Types ------------------------------ }
743
 
     OCI_LTYPE_UNK = 0;  { unknown    }
744
 
     OCI_LTYPE_COLUMN = 1;  { column list  }
745
 
     OCI_LTYPE_ARG_PROC = 2;  { procedure argument list  }
746
 
     OCI_LTYPE_ARG_FUNC = 3;  { function argument list  }
747
 
     OCI_LTYPE_SUBPRG = 4;  { subprogram list  }
748
 
     OCI_LTYPE_TYPE_ATTR = 5;  { type attribute  }
749
 
     OCI_LTYPE_TYPE_METHOD = 6;  { type method  }
750
 
     OCI_LTYPE_TYPE_ARG_PROC = 7;  { type method w/o result argument list  }
751
 
     OCI_LTYPE_TYPE_ARG_FUNC = 8;  { type method w/result argument list  }
752
 
 
753
 
type { Handle Definitions
754
 
 }
755
 
  OCIEnv           = pointer;  { OCI environment handle
756
 
 }
757
 
  OCIError         = pointer;  { OCI error handle
758
 
 }
759
 
  OCISvcCtx        = pointer;  { OCI service handle }
760
 
  OCIStmt          = pointer;  { OCI statement handle }
761
 
  OCIBind          = pointer;  { OCI bind handle
762
 
 }
763
 
  OCIDefine        = pointer;  { OCI Define handle
764
 
 }
765
 
  OCIDescribe      = pointer;  { OCI Describe handle
766
 
 }
767
 
  OCIServer        = pointer;  { OCI Server handle
768
 
 }
769
 
  OCISession       = pointer;  { OCI Authentication handle
770
 
 }
771
 
  OCIComplexObject = pointer;  { OCI COR handle
772
 
 }
773
 
  OCITrans         = pointer;  { OCI Transaction handle
774
 
 }
775
 
  OCISecurity      = pointer;  { OCI Security handle
776
 
 }
777
 
  OCIDirPathCtx    = pointer;  { OCI Direct Path handle
778
 
 }
779
 
 
780
 
type
781
 
  OCILobLocator         = pointer;  { OCI LOB Locator }
782
 
  OCIType               = pointer;
783
 
  OCICallbackInBind     = pointer;
784
 
  OCICallbackOutBind    = pointer;
785
 
  OCISnapshot           = pointer;
786
 
  OCIResult             = pointer;
787
 
  OCICallbackDefine     = pointer;
788
 
  OCIParam              = pointer;
789
 
 
790
 
 
791
 
  function OCIErrorGet(
792
 
          hndlp:pointer;
793
 
          recordno:cardinal;
794
 
          sqlstate:PChar;
795
 
          var errcodep:plongint;
796
 
          bufp:PChar;
797
 
          bufsiz:cardinal;
798
 
          AType:cardinal):sword;cdecl;
799
 
 
800
 
  function OCIInitialize(
801
 
          mode:cardinal;
802
 
          ctxp:pointer;
803
 
          malocfp:pointer;
804
 
          ralocfp:pointer;
805
 
          mfreefp:pointer):sword;cdecl;
806
 
 
807
 
  function OCIHandleAlloc(
808
 
          parenth:pointer;
809
 
          var hndlpp:pointer;
810
 
          AType:cardinal;
811
 
          xtramem_sz:cardinal;
812
 
          usrmempp:pointer):sword;cdecl;
813
 
 
814
 
  function OCIHandleFree(
815
 
          hndlp:pointer;
816
 
          AType:cardinal):sword;cdecl;
817
 
 
818
 
  function OCIEnvInit(
819
 
          var envp: OCIEnv;
820
 
 
821
 
          mode: ub4;
822
 
          xtramemsz: Integer;
823
 
          usrmempp: pointer): sword; cdecl;
824
 
 
825
 
  function OCIDescriptorAlloc(
826
 
          parenth:pointer;
827
 
          descpp:pointer;
828
 
          AType:cardinal;
829
 
          xtramem_sz:cardinal;
830
 
          usrmempp:pointer):sword;cdecl;
831
 
 
832
 
  function OCIDescriptorFree(
833
 
          descp:pointer;
834
 
          AType:cardinal):sword;cdecl;
835
 
 
836
 
  function OCIServerAttach(
837
 
          srvhp:OCIServer;
838
 
          errhp:OCIError;
839
 
          dblink:PChar;
840
 
          dblink_len:longint;
841
 
          mode:cardinal):sword;cdecl;
842
 
 
843
 
  function OCIServerDetach(
844
 
          srvhp:OCIServer;
845
 
          errhp:OCIError;
846
 
          mode:cardinal):sword;cdecl;
847
 
 
848
 
  function OCISessionBegin(
849
 
          svchp:OCISvcCtx;
850
 
          errhp:OCIError;
851
 
          usrhp:OCISession;
852
 
          credt:cardinal;
853
 
          mode:cardinal):sword;cdecl;
854
 
 
855
 
  function OCISessionEnd(
856
 
          svchp:OCISvcCtx;
857
 
          errhp:OCIError;
858
 
          usrhp:OCISession;
859
 
          mode:cardinal):sword;cdecl;
860
 
 
861
 
  function OCILogon(
862
 
          envhp:OCIEnv;
863
 
          errhp:OCIError;
864
 
          var svchp:OCISvcCtx;
865
 
          username:PChar;
866
 
          uname_len:cardinal;
867
 
          password:PChar;
868
 
          passwd_len:cardinal;
869
 
          dbname:PChar;
870
 
          dbname_len:cardinal):sword;cdecl;
871
 
 
872
 
  function OCILogoff(
873
 
          svchp:OCISvcCtx;
874
 
          errhp:OCIError):sword;cdecl;
875
 
 
876
 
  {----------------------------------------------------------------------------}
877
 
 
878
 
  function OCIPasswordChange(
879
 
          svchp:OCISvcCtx;
880
 
          errhp:OCIError;
881
 
          user_name:PChar;
882
 
          usernm_len:cardinal;
883
 
          opasswd:PChar;
884
 
          opasswd_len:cardinal;
885
 
          npasswd:PChar;
886
 
          npasswd_len:cardinal;
887
 
          mode:cardinal):sword;cdecl;
888
 
 
889
 
  function OCIStmtPrepare(
890
 
          stmtp:OCIStmt;
891
 
          errhp:OCIError;
892
 
          stmt:PChar;
893
 
          stmt_len:cardinal;
894
 
          language:cardinal;
895
 
          mode:cardinal):sword;cdecl;
896
 
 
897
 
  function OCIBindByPos(
898
 
          stmtp:OCIStmt;
899
 
          bindp:OCIBind;
900
 
          errhp:OCIError;
901
 
          position:cardinal;
902
 
          valuep:pointer;
903
 
          value_sz:longint;
904
 
          dty:word;
905
 
          indp:pointer;
906
 
          alenp:pword; rcodep:pword;
907
 
          maxarr_len:cardinal;
908
 
          curelep:pcardinal;
909
 
          mode:cardinal):sword;cdecl;
910
 
 
911
 
  function OCIBindByName(
912
 
          stmtp:OCIStmt;
913
 
          bindp:OCIBind;
914
 
          errhp:OCIError;
915
 
          placeholder:PChar;
916
 
          placeh_len:longint;
917
 
          valuep:pointer;
918
 
          value_sz:longint;
919
 
          dty:word;
920
 
          indp:pointer;
921
 
          alenp:pword;
922
 
          rcodep:pword;
923
 
          maxarr_len:cardinal;
924
 
          curelep:pcardinal;
925
 
          mode:cardinal):sword;cdecl;
926
 
 
927
 
  function OCIBindObject(
928
 
          bindp:OCIBind;
929
 
          errhp:OCIError;
930
 
          AType:OCIType;
931
 
          pgvpp:pointer;
932
 
          pvszsp:pcardinal;
933
 
          indpp:pointer;
934
 
          indszp:pcardinal):sword;cdecl;
935
 
 
936
 
  function OCIBindDynamic(
937
 
          bindp:OCIBind;
938
 
          errhp:OCIError;
939
 
          ictxp:pointer;
940
 
          icbfp:OCICallbackInBind;
941
 
          octxp:pointer;
942
 
          ocbfp:OCICallbackOutBind):sword;cdecl;
943
 
 
944
 
  function OCIBindArrayOfStruct(
945
 
          bindp:OCIBind;
946
 
          errhp:OCIError;
947
 
          pvskip:cardinal;
948
 
          indskip:cardinal;
949
 
          alskip:cardinal;
950
 
          rcskip:cardinal):sword;cdecl;
951
 
 
952
 
  function OCIStmtGetPieceInfo(
953
 
          stmtp:OCIStmt;
954
 
          errhp:OCIError;
955
 
          hndlpp:pointer;
956
 
          typep:pcardinal;
957
 
          in_outp:pbyte;
958
 
          iterp:pcardinal;
959
 
          idxp:pcardinal;
960
 
          piecep:pbyte):sword;cdecl;
961
 
 
962
 
  function OCIStmtSetPieceInfo(
963
 
          hndlp:pointer;
964
 
          AType:cardinal;
965
 
          errhp:OCIError;
966
 
          bufp:pointer;
967
 
          alenp:pcardinal;
968
 
          piece:byte;
969
 
          indp:pointer;
970
 
          rcodep:pword):sword;cdecl;
971
 
 
972
 
  function OCIStmtExecute(
973
 
          svchp:OCISvcCtx;
974
 
          stmtp:OCIStmt;
975
 
          errhp:OCIError;
976
 
          iters:cardinal;
977
 
          rowoff:cardinal;
978
 
          snap_in:OCISnapshot;
979
 
          snap_out:OCISnapshot;
980
 
          mode:cardinal):sword;cdecl;
981
 
 
982
 
  function OCIDefineByPos(
983
 
          stmtp:OCIStmt;
984
 
          defnp:OCIDefine;
985
 
          errhp:OCIError;
986
 
          position:cardinal;
987
 
          valuep:pointer;
988
 
          value_sz:longint;
989
 
          dty:word;
990
 
          indp:pointer;
991
 
          rlenp:pword;
992
 
          rcodep:pword;
993
 
          mode:cardinal):sword;cdecl;
994
 
 
995
 
  function OCIDefineObject(
996
 
          defnp:OCIDefine;
997
 
          errhp:OCIError;
998
 
          AType:OCIType;
999
 
          pgvpp:pointer;
1000
 
          pvszsp:pcardinal;
1001
 
          indpp:pointer;
1002
 
          indszp:pcardinal):sword;cdecl;
1003
 
 
1004
 
  function OCIDefineDynamic(
1005
 
          defnp:OCIDefine;
1006
 
          errhp:OCIError;
1007
 
          octxp:pointer;
1008
 
          ocbfp:OCICallbackDefine):sword;cdecl;
1009
 
 
1010
 
  function OCIDefineArrayOfStruct(
1011
 
          defnp:OCIDefine;
1012
 
          errhp:OCIError;
1013
 
          pvskip:cardinal;
1014
 
          indskip:cardinal;
1015
 
          rlskip:cardinal;
1016
 
          rcskip:cardinal):sword;cdecl;
1017
 
 
1018
 
  function OCIStmtFetch(
1019
 
          stmtp:OCIStmt;
1020
 
          errhp:OCIError;
1021
 
          nrows:cardinal;
1022
 
          orientation:word;
1023
 
          mode:cardinal):sword;cdecl;
1024
 
 
1025
 
  function OCIStmtGetBindInfo(
1026
 
          stmtp:OCIStmt;
1027
 
          errhp:OCIError;
1028
 
          size:cardinal;
1029
 
          startloc:cardinal;
1030
 
          found:plongint;
1031
 
          bvnp:PChar;
1032
 
          bvnl:byte;
1033
 
          invp:PChar;
1034
 
          inpl:byte;
1035
 
          dupl:byte;
1036
 
          hndl:OCIBind):sword;cdecl;
1037
 
 
1038
 
  function OCIDescribeAny(
1039
 
          svchp:OCISvcCtx;
1040
 
          errhp:OCIError;
1041
 
          objptr:pointer;
1042
 
          objnm_len:cardinal;
1043
 
          objptr_typ:byte;
1044
 
          info_level:byte;
1045
 
          objtyp:byte;
1046
 
          dschp:OCIDescribe):sword;cdecl;
1047
 
 
1048
 
  function OCIParamGet(
1049
 
          hndlp:pointer;
1050
 
          htype:cardinal;
1051
 
          errhp:OCIError;
1052
 
          parmdpp:pointer;
1053
 
          pos:cardinal):sword;cdecl;
1054
 
 
1055
 
  function OCIParamSet(
1056
 
          hdlp:pointer;
1057
 
          htyp:cardinal;
1058
 
          errhp:OCIError;
1059
 
          dscp:pointer;
1060
 
          dtyp:cardinal;
1061
 
          pos:cardinal):sword;cdecl;
1062
 
 
1063
 
  function OCITransStart(
1064
 
          svchp:OCISvcCtx;
1065
 
          errhp:OCIError;
1066
 
          timeout:uword;
1067
 
          flags:cardinal):sword;cdecl;
1068
 
 
1069
 
  function OCITransDetach(
1070
 
          svchp:OCISvcCtx;
1071
 
          errhp:OCIError;
1072
 
          flags:cardinal):sword;cdecl;
1073
 
 
1074
 
  function OCITransCommit(
1075
 
          svchp:OCISvcCtx;
1076
 
          errhp:OCIError;
1077
 
          flags:cardinal):sword;cdecl;
1078
 
 
1079
 
  function OCITransRollback(
1080
 
          svchp:OCISvcCtx;
1081
 
          errhp:OCIError;
1082
 
          flags:cardinal):sword;cdecl;
1083
 
 
1084
 
  function OCITransPrepare(
1085
 
          svchp:OCISvcCtx;
1086
 
          errhp:OCIError;
1087
 
          flags:cardinal):sword;cdecl;
1088
 
 
1089
 
  function OCITransForget(
1090
 
          svchp:OCISvcCtx;
1091
 
          errhp:OCIError;
1092
 
          flags:cardinal):sword;cdecl;
1093
 
 
1094
 
  function OCILobAppend(
1095
 
          svchp:OCISvcCtx;
1096
 
          errhp:OCIError;
1097
 
          dst_locp:OCILobLocator;
1098
 
          src_locp:OCILobLocator):sword;cdecl;
1099
 
 
1100
 
  function OCILobAssign(
1101
 
          envhp:OCIEnv;
1102
 
          errhp:OCIError;
1103
 
          src_locp:OCILobLocator;
1104
 
          dst_locpp:OCILobLocator):sword;cdecl;
1105
 
 
1106
 
  function OCILobCharSetForm(
1107
 
          envhp:OCIEnv;
1108
 
          errhp:OCIError;
1109
 
          locp:OCILobLocator;
1110
 
          csfrm:pbyte):sword;cdecl;
1111
 
 
1112
 
  function OCILobCharSetId(
1113
 
          envhp:OCIEnv;
1114
 
          errhp:OCIError;
1115
 
          locp:OCILobLocator;
1116
 
          csid:pword):sword;cdecl;
1117
 
 
1118
 
  function OCILobCopy(
1119
 
          svchp:OCISvcCtx;
1120
 
          errhp:OCIError;
1121
 
          dst_locp:OCILobLocator;
1122
 
          src_locp:OCILobLocator;
1123
 
          amount:cardinal;
1124
 
          dst_offset:cardinal;
1125
 
          src_offset:cardinal):sword;cdecl;
1126
 
 
1127
 
  function OCILobDisableBuffering(
1128
 
          svchp:OCISvcCtx;
1129
 
          errhp:OCIError;
1130
 
          locp:OCILobLocator):sword;cdecl;
1131
 
 
1132
 
  function OCILobEnableBuffering(
1133
 
          svchp:OCISvcCtx;
1134
 
          errhp:OCIError;
1135
 
          locp:OCILobLocator):sword;cdecl;
1136
 
 
1137
 
  function OCILobErase(
1138
 
          svchp:OCISvcCtx;
1139
 
          errhp:OCIError;
1140
 
          locp:OCILobLocator;
1141
 
          amount:pcardinal;
1142
 
          offset:cardinal):sword;cdecl;
1143
 
 
1144
 
  function OCILobFileClose(
1145
 
          svchp:OCISvcCtx;
1146
 
          errhp:OCIError;
1147
 
          filep:OCILobLocator):sword;cdecl;
1148
 
 
1149
 
  function OCILobFileCloseAll(
1150
 
          svchp:OCISvcCtx;
1151
 
          errhp:OCIError):sword;cdecl;
1152
 
 
1153
 
  function OCILobFileExists(
1154
 
          svchp:OCISvcCtx;
1155
 
          errhp:OCIError;
1156
 
          filep:OCILobLocator;
1157
 
          flag:pboolean):sword;cdecl;
1158
 
 
1159
 
  function OCILobFileGetName(
1160
 
          envhp:OCIEnv;
1161
 
          errhp:OCIError;
1162
 
          filep:OCILobLocator;
1163
 
          dir_alias:PChar;
1164
 
          d_length:pword;
1165
 
          filename:PChar;
1166
 
          f_length:pword):sword;cdecl;
1167
 
 
1168
 
  function OCILobFileIsOpen(
1169
 
          svchp:OCISvcCtx;
1170
 
          errhp:OCIError;
1171
 
          filep:OCILobLocator;
1172
 
          flag:pboolean):sword;cdecl;
1173
 
 
1174
 
  function OCILobFileOpen(
1175
 
          svchp:OCISvcCtx;
1176
 
          errhp:OCIError;
1177
 
          filep:OCILobLocator;
1178
 
          mode:byte):sword;cdecl;
1179
 
 
1180
 
  function OCILobFileSetName(
1181
 
          envhp:OCIEnv;
1182
 
          errhp:OCIError;
1183
 
          filepp:OCILobLocator;
1184
 
          dir_alias:PChar;
1185
 
          d_length:word;
1186
 
          filename:PChar;
1187
 
          f_length:word):sword;cdecl;
1188
 
 
1189
 
  function OCILobFlushBuffer(
1190
 
          svchp:OCISvcCtx;
1191
 
          errhp:OCIError;
1192
 
          locp:OCILobLocator;
1193
 
          flag:cardinal):sword;cdecl;
1194
 
 
1195
 
  function OCILobGetLength(
1196
 
          svchp:OCISvcCtx;
1197
 
          errhp:OCIError;
1198
 
          locp:OCILobLocator;
1199
 
          lenp:pcardinal):sword;cdecl;
1200
 
 
1201
 
  function OCILobIsEqual(
1202
 
          envhp:OCIEnv;
1203
 
          x:OCILobLocator;
1204
 
          y:OCILobLocator;
1205
 
          is_equal:pboolean):sword;cdecl;
1206
 
 
1207
 
  function OCILobLoadFromFile(
1208
 
          svchp:OCISvcCtx;
1209
 
          errhp:OCIError;
1210
 
          dst_locp:OCILobLocator;
1211
 
          src_filep:OCILobLocator;
1212
 
          amount:cardinal;
1213
 
          dst_offset:cardinal;
1214
 
          src_offset:cardinal):sword;cdecl;
1215
 
 
1216
 
  function OCILobLocatorIsInit(
1217
 
          envhp:OCIEnv;
1218
 
          errhp:OCIError;
1219
 
          locp:OCILobLocator;
1220
 
          is_initialized:pboolean):sword;cdecl;
1221
 
 
1222
 
  function OCILobRead(
1223
 
          svchp:OCISvcCtx;
1224
 
          errhp:OCIError;
1225
 
          locp:OCILobLocator;
1226
 
          amtp:pcardinal;
1227
 
          offset:cardinal;
1228
 
          bufp:pointer;
1229
 
          bufl:cardinal;
1230
 
          ctxp:pointer;
1231
 
          cbfp:pointer;
1232
 
          csid:word;
1233
 
          csfrm:byte):sword;cdecl;
1234
 
 
1235
 
  function OCILobTrim(
1236
 
          svchp:OCISvcCtx;
1237
 
          errhp:OCIError;
1238
 
          locp:OCILobLocator;
1239
 
          newlen:cardinal):sword;cdecl;
1240
 
 
1241
 
  function OCILobWrite(
1242
 
          svchp:OCISvcCtx;
1243
 
          errhp:OCIError;
1244
 
          locp:OCILobLocator;
1245
 
          amtp:pcardinal;
1246
 
          offset:cardinal;
1247
 
          bufp:pointer;
1248
 
          buflen:cardinal;
1249
 
          piece:byte;
1250
 
          ctxp:pointer;
1251
 
          cbfp:pointer;
1252
 
          csid:word;
1253
 
          csfrm:byte):sword;cdecl;
1254
 
 
1255
 
  function OCIBreak(
1256
 
          hndlp:pointer;
1257
 
          errhp:OCIError):sword;cdecl;
1258
 
 
1259
 
  function OCIReset(
1260
 
          hndlp:pointer;
1261
 
          errhp:OCIError):sword;cdecl;
1262
 
 
1263
 
  function OCIServerVersion(
1264
 
          hndlp:pointer;
1265
 
          errhp:OCIError;
1266
 
          bufp:PChar;
1267
 
          bufsz:cardinal;
1268
 
          hndltype:byte):sword;cdecl;
1269
 
 
1270
 
  function OCIAttrGet(
1271
 
          trgthndlp:pointer;
1272
 
          trghndltyp:cardinal;
1273
 
          attributep:pointer;
1274
 
          sizep:pcardinal;
1275
 
          attrtype:cardinal;
1276
 
          errhp:OCIError):sword;cdecl;
1277
 
 
1278
 
  function OCIAttrSet(
1279
 
          trgthndlp:pointer;
1280
 
          trghndltyp:cardinal;
1281
 
          attributep:pointer;
1282
 
          size:cardinal;
1283
 
          attrtype:cardinal;
1284
 
          errhp:OCIError):sword;cdecl;
1285
 
 
1286
 
  function OCISvcCtxToLda(
1287
 
          svchp:OCISvcCtx;
1288
 
          errhp:OCIError;
1289
 
          ldap:pLda_Def):sword;cdecl;
1290
 
 
1291
 
  function OCILdaToSvcCtx(
1292
 
          svchpp:OCISvcCtx;
1293
 
          errhp:OCIError;
1294
 
          ldap:pLda_Def):sword;cdecl;
1295
 
 
1296
 
  function OCIResultSetToStmt(
1297
 
          rsetdp:OCIResult;
1298
 
          errhp:OCIError):sword;cdecl;
1299
 
 
1300
 
  {-------------------------------------------------------------------------------------------}
1301
 
  { Security Package                                                                          }
1302
 
  {-------------------------------------------------------------------------------------------}
1303
 
  {
1304
 
  function OCISecurityInitialize(sechandle:pOCISecurity; error_handle:OCIError):sword;cdecl;
1305
 
 
1306
 
  function OCISecurityTerminate(sechandle:pOCISecurity; error_handle:OCIError):sword;cdecl;
1307
 
 
1308
 
  function OCISecurityOpenWallet(osshandle:pOCISecurity; error_handle:OCIError; wrllen:size_t; wallet_resource_locator:PChar; pwdlen:size_t;
1309
 
             password:PChar; wallet:pnzttWallet):sword;cdecl;
1310
 
 
1311
 
  function OCISecurityCloseWallet(osshandle:pOCISecurity; error_handle:OCIError; wallet:pnzttWallet):sword;cdecl;
1312
 
 
1313
 
  function OCISecurityCreateWallet(osshandle:pOCISecurity; error_handle:OCIError; wrllen:size_t; wallet_resource_locator:PChar; pwdlen:size_t;
1314
 
             password:PChar; wallet:pnzttWallet):sword;cdecl;
1315
 
 
1316
 
  function OCISecurityDestroyWallet(osshandle:pOCISecurity; error_handle:OCIError; wrllen:size_t; wallet_resource_locator:PChar; pwdlen:size_t;
1317
 
             password:PChar):sword;cdecl;
1318
 
 
1319
 
  function OCISecurityStorePersona(osshandle:pOCISecurity; error_handle:OCIError; persona:ppnzttPersona; wallet:pnzttWallet):sword;cdecl;
1320
 
 
1321
 
  function OCISecurityOpenPersona(osshandle:pOCISecurity; error_handle:OCIError; persona:pnzttPersona):sword;cdecl;
1322
 
 
1323
 
  function OCISecurityClosePersona(osshandle:pOCISecurity; error_handle:OCIError; persona:pnzttPersona):sword;cdecl;
1324
 
 
1325
 
  function OCISecurityRemovePersona(osshandle:pOCISecurity; error_handle:OCIError; persona:ppnzttPersona):sword;cdecl;
1326
 
 
1327
 
  function OCISecurityCreatePersona(osshandle:pOCISecurity; error_handle:OCIError; identity_type:nzttIdentType; cipher_type:nzttCipherType; desc:pnzttPersonaDesc;
1328
 
             persona:ppnzttPersona):sword;cdecl;
1329
 
 
1330
 
  function OCISecuritySetProtection(osshandle:pOCISecurity; error_handle:OCIError; persona:pnzttPersona; crypto_engine_function:nzttcef; data_unit_format:nztttdufmt;
1331
 
             protection_info:pnzttProtInfo):sword;cdecl;
1332
 
 
1333
 
  function OCISecurityGetProtection(osshandle:pOCISecurity; error_handle:OCIError; persona:pnzttPersona; crypto_engine_function:nzttcef; data_unit_format_ptr:pnztttdufmt;
1334
 
             protection_info:pnzttProtInfo):sword;cdecl;
1335
 
 
1336
 
  function OCISecurityRemoveIdentity(osshandle:pOCISecurity; error_handle:OCIError; identity_ptr:ppnzttIdentity):sword;cdecl;
1337
 
 
1338
 
  function OCISecurityCreateIdentity(osshandle:pOCISecurity; error_handle:OCIError; AType:nzttIdentType; desc:pnzttIdentityDesc; identity_ptr:ppnzttIdentity):sword;cdecl;
1339
 
 
1340
 
  function OCISecurityAbortIdentity(osshandle:pOCISecurity; error_handle:OCIError; identity_ptr:ppnzttIdentity):sword;cdecl;
1341
 
 
1342
 
  function OCISecurityFreeIdentity(osshandle:pOCISecurity; error_handle:OCIError; identity_ptr:ppnzttIdentity):sword;cdecl;
1343
 
 
1344
 
  function OCISecurityStoreTrustedIdentity(osshandle:pOCISecurity; error_handle:OCIError; identity_ptr:ppnzttIdentity; persona:pnzttPersona):sword;cdecl;
1345
 
 
1346
 
  function OCISecuritySign(osshandle:pOCISecurity; error_handle:OCIError; persona:pnzttPersona; signature_state:nzttces; input_length:size_t;
1347
 
             input:pbyte; buffer_block:pnzttBufferBlock):sword;cdecl;
1348
 
 
1349
 
  function OCISecuritySignExpansion(osshandle:pOCISecurity; error_handle:OCIError; persona:pnzttPersona; inputlen:size_t; signature_length:psize_t):sword;cdecl;
1350
 
 
1351
 
  function OCISecurityVerify(osshandle:pOCISecurity; error_handle:OCIError; persona:pnzttPersona; signature_state:nzttces; siglen:size_t;
1352
 
             signature:pbyte; extracted_message:pnzttBufferBlock; verified:pboolean; validated:pboolean; signing_party_identity:ppnzttIdentity):sword;cdecl;
1353
 
 
1354
 
  function OCISecurityValidate(osshandle:pOCISecurity; error_handle:OCIError; persona:pnzttPersona; identity:pnzttIdentity; validated:pboolean):sword;cdecl;
1355
 
 
1356
 
  function OCISecuritySignDetached(osshandle:pOCISecurity; error_handle:OCIError; persona:pnzttPersona; signature_state:nzttces; input_length:size_t;
1357
 
             input:pbyte; signature:pnzttBufferBlock):sword;cdecl;
1358
 
 
1359
 
  function OCISecuritySignDetExpansion(osshandle:pOCISecurity; error_handle:OCIError; persona:pnzttPersona; input_length:size_t; required_buffer_length:psize_t):sword;cdecl;
1360
 
 
1361
 
  function OCISecurityVerifyDetached(osshandle:pOCISecurity; error_handle:OCIError; persona:pnzttPersona; signature_state:nzttces; data_length:size_t;
1362
 
             data:pbyte; siglen:size_t; signature:pbyte; verified:pboolean; validated:pboolean;
1363
 
             signing_party_identity:ppnzttIdentity):sword;cdecl;
1364
 
 
1365
 
  function OCISecurity_PKEncrypt(osshandle:pOCISecurity; error_handle:OCIError; persona:pnzttPersona; number_of_recipients:size_t; recipient_list:pnzttIdentity;
1366
 
             encryption_state:nzttces; input_length:size_t; input:pbyte; encrypted_data:pnzttBufferBlock):sword;cdecl;
1367
 
 
1368
 
  function OCISecurityPKEncryptExpansion(osshandle:pOCISecurity; error_handle:OCIError; persona:pnzttPersona; number_recipients:size_t; input_length:size_t;
1369
 
             buffer_length_required:psize_t):sword;cdecl;
1370
 
 
1371
 
  function OCISecurityPKDecrypt(osshandle:pOCISecurity; error_handle:OCIError; persona:pnzttPersona; encryption_state:nzttces; input_length:size_t;
1372
 
             input:pbyte; encrypted_data:pnzttBufferBlock):sword;cdecl;
1373
 
 
1374
 
  function OCISecurityEncrypt(osshandle:pOCISecurity; error_handle:OCIError; persona:pnzttPersona; encryption_state:nzttces; input_length:size_t;
1375
 
             input:pbyte; encrypted_data:pnzttBufferBlock):sword;cdecl;
1376
 
 
1377
 
  function OCISecurityEncryptExpansion(osshandle:pOCISecurity; error_handle:OCIError; persona:pnzttPersona; input_length:size_t; encrypted_data_length:psize_t):sword;cdecl;
1378
 
 
1379
 
  function OCISecurityDecrypt(osshandle:pOCISecurity; error_handle:OCIError; persona:pnzttPersona; decryption_state:nzttces; input_length:size_t;
1380
 
             input:pbyte; decrypted_data:pnzttBufferBlock):sword;cdecl;
1381
 
 
1382
 
  function OCISecurityEnvelope(osshandle:pOCISecurity; error_handle:OCIError; persona:pnzttPersona; number_of_recipients:size_t; identity:pnzttIdentity;
1383
 
             encryption_state:nzttces; input_length:size_t; input:pbyte; enveloped_data:pnzttBufferBlock):sword;cdecl;
1384
 
 
1385
 
  function OCISecurityDeEnvelope(osshandle:pOCISecurity; error_handle:OCIError; persona:pnzttPersona; decryption_state:nzttces; input_length:size_t;
1386
 
             input:pbyte; output_message:pnzttBufferBlock; verified:pboolean; validated:pboolean; sender_identity:ppnzttIdentity):sword;cdecl;
1387
 
 
1388
 
  function OCISecurityKeyedHash(osshandle:pOCISecurity; error_handle:OCIError; persona:pnzttPersona; hash_state:nzttces; input_length:size_t;
1389
 
             input:pbyte; keyed_hash:pnzttBufferBlock):sword;cdecl;
1390
 
 
1391
 
  function OCISecurityKeyedHashExpansion(osshandle:pOCISecurity; error_handle:OCIError; persona:pnzttPersona; input_length:size_t; required_buffer_length:psize_t):sword;cdecl;
1392
 
 
1393
 
  function OCISecurityHash(osshandle:pOCISecurity; error_handle:OCIError; persona:pnzttPersona; hash_state:nzttces; input:size_t;
1394
 
             input_length:pbyte; hash:pnzttBufferBlock):sword;cdecl;
1395
 
 
1396
 
  function OCISecurityHashExpansion(osshandle:pOCISecurity; error_handle:OCIError; persona:pnzttPersona; input_length:size_t; required_buffer_length:psize_t):sword;cdecl;
1397
 
 
1398
 
  function OCISecuritySeedRandom(osshandle:pOCISecurity; error_handle:OCIError; persona:pnzttPersona; seed_length:size_t; seed:pbyte):sword;cdecl;
1399
 
 
1400
 
  function OCISecurityRandomBytes(osshandle:pOCISecurity; error_handle:OCIError; persona:pnzttPersona; number_of_bytes_desired:size_t; random_bytes:pnzttBufferBlock):sword;cdecl;
1401
 
 
1402
 
  function OCISecurityRandomNumber(osshandle:pOCISecurity; error_handle:OCIError; persona:pnzttPersona; random_number_ptr:puword):sword;cdecl;
1403
 
 
1404
 
  function OCISecurityInitBlock(osshandle:pOCISecurity; error_handle:OCIError; buffer_block:pnzttBufferBlock):sword;cdecl;
1405
 
 
1406
 
  function OCISecurityReuseBlock(osshandle:pOCISecurity; error_handle:OCIError; buffer_block:pnzttBufferBlock):sword;cdecl;
1407
 
 
1408
 
  function OCISecurityPurgeBlock(osshandle:pOCISecurity; error_handle:OCIError; buffer_block:pnzttBufferBlock):sword;cdecl;
1409
 
 
1410
 
  function OCISecuritySetBlock(osshandle:pOCISecurity; error_handle:OCIError; flags_to_set:uword; buffer_length:size_t; used_buffer_length:size_t;
1411
 
             buffer:pbyte; buffer_block:pnzttBufferBlock):sword;cdecl;
1412
 
 
1413
 
  function OCISecurityGetIdentity(osshandle:pOCISecurity; error_handle:OCIError; namelen:size_t; distinguished_name:PChar; identity:ppnzttIdentity):sword;cdecl;
1414
 
 
1415
 
  function OCIAQEnq(svchp:OCISvcCtx; errhp:OCIError; queue_name:PChar; enqopt:pOCIAQEnqOptions; msgprop:pOCIAQMsgProperties;
1416
 
             payload_tdo:pOCIType; payload:ppointer; payload_ind:ppointer; msgid:ppOCIRaw; flags:cardinal):sword;cdecl;
1417
 
 
1418
 
  function OCIAQDeq(svchp:OCISvcCtx; errhp:OCIError; queue_name:PChar; deqopt:pOCIAQDeqOptions; msgprop:pOCIAQMsgProperties;
1419
 
             payload_tdo:pOCIType; payload:ppointer; payload_ind:ppointer; msgid:ppOCIRaw; flags:cardinal):sword;cdecl;
1420
 
}
1421
 
 
1422
 
  {-------------------------------------------------------------------------------------------}
1423
 
  { Datatype Mapping                                                                          }
1424
 
  {-------------------------------------------------------------------------------------------}
1425
 
 
1426
 
  function OCIDateToText(
1427
 
      err:OCIError;
1428
 
          date:POCIDate;
1429
 
          fmt:PChar;
1430
 
          fmt_length:ub1;
1431
 
          lang_name:PChar;
1432
 
      lang_length:ub4;
1433
 
          buf_size:PCardinal;
1434
 
          buf:PChar):sword;cdecl;
1435
 
 
1436
 
implementation
1437
 
 
1438
 
  function OCIInitialize(
1439
 
          mode:cardinal;
1440
 
          ctxp:pointer;
1441
 
          malocfp:pointer;
1442
 
          ralocfp:pointer;
1443
 
          mfreefp:pointer):sword;cdecl;external;
1444
 
 
1445
 
  function OCIHandleAlloc(
1446
 
          parenth:pointer;
1447
 
          var hndlpp:pointer;
1448
 
          AType:cardinal;
1449
 
          xtramem_sz:cardinal;
1450
 
          usrmempp:pointer):sword;cdecl;external;
1451
 
 
1452
 
  function OCIHandleFree(
1453
 
          hndlp:pointer;
1454
 
          AType:cardinal):sword;cdecl;external;
1455
 
 
1456
 
  function OCIEnvInit(
1457
 
          var envp: OCIEnv;
1458
 
 
1459
 
          mode: ub4;
1460
 
          xtramemsz: Integer;
1461
 
          usrmempp: pointer): sword; cdecl;external;
1462
 
 
1463
 
  function OCIDescriptorAlloc(
1464
 
          parenth:pointer;
1465
 
          descpp:pointer;
1466
 
          AType:cardinal;
1467
 
          xtramem_sz:cardinal;
1468
 
          usrmempp:pointer):sword;cdecl;external;
1469
 
 
1470
 
  function OCIDescriptorFree(
1471
 
          descp:pointer;
1472
 
          AType:cardinal):sword;cdecl;external;
1473
 
 
1474
 
  function OCIServerAttach(
1475
 
          srvhp:OCIServer;
1476
 
          errhp:OCIError;
1477
 
          dblink:PChar;
1478
 
          dblink_len:longint;
1479
 
          mode:cardinal):sword;cdecl;external;
1480
 
 
1481
 
  function OCIServerDetach(
1482
 
          srvhp:OCIServer;
1483
 
          errhp:OCIError;
1484
 
          mode:cardinal):sword;cdecl;external;
1485
 
 
1486
 
  function OCISessionBegin(
1487
 
          svchp:OCISvcCtx;
1488
 
          errhp:OCIError;
1489
 
          usrhp:OCISession;
1490
 
          credt:cardinal;
1491
 
          mode:cardinal):sword;cdecl;external;
1492
 
 
1493
 
  function OCISessionEnd(
1494
 
          svchp:OCISvcCtx;
1495
 
          errhp:OCIError;
1496
 
          usrhp:OCISession;
1497
 
          mode:cardinal):sword;cdecl;external;
1498
 
 
1499
 
  function OCILogon(
1500
 
          envhp:OCIEnv;
1501
 
          errhp:OCIError;
1502
 
          var svchp:OCISvcCtx;
1503
 
          username:PChar;
1504
 
          uname_len:cardinal;
1505
 
          password:PChar;
1506
 
          passwd_len:cardinal;
1507
 
          dbname:PChar;
1508
 
          dbname_len:cardinal):sword;cdecl;external;
1509
 
 
1510
 
  function OCILogoff(
1511
 
          svchp:OCISvcCtx;
1512
 
          errhp:OCIError):sword;cdecl;external;
1513
 
 
1514
 
  function OCIErrorGet(
1515
 
          hndlp:pointer;
1516
 
          recordno:cardinal;
1517
 
          sqlstate:PChar;
1518
 
          var errcodep:PLongint;
1519
 
          bufp:PChar;
1520
 
          bufsiz:cardinal;
1521
 
          AType:cardinal):sword;cdecl;external;
1522
 
 
1523
 
  function OCIPasswordChange(
1524
 
          svchp:OCISvcCtx;
1525
 
          errhp:OCIError;
1526
 
          user_name:PChar;
1527
 
          usernm_len:cardinal;
1528
 
          opasswd:PChar;
1529
 
          opasswd_len:cardinal;
1530
 
          npasswd:PChar;
1531
 
          npasswd_len:cardinal;
1532
 
          mode:cardinal):sword;cdecl;external;
1533
 
 
1534
 
  function OCIStmtPrepare(
1535
 
          stmtp:OCIStmt;
1536
 
          errhp:OCIError;
1537
 
          stmt:PChar;
1538
 
          stmt_len:cardinal;
1539
 
          language:cardinal;
1540
 
          mode:cardinal):sword;cdecl;external;
1541
 
 
1542
 
  function OCIBindByPos(
1543
 
          stmtp:OCIStmt;
1544
 
          bindp:OCIBind;
1545
 
          errhp:OCIError;
1546
 
          position:cardinal;
1547
 
          valuep:pointer;
1548
 
          value_sz:longint;
1549
 
          dty:word;
1550
 
          indp:pointer;
1551
 
          alenp:pword; rcodep:pword;
1552
 
          maxarr_len:cardinal;
1553
 
          curelep:pcardinal;
1554
 
          mode:cardinal):sword;cdecl;external;
1555
 
 
1556
 
  function OCIBindByName(
1557
 
          stmtp:OCIStmt;
1558
 
          bindp:OCIBind;
1559
 
          errhp:OCIError;
1560
 
          placeholder:PChar;
1561
 
          placeh_len:longint;
1562
 
          valuep:pointer;
1563
 
          value_sz:longint;
1564
 
          dty:word;
1565
 
          indp:pointer;
1566
 
          alenp:pword;
1567
 
          rcodep:pword;
1568
 
          maxarr_len:cardinal;
1569
 
          curelep:pcardinal;
1570
 
          mode:cardinal):sword;cdecl;external;
1571
 
 
1572
 
  function OCIBindObject(
1573
 
          bindp:OCIBind;
1574
 
          errhp:OCIError;
1575
 
          AType:OCIType;
1576
 
          pgvpp:pointer;
1577
 
          pvszsp:pcardinal;
1578
 
          indpp:pointer;
1579
 
          indszp:pcardinal):sword;cdecl;external;
1580
 
 
1581
 
  function OCIBindDynamic(
1582
 
          bindp:OCIBind;
1583
 
          errhp:OCIError;
1584
 
          ictxp:pointer;
1585
 
          icbfp:OCICallbackInBind;
1586
 
          octxp:pointer;
1587
 
          ocbfp:OCICallbackOutBind):sword;cdecl;external;
1588
 
 
1589
 
  function OCIBindArrayOfStruct(
1590
 
          bindp:OCIBind;
1591
 
          errhp:OCIError;
1592
 
          pvskip:cardinal;
1593
 
          indskip:cardinal;
1594
 
          alskip:cardinal;
1595
 
          rcskip:cardinal):sword;cdecl;external;
1596
 
 
1597
 
  function OCIStmtGetPieceInfo(
1598
 
          stmtp:OCIStmt;
1599
 
          errhp:OCIError;
1600
 
          hndlpp:pointer;
1601
 
          typep:pcardinal;
1602
 
          in_outp:pbyte;
1603
 
          iterp:pcardinal;
1604
 
          idxp:pcardinal;
1605
 
          piecep:pbyte):sword;cdecl;external;
1606
 
 
1607
 
  function OCIStmtSetPieceInfo(
1608
 
          hndlp:pointer;
1609
 
          AType:cardinal;
1610
 
          errhp:OCIError;
1611
 
          bufp:pointer;
1612
 
          alenp:pcardinal;
1613
 
          piece:byte;
1614
 
          indp:pointer;
1615
 
          rcodep:pword):sword;cdecl;external;
1616
 
 
1617
 
  function OCIStmtExecute(
1618
 
          svchp:OCISvcCtx;
1619
 
          stmtp:OCIStmt;
1620
 
          errhp:OCIError;
1621
 
          iters:cardinal;
1622
 
          rowoff:cardinal;
1623
 
          snap_in:OCISnapshot;
1624
 
          snap_out:OCISnapshot;
1625
 
          mode:cardinal):sword;cdecl;external;
1626
 
 
1627
 
  function OCIDefineByPos(
1628
 
          stmtp:OCIStmt;
1629
 
          defnp:OCIDefine;
1630
 
          errhp:OCIError;
1631
 
          position:cardinal;
1632
 
          valuep:pointer;
1633
 
          value_sz:longint;
1634
 
          dty:word;
1635
 
          indp:pointer;
1636
 
          rlenp:pword;
1637
 
          rcodep:pword;
1638
 
          mode:cardinal):sword;cdecl;external;
1639
 
 
1640
 
  function OCIDefineObject(
1641
 
          defnp:OCIDefine;
1642
 
          errhp:OCIError;
1643
 
          AType:OCIType;
1644
 
          pgvpp:pointer;
1645
 
          pvszsp:pcardinal;
1646
 
          indpp:pointer;
1647
 
          indszp:pcardinal):sword;cdecl;external;
1648
 
 
1649
 
  function OCIDefineDynamic(
1650
 
          defnp:OCIDefine;
1651
 
          errhp:OCIError;
1652
 
          octxp:pointer;
1653
 
          ocbfp:OCICallbackDefine):sword;cdecl;external;
1654
 
 
1655
 
  function OCIDefineArrayOfStruct(
1656
 
          defnp:OCIDefine;
1657
 
          errhp:OCIError;
1658
 
          pvskip:cardinal;
1659
 
          indskip:cardinal;
1660
 
          rlskip:cardinal;
1661
 
          rcskip:cardinal):sword;cdecl;external;
1662
 
 
1663
 
  function OCIStmtFetch(
1664
 
          stmtp:OCIStmt;
1665
 
          errhp:OCIError;
1666
 
          nrows:cardinal;
1667
 
          orientation:word;
1668
 
          mode:cardinal):sword;cdecl;external;
1669
 
 
1670
 
  function OCIStmtGetBindInfo(
1671
 
          stmtp:OCIStmt;
1672
 
          errhp:OCIError;
1673
 
          size:cardinal;
1674
 
          startloc:cardinal;
1675
 
          found:plongint;
1676
 
          bvnp:PChar;
1677
 
          bvnl:byte;
1678
 
          invp:PChar;
1679
 
          inpl:byte;
1680
 
          dupl:byte;
1681
 
          hndl:OCIBind):sword;cdecl;external;
1682
 
 
1683
 
  function OCIDescribeAny(
1684
 
          svchp:OCISvcCtx;
1685
 
          errhp:OCIError;
1686
 
          objptr:pointer;
1687
 
          objnm_len:cardinal;
1688
 
          objptr_typ:byte;
1689
 
          info_level:byte;
1690
 
          objtyp:byte;
1691
 
          dschp:OCIDescribe):sword;cdecl;external;
1692
 
 
1693
 
  function OCIParamGet(
1694
 
          hndlp:pointer;
1695
 
          htype:cardinal;
1696
 
          errhp:OCIError;
1697
 
          parmdpp:pointer;
1698
 
          pos:cardinal):sword;cdecl;external;
1699
 
 
1700
 
  function OCIParamSet(
1701
 
          hdlp:pointer;
1702
 
          htyp:cardinal;
1703
 
          errhp:OCIError;
1704
 
          dscp:pointer;
1705
 
          dtyp:cardinal;
1706
 
          pos:cardinal):sword;cdecl;external;
1707
 
 
1708
 
  function OCITransStart(
1709
 
          svchp:OCISvcCtx;
1710
 
          errhp:OCIError;
1711
 
          timeout:uword;
1712
 
          flags:cardinal):sword;cdecl;external;
1713
 
 
1714
 
  function OCITransDetach(
1715
 
          svchp:OCISvcCtx;
1716
 
          errhp:OCIError;
1717
 
          flags:cardinal):sword;cdecl;external;
1718
 
 
1719
 
  function OCITransCommit(
1720
 
          svchp:OCISvcCtx;
1721
 
          errhp:OCIError;
1722
 
          flags:cardinal):sword;cdecl;external;
1723
 
 
1724
 
  function OCITransRollback(
1725
 
          svchp:OCISvcCtx;
1726
 
          errhp:OCIError;
1727
 
          flags:cardinal):sword;cdecl;external;
1728
 
 
1729
 
  function OCITransPrepare(
1730
 
          svchp:OCISvcCtx;
1731
 
          errhp:OCIError;
1732
 
          flags:cardinal):sword;cdecl;external;
1733
 
 
1734
 
  function OCITransForget(
1735
 
          svchp:OCISvcCtx;
1736
 
          errhp:OCIError;
1737
 
          flags:cardinal):sword;cdecl;external;
1738
 
 
1739
 
  function OCILobAppend(
1740
 
          svchp:OCISvcCtx;
1741
 
          errhp:OCIError;
1742
 
          dst_locp:OCILobLocator;
1743
 
          src_locp:OCILobLocator):sword;cdecl;external;
1744
 
 
1745
 
  function OCILobAssign(
1746
 
          envhp:OCIEnv;
1747
 
          errhp:OCIError;
1748
 
          src_locp:OCILobLocator;
1749
 
          dst_locpp:OCILobLocator):sword;cdecl;external;
1750
 
 
1751
 
  function OCILobCharSetForm(
1752
 
          envhp:OCIEnv;
1753
 
          errhp:OCIError;
1754
 
          locp:OCILobLocator;
1755
 
          csfrm:pbyte):sword;cdecl;external;
1756
 
 
1757
 
  function OCILobCharSetId(
1758
 
          envhp:OCIEnv;
1759
 
          errhp:OCIError;
1760
 
          locp:OCILobLocator;
1761
 
          csid:pword):sword;cdecl;external;
1762
 
 
1763
 
  function OCILobCopy(
1764
 
          svchp:OCISvcCtx;
1765
 
          errhp:OCIError;
1766
 
          dst_locp:OCILobLocator;
1767
 
          src_locp:OCILobLocator;
1768
 
          amount:cardinal;
1769
 
          dst_offset:cardinal;
1770
 
          src_offset:cardinal):sword;cdecl;external;
1771
 
 
1772
 
  function OCILobDisableBuffering(
1773
 
          svchp:OCISvcCtx;
1774
 
          errhp:OCIError;
1775
 
          locp:OCILobLocator):sword;cdecl;external;
1776
 
 
1777
 
  function OCILobEnableBuffering(
1778
 
          svchp:OCISvcCtx;
1779
 
          errhp:OCIError;
1780
 
          locp:OCILobLocator):sword;cdecl;external;
1781
 
 
1782
 
  function OCILobErase(
1783
 
          svchp:OCISvcCtx;
1784
 
          errhp:OCIError;
1785
 
          locp:OCILobLocator;
1786
 
          amount:pcardinal;
1787
 
          offset:cardinal):sword;cdecl;external;
1788
 
 
1789
 
  function OCILobFileClose(
1790
 
          svchp:OCISvcCtx;
1791
 
          errhp:OCIError;
1792
 
          filep:OCILobLocator):sword;cdecl;external;
1793
 
 
1794
 
  function OCILobFileCloseAll(
1795
 
          svchp:OCISvcCtx;
1796
 
          errhp:OCIError):sword;cdecl;external;
1797
 
 
1798
 
  function OCILobFileExists(
1799
 
          svchp:OCISvcCtx;
1800
 
          errhp:OCIError;
1801
 
          filep:OCILobLocator;
1802
 
          flag:pboolean):sword;cdecl;external;
1803
 
 
1804
 
  function OCILobFileGetName(
1805
 
          envhp:OCIEnv;
1806
 
          errhp:OCIError;
1807
 
          filep:OCILobLocator;
1808
 
          dir_alias:PChar;
1809
 
          d_length:pword;
1810
 
          filename:PChar;
1811
 
          f_length:pword):sword;cdecl;external;
1812
 
 
1813
 
  function OCILobFileIsOpen(
1814
 
          svchp:OCISvcCtx;
1815
 
          errhp:OCIError;
1816
 
          filep:OCILobLocator;
1817
 
          flag:pboolean):sword;cdecl;external;
1818
 
 
1819
 
  function OCILobFileOpen(
1820
 
          svchp:OCISvcCtx;
1821
 
          errhp:OCIError;
1822
 
          filep:OCILobLocator;
1823
 
          mode:byte):sword;cdecl;external;
1824
 
 
1825
 
  function OCILobFileSetName(
1826
 
          envhp:OCIEnv;
1827
 
          errhp:OCIError;
1828
 
          filepp:OCILobLocator;
1829
 
          dir_alias:PChar;
1830
 
          d_length:word;
1831
 
          filename:PChar;
1832
 
          f_length:word):sword;cdecl;external;
1833
 
 
1834
 
  function OCILobFlushBuffer(
1835
 
          svchp:OCISvcCtx;
1836
 
          errhp:OCIError;
1837
 
          locp:OCILobLocator;
1838
 
          flag:cardinal):sword;cdecl;external;
1839
 
 
1840
 
  function OCILobGetLength(
1841
 
          svchp:OCISvcCtx;
1842
 
          errhp:OCIError;
1843
 
          locp:OCILobLocator;
1844
 
          lenp:pcardinal):sword;cdecl;external;
1845
 
 
1846
 
  function OCILobIsEqual(
1847
 
          envhp:OCIEnv;
1848
 
          x:OCILobLocator;
1849
 
          y:OCILobLocator;
1850
 
          is_equal:pboolean):sword;cdecl;external;
1851
 
 
1852
 
  function OCILobLoadFromFile(
1853
 
          svchp:OCISvcCtx;
1854
 
          errhp:OCIError;
1855
 
          dst_locp:OCILobLocator;
1856
 
          src_filep:OCILobLocator;
1857
 
          amount:cardinal;
1858
 
          dst_offset:cardinal;
1859
 
          src_offset:cardinal):sword;cdecl;external;
1860
 
 
1861
 
  function OCILobLocatorIsInit(
1862
 
          envhp:OCIEnv;
1863
 
          errhp:OCIError;
1864
 
          locp:OCILobLocator;
1865
 
          is_initialized:pboolean):sword;cdecl;external;
1866
 
 
1867
 
  function OCILobRead(
1868
 
          svchp:OCISvcCtx;
1869
 
          errhp:OCIError;
1870
 
          locp:OCILobLocator;
1871
 
          amtp:pcardinal;
1872
 
          offset:cardinal;
1873
 
          bufp:pointer;
1874
 
          bufl:cardinal;
1875
 
          ctxp:pointer;
1876
 
          cbfp:pointer;
1877
 
          csid:word;
1878
 
          csfrm:byte):sword;cdecl;external;
1879
 
 
1880
 
  function OCILobTrim(
1881
 
          svchp:OCISvcCtx;
1882
 
          errhp:OCIError;
1883
 
          locp:OCILobLocator;
1884
 
          newlen:cardinal):sword;cdecl;external;
1885
 
 
1886
 
  function OCILobWrite(
1887
 
          svchp:OCISvcCtx;
1888
 
          errhp:OCIError;
1889
 
          locp:OCILobLocator;
1890
 
          amtp:pcardinal;
1891
 
          offset:cardinal;
1892
 
          bufp:pointer;
1893
 
          buflen:cardinal;
1894
 
          piece:byte;
1895
 
          ctxp:pointer;
1896
 
          cbfp:pointer;
1897
 
          csid:word;
1898
 
          csfrm:byte):sword;cdecl;external;
1899
 
 
1900
 
  function OCIBreak(
1901
 
          hndlp:pointer;
1902
 
          errhp:OCIError):sword;cdecl;external;
1903
 
 
1904
 
  function OCIReset(
1905
 
          hndlp:pointer;
1906
 
          errhp:OCIError):sword;cdecl;external;
1907
 
 
1908
 
  function OCIServerVersion(
1909
 
          hndlp:pointer;
1910
 
          errhp:OCIError;
1911
 
          bufp:PChar;
1912
 
          bufsz:cardinal;
1913
 
          hndltype:byte):sword;cdecl;external;
1914
 
 
1915
 
  function OCIAttrGet(
1916
 
          trgthndlp:pointer;
1917
 
          trghndltyp:cardinal;
1918
 
          attributep:pointer;
1919
 
          sizep:pcardinal;
1920
 
          attrtype:cardinal;
1921
 
          errhp:OCIError):sword;cdecl;external;
1922
 
 
1923
 
  function OCIAttrSet(
1924
 
          trgthndlp:pointer;
1925
 
          trghndltyp:cardinal;
1926
 
          attributep:pointer;
1927
 
          size:cardinal;
1928
 
          attrtype:cardinal;
1929
 
          errhp:OCIError):sword;cdecl;external;
1930
 
 
1931
 
  function OCISvcCtxToLda(
1932
 
          svchp:OCISvcCtx;
1933
 
          errhp:OCIError;
1934
 
          ldap:pLda_Def):sword;cdecl;external;
1935
 
 
1936
 
  function OCILdaToSvcCtx(
1937
 
          svchpp:OCISvcCtx;
1938
 
          errhp:OCIError;
1939
 
          ldap:pLda_Def):sword;cdecl;external;
1940
 
 
1941
 
  function OCIResultSetToStmt(
1942
 
          rsetdp:OCIResult;
1943
 
          errhp:OCIError):sword;cdecl;external;
1944
 
 
1945
 
  function OCIDateToText(
1946
 
      err:OCIError;
1947
 
          date:POCIDate;
1948
 
          fmt:PChar;
1949
 
          fmt_length:ub1;
1950
 
          lang_name:PChar;
1951
 
      lang_length:ub4;
1952
 
          buf_size:PCardinal;
1953
 
          buf:PChar):sword;cdecl;external;
1954
 
 
1955
 
end.
1956
 
 
1957
 
{
1958
 
  $Log: oraoci.pp,v $
1959
 
  Revision 1.3  2003/08/09 15:19:01  marco
1960
 
   * dl linking killed
1961
 
 
1962
 
  Revision 1.2  2002/09/07 15:42:53  peter
1963
 
    * old logs removed and tabs fixed
1964
 
 
1965
 
  Revision 1.1  2002/01/29 17:54:54  peter
1966
 
    * splitted to base and extra
1967
 
 
1968
 
}