source: trunk/Sibyl/RTL/SQLENV.PAS@ 8

Last change on this file since 8 was 8, checked in by RBRi, 19 years ago

+ rest of sibyl stuff

  • Property svn:eol-style set to native
File size: 78.1 KB
Line 
1UNIT SQLENV;
2
3{**************************************************************************
4 * *
5 * Module Name = SQLENV.H *
6 * *
7 * Descriptive Name = External Include File for Environment Commands *
8 * *
9 * Copyright = 5622-044 (C) Copyright IBM Corp. 1987, 1993 *
10 * Licensed Material - Program Property of IBM *
11 * Refer to Copyright Instructions Form Number G120-3083 *
12 * *
13 * Function = Include File defining *
14 * Database Environment Command Interfaces *
15 * SQL Return Codes in SQLCODE for Environment Commands *
16 * *
17 **************************************************************************}
18
19INTERFACE
20
21USES sql,sqlaprep,sqlcodes,Os2Def;
22
23CONST
24 { Service type }
25 SQLJ_DCSSV = 1; { Connection Services }
26 SQLJ_DBSV = 2; { Database Services }
27
28 { Connection Service request types }
29 SQLJR_NOOP = 0; { Reserved (No-op) }
30 SQLJR_STOPGW = 1; { Stop Database function }
31 SQLJR_INT = 2; { Interrupt the request }
32 SQLJR_STARTGW = 3; { Start Database Connection }
33 SQLJR_RPC = 4; { Application Remote Interface }
34 SQLJR_CS_MAXOP = 5; { Highest Valid Request + 1 }
35
36 { Database Services request types }
37 SQLJR_PREPINIT = 1; { Precompiler/Binder
38 Initialization }
39 SQLJR_PREPFINI = 2; { Precompiler/Binder Termination }
40 SQLJR_COMPILE = 3; { Compile }
41 SQLJR_FREEDA = 4; { Free SQLDA }
42 SQLJR_OPEN = 5 ; { Open Cursor }
43 SQLJR_FETCH = 6 ; { Fetch with Cursor }
44 SQLJR_CLOSE = 7 ; { Close Cursor }
45 SQLJR_EXECUTE = 8 ; { Execute }
46 SQLJR_PREPARE = 9 ; { Prepare }
47 SQLJR_EXECIMMD = 10; { Execute Immediate }
48 SQLJR_COMMIT = 11; { Commit }
49 SQLJR_ROLLBACK = 12; { Rollback }
50 SQLJR_RUNSTATS = 13; { Runstats }
51 SQLJR_PREREORG = 14; { Reserved for Database Manager
52 use only }
53 SQLJR_DESCRIBE = 15; { Describe }
54 SQLJR_RQSVPT = 17; { Request Savepoint }
55 SQLJR_ENSVPT = 18; { End Savepoint }
56 SQLJR_RBSVPT = 19; { Rollback Savepoint }
57 SQLJR_GETAA = 20; { Reserved for Database Manager
58 use only }
59 SQLJR_NOT_USED = 21; { Not used }
60 SQLJR_REORG = 22; { Reserved for Database Manager
61 use only }
62 SQLJR_GETTA = 23; { Get Table/View Authorizations }
63 SQLJR_DS_MAXOP = 24; { Highest Valid Request + 1 }
64
65 { DCS Interface Positive Return Codes returned to and by sqledcsr }
66 SQLJR_RCF_OK =$0000; { Successful Execution }
67 SQLJR_RCF_COMMIT =$0001; { Commit Performed }
68 SQLJR_RCF_ROLLBACK =$0002; { Rollback Performed }
69 SQLJR_RCF_CLOSED =$0004; { Cursors Closed }
70 SQLJR_RCF_HOLD =$0008; { Cursor has Hold option }
71 SQLJR_RCF_BLOCK =$0010; { Cursor can be blocked }
72 SQLJR_RCF_NOBLK =$0020; { Cursor cannot be blocked }
73 SQLJR_RCF_SQLCA =$0040; { SQLCA Modified }
74 SQLJR_RCF_FETCHERR =$0080; { Cursor closed on fetch }
75 SQLJR_RCF_TERMINATE =$0100; { Database Connection Terminated }
76 SQLJR_RCF_SECURITY =$0200; { Security error }
77 SQLJR_RCF_FORCE_RLBK =$0400; { Forced rollback }
78
79 { Number of triplets in sqljra }
80 SQLJCSRA_DATA_ITEMS = 5; { Default Connection Services }
81 SQLJDSRA_DATA_ITEMS = 9; { Default Database Services }
82 SQLJR_STARTGW_DATA_ITEMS= 5; { Extra triplets for STARTGW }
83 SQLJR_MAX_DATA_ITEMS = 11; { Maximum triplets for any request }
84
85 { Data types }
86 SQLJ_TYP_CHAR = 1; { Fixed length character string }
87 SQLJ_TYP_INTEGER = 2; { 4 byte unsigned short }
88 SQLJ_TYP_SMALL = 3; { 2 byte unsigned long }
89 SQLJ_TYP_BIN = 4; { Fixed length binary data }
90 SQLJ_TYP_INSQLDA = 5; { Input SQLDA }
91 SQLJ_TYP_OUTSQLDA = 6; { Output SQLDA }
92 SQLJ_TYP_INHV = 7; { Input SQLDA for host variable
93 descriptions }
94 SQLJ_TYP_OUTHV = 8; { Output SQLDA for host variable
95 descriptions }
96 SQLJ_TYP_SQLCA = 9; { SQLCA }
97 SQLJ_TYP_BNDOPT = 10; { Bind option array }
98 SQLJ_TYP_CSTRING = 11; { Null-terminated character
99 string }
100
101 { Length and count defaults }
102
103 SQLJ_LEN_SQLCA = 136; { SQLCA }
104 SQLJ_LEN_CTK = 8; { Consistency token }
105 SQLJ_LEN_USERID = 8; { Userid }
106 SQLJ_LEN_PGMN = 8; { Package name }
107 SQLJ_LEN_SMALL = 2; { 2-Byte signed integer }
108 SQLJ_LEN_CDPG = 4; { Application or Database
109 codepage }
110 SQLJ_LEN_TBLNAM = 18; { Table name }
111 SQLJ_LEN_DBNAME = 8; { Database name }
112 SQLJ_LEN_DRDADBNAME = 18; { DRDA-1 database name }
113 SQLJ_LEN_PSWD = 8; { User password }
114 SQLJ_LEN_NODE = 8; { Node name }
115 SQLJ_BNDOPT_CNT = 6; { Bind option array count }
116 SQLJ_INDICATOR_ARRAY_SIZE= 8; { Indicator array count }
117
118 SQLJ_RELNO =$0100 ; { SQLJRA version number }
119 SQLJRA_TTL = 'SQLJRA '; { SQLJRA title }
120
121 {********************************************************************}
122 { Indicator array offset defintions }
123 {********************************************************************}
124
125 { sqlrtype = SQLJR_STARTGW
126 - sqlrflag[SQLJ_CONN_OFF]
127 - sqlrflag[SQLJ_USE_OFF] }
128
129 SQLJ_CONN_OFF = 0 ; { Offset for Connection type }
130 SQLJ_USE_OFF = 1 ; { Offset for database use }
131
132 { SQLJ_CONN_OFF values }
133 SQLJ_CONNECT = 1 ; { Connection operation }
134 SQLJ_MIGRATE = 2 ; { Migrate operation }
135 SQLJ_RESTORE = 3 ; { Restore database }
136 SQLJ_RESTART = 4 ; { Restart/recover database }
137 SQLJ_BACKUP = 5 ; { Backup database }
138 SQLJ_RECOVER = 6 ; { Recover database }
139
140 { SQLJ_USE_OFF values }
141 SQLJ_USE_SHR = 'S' ; { Shared use connection }
142 SQLJ_USE_EXC = 'X' ; { Exclusive use connection }
143
144 { sqlrtype = all SQLJ_DBSV sqlrtypes : Standards option
145 - sqlrflag[SQLJ_STND_OFF] }
146
147 SQLJ_STND_OFF = 0 ; { Offset for standards option }
148
149 { SQLJ_STND_OFF values }
150 SQLJ_STND_NONE = '0' ; { No compliance required }
151 SQLJ_STND_MIA = '1' ; { MIA compliance required }
152 SQLJ_STND_SQL89 = '2' ; { SQL 89 compliance required }
153
154 { sqlrtype = SQLJR_COMMIT
155 - sqlrflag[SQLJ_CMMT_OFF] }
156
157 SQLJ_CMMT_OFF = 1 ; { Offset for hold option }
158
159 { SQLJ_CMMT_OFF values }
160 SQLJ_CMMT_NOHOLD = 0 ; { Commit }
161 SQLJ_CMMT_HOLD = 1 ; { Commit hold }
162
163 { sqlrtype = SQLJR_COMPILE
164 - sqlrflag[SQLJ_DCSR_OFF]
165 - sqlrflag[SQLJ_CSRH_OFF]
166 - sqlrflag[SQLJ_SG_OFF] }
167
168 SQLJ_DCSR_OFF = 1 ; { Offset for Statement type }
169 SQLJ_CSRH_OFF = 2 ; { Offset for Cursor Hold option }
170 SQLJ_SG_OFF = 3 ; { Offset for Shallow Grammar }
171
172 { SQLJ_DCSR_OFF values }
173 SQLJ_STMT_NDCLR = 0 ; { Statement is not Declare Cursor}
174 SQLJ_STMT_DCLR = 1 ; { Statement is Declare Cursor }
175
176 { SQLJ_CSRH_OFF values }
177 SQLJ_CSR_NOHOLD = 0 ; { Cursor not declared with Hold }
178 SQLJ_CSR_HOLD = 1 ; { Cursor declared with Hold }
179
180 { SQLJ_SG_OFF values }
181 SQLJ_STMT_VALID = 0 ; { Statement recognized by
182 precompiler }
183 SQLJ_STMT_UNKNOWN = 1 ; { Statement not recognized by
184 precompiler }
185
186 { sqlrtype = SQLJR_EXECUTE
187 sqlrflag[SQLJ_EXEC_OFF] }
188
189 SQLJ_EXEC_OFF = 1 ; { Offset for output SQLDA option }
190
191 { SQLJ_EXEC_OFF and SQLJ_CSRDA_OFF values }
192 SQLJ_NO_OUTSQLDA = 0 ; { Do not return output SQLDA }
193 SQLJ_OUTSQLDA = 1 ; { Return output SQLDA }
194
195
196 { sqlrtype = SQLJR_OPEN
197 - sqlrflag[SQLJ_CSRDA_OFF]
198 - sqlrflag[SQLJ_CSRRW_OFF] }
199
200 SQLJ_CSRDA_OFF = 1 ; { Offset for SQLDA option }
201 SQLJ_CSRRW_OFF = 2 ; { Offset for READ/UPDATE option }
202
203 { SQLJ_CSRDA_OFF values }
204 SQLJ_READ = 0 ; { Output SQLDA for read-only }
205 SQLJ_UPDATE = 1 ; { Output SQLDA will be modified }
206
207 { sqlrtype = SQLJR_PREPFINI
208 - sqlrflag[SQLJ_PFINI_OFF] }
209
210 SQLJ_PFINI_OFF = 0 ; { Offset for Commit/Rollback }
211
212 { SQLJ_PFINI_OFF values }
213 SQLJ_COMMIT = 1 ; { Commit package }
214 SQLJ_ROLLBACK = 0 ; { Rollback package }
215
216 { sqlrtype = SQLJR_RUNSTATS
217 - sqlrflag[SQLJ_STATS_OFF]
218 - sqlrflag[SQLJ_SHRLV_OFF] }
219
220 SQLJ_STATS_OFF = 1 ; { Offset for Statistics option }
221 SQLJ_SHRLV_OFF = 2 ; { Offset for Share level }
222
223 { SQLJ_STATS_OFF values are defined in sqlutil.pas }
224
225 { SQLJ_SHRLV_OFF values are defined in sqlutil.pas }
226
227{***************************************************************************}
228{ Triplet defintions }
229{***************************************************************************}
230
231 { sqlrtype = SQLJR_STARTGW }
232 SQLJ_UPW_OFF = 0 ; { user password }
233 SQLJ_ACP_OFF = 1 ; { application code page }
234 SQLJ_ANN_OFF = 2 ; { application node name }
235 SQLJ_APN_OFF = 3 ; { application name }
236 SQLJ_DPW_OFF = 4 ; { database password }
237
238 { sqlrtype = SQLJR_RPC }
239 SQLJ_PRC_OFF = 0 ; { procedure return code }
240 SQLJ_RPN_OFF = 1 ; { remote procedure name }
241 SQLJ_IDA_OFF = 2 ; { input sqlda }
242 SQLJ_ODA_OFF = 3 ; { output sqlda }
243 SQLJ_DAT_OFF = 4 ; { input data area }
244
245 { sqlrtype = SQLJR_COMPILE }
246 SQLJ_STN_OFF = 0 ; { statement number }
247 SQLJ_STT_OFF = 1 ; { statement text }
248 SQLJ_CRN_OFF = 2 ; { cursor name }
249 SQLJ_SEL_OFF = 3 ; { select string }
250
251 { sqlrtype = SQLJR_EXECIMMD
252 SQLJR_PREPARE SQLJR_REORG }
253 SQLJ_TXT_OFF = 0 ; { statement text }
254 SQLJ_ALP_OFF = 1 ; { alternate path }
255
256 { sqlrtype = SQLJR_GETTA
257 SQLJR_RUNSTATS }
258 SQLJ_TNM_OFF = 0 ; { table name }
259 SQLJ_INX_OFF = 1 ; { index list }
260
261 { sqlrtype = SQLJR_PREPINIT }
262
263 SQLJ_BOA_OFF = 0 ; { bind option array }
264
265{***************************************************************************}
266{ Bind Option codepoints }
267{ These are the DDM codepoints which correspond to the all the bind options }
268{ which may be specified with the Database Connection Services Programming }
269{ Interface. }
270{***************************************************************************}
271
272 { sqlrtype = SQLJR_PREPINIT, sqljra.sqlrdata[SQLJ_BOA_OFF], }
273 { sqljra_bindopts.option }
274
275 SQLJ_BO_BNDCRTCTL =$211D ; { Bind create package option }
276 SQLJ_BO_BNDCHKEXS =$211B ; { Bind existence checking }
277 SQLJ_BO_PKGRPLOPT =$211C ; { Bind package replacement option }
278 SQLJ_BO_PKGATHOPT =$211E ; { Bind package authorization }
279 SQLJ_BO_STTSTRDEL =$2120 ; { Bind statement string delimiter }
280 SQLJ_BO_STTDECDEL =$2121 ; { Bind statement decimal delimiter}
281 SQLJ_BO_STTDATFMT =$2122 ; { Bind date format option }
282 SQLJ_BO_STTTIMFMT =$2123 ; { Bind time format option }
283 SQLJ_BO_PKGISOLVL =$2124 ; { Isolation level }
284 SQLJ_BO_PKGDFTCST =$2125 ; { Package default char subtype }
285 SQLJ_BO_QRYBLKCTL =$2132 ; { Query block protocol }
286 SQLJ_BO_DECPRC =$2106 ; { Decimal precision }
287 SQLJ_BO_PKGDFTCC =$119A ; { Package default CCSIDs of col }
288 SQLJ_BO_RDBRLSOPT =$2129 ; { RDB release option }
289 SQLJ_BO_BNDEXPOPT =$2130 ; { Bind explain option }
290 SQLJ_BO_PKGOWNID =$2131 ; { Package owner id }
291 SQLJ_BO_DFTRDBCOL =$2128 ; { Default RDB collection id }
292 SQLJ_BO_TITLE =$0045 ; { Default RDB collection id }
293
294 { Database Manager internal values }
295 SQLJ_BO_STANDARD =$F901 ; { Standards compliance option }
296
297{***************************************************************************}
298{ Bind Option values }
299{ These are the DDM codepoints which correspond to the values for the bind }
300{ options which may be specified with the Database Connection Services }
301{ Programming Interface. }
302{***************************************************************************}
303
304 { sqlrtype = SQLJR_PREPINIT, sqljra.sqlrdata[SQLJ_BOA_OFF], }
305 { sqljra_bindopts.value }
306
307 SQLJ_BO_BNDCHKONL =$2421 ; { Syntax Check only }
308 SQLJ_BO_BNDNERALW =$2422 ; { Create package if no errors }
309 SQLJ_BO_BNDERRALW =$2423 ; { Create Package even if errors }
310 SQLJ_BO_BNDCHK =$2421 ; { Don't create package }
311 SQLJ_BO_BNDCRT =$2422 ; { Create package if no errors }
312 SQLJ_BO_BNDERR =$2423 ; { Create package if errors }
313 SQLJ_BO_EURFMT =$242B ; { European date format }
314 SQLJ_BO_EURTIMFMT =$2430 ; { European time format }
315 SQLJ_BO_ISOFMT =$2429 ; { ISO date format }
316 SQLJ_BO_ISOTIMFMT =$242E ; { ISO time format }
317 SQLJ_BO_JAPANFMT =$242C ; { Japanese date format }
318 SQLJ_BO_JISTIMFMT =$2431 ; { Japanese time format }
319 SQLJ_BO_USAFMT =$242A ; { USA date format }
320 SQLJ_BO_USATIMFMT =$242F ; { USA time format }
321 SQLJ_BO_FRCSNGROW =$2410 ; { Force single row query }
322 SQLJ_BO_LMTBLCK =$2417 ; { Limited block query }
323 SQLJ_BO_SNGROW =$2418 ; { Single row query }
324 SQLJ_BO_ISOLVLCHG =$2441 ; { Isolation lvl = change }
325 SQLJ_BO_ISOLVLCS =$2442 ; { Isolation lvl = cursor stability}
326 SQLJ_BO_ISOLVLRR =$2444 ; { Isolation lvl = repeatable read }
327
328 { Database Manager internal values }
329 SQLJ_BO_STDSQL89 =$F902; { SQL 89 standards compliance }
330 SQLJ_BO_STDMIA =$F903; { MIA standards compliance }
331 SQLJ_BO_STDNONE =$F904; { No standards compliance required}
332 SQLJ_BO_DEFFMT =$F905; { Default country date format }
333 SQLJ_BO_DEFTIMFMT =$F907; { Default country time format }
334 SQLJ_BO_LOCAL =$F906; { Local country date format }
335 SQLJ_BO_LOCALTIM =$F906; { Local country time format }
336
337{***************************************************************************}
338{ Structure Definitions }
339{***************************************************************************}
340
341TYPE
342 { Bind Option Array Element }
343 sqljra_bindopts=RECORD
344 alength:WORD;
345 option:WORD;
346 value:WORD;
347 END;
348
349 { SQLJRA Triplet element }
350 SQLJDATA=RECORD
351 sqlrdtl:ULONG;
352 sqlrdtt:ULONG;
353 sqlrdtp:PChar;
354 END;
355
356 { SQLJRA }
357 SQLJRA=RECORD
358 sqlraid:ARRAY[0..7] OF BYTE;{Eye catcher = 'SQLJRA ' }
359 sqlrabc:ULONG; { Size in bytes }
360 sqlrelno:WORD; { Version number }
361 sqltype:WORD; { Service type }
362 sqlrtype:WORD; { Request type }
363 sqlrdnum:WORD; { Number of triplets }
364 { SQLCA }
365 sqlrcal:ULONG; { Length of SQLCA }
366 sqlrcat:ULONG; { Data type of SQLCA }
367 sqlrcap:PChar; { Pointer to SQLCA }
368 { Input SQLDA }
369 sqlrdail:ULONG; { Length of input SQLDA }
370 sqlrdait:ULONG; { Data type of input SQLDA }
371 sqlrdapi:PChar; { Pointer to input SQLDA }
372 { Output SQLDA }
373 sqlrdaol:ULONG; { Length of output SQLDA }
374 sqlrdaot:ULONG; { Data type of output SQLDA }
375 sqlrdapo:PChar; { Pointer to output SQLDA }
376 { Indicator array }
377 sqlrflgl:ULONG; { Length of indicator array }
378 sqlrflgt:ULONG; { Data type of indicator array }
379 sqlrflag:PChar; { Pointer to indicator array }
380 { Userid }
381 sqlrusrl:ULONG; { Length of userid }
382 sqlrusrt:ULONG; { Data type of userid }
383 sqlruser:PChar; { Pointer to userid }
384 { Database name }
385 sqlrdbnl:ULONG; { Length of database name }
386 sqlrdbnt:ULONG; { Data type of database name }
387 sqlrdbnm:PChar; { Pointer to database name }
388 { Package creator }
389 sqlrcrel:ULONG; { Length of package creator }
390 sqlrcret:ULONG; { Data type of package creator }
391 sqlrcrea:PChar; { Pointer to package creator }
392 { Section Number }
393 sqlrsctl:ULONG; { Length of section number }
394 sqlrsctt:ULONG; { Data type of section number }
395 sqlrsect:PChar; { Pointer to section number }
396 { Package Name }
397 sqlrpgml:ULONG; { Length of package name }
398 sqlrpgmt:ULONG; { Data type of package name }
399 sqlrpgmn:PChar; { Pointer to package name }
400 { Consistency token }
401 sqlrctkl:ULONG; { Length of consistency token }
402 sqlrctkt:ULONG; { Data type of consistency token}
403 sqlrctkp:PChar; { Pointer to consistency token }
404 { Data triplets }
405 sqlrdata:ARRAY[0..SQLJR_MAX_DATA_ITEMS-1] OF SQLJDATA;
406 END;
407
408 SQLJCSRA=SQLJRA; { Connection Services
409 SQLJRA }
410 SQLJDSRA=SQLJRA; { Database Services
411 SQLJRA }
412
413CONST
414 SQLJ_LEN_SQLJRA =sizeof(SQLJRA); { SQLJRA size }
415 SQLJ_LEN_SQLJCSRA =sizeof(SQLJRA); { SQLJCSRA size }
416 SQLJ_LEN_SQLJDSRA =sizeof(SQLJRA); { SQLJDSRA size }
417
418
419 SQLJACB_TTL ='SQLJACB '; { SQLJACB Title }
420 SQLJACB_VER =$0100; { SQLJACB Version }
421
422 { Connection type - SQLJ_ACBH.conn_type }
423 SQLJ_CONN_DRD1 = 1;
424 SQLJ_CONN_ASP0 = 2;
425 SQLJ_CONN_LOC = 3;
426 SQLJ_CONN_VNDR = 0;
427
428 { ACB type - SQLJACB.sqlapcont }
429 SQLJALOC =$00 ; { Database is local to Application }
430 SQLJAREM =$01 ; { Database is remote to Application }
431
432 { ACB Connection States - SQLJACB.sqlapconst }
433 SQLJAINA =$00000000 ; { Application not connected }
434 SQLJAIDL =$00000001 ; { Application is connected to DB }
435 SQLJAREQ =$00000003 ; { SQL in progress, interrupt valid }
436 SQLJAERR =$00000004 ; { Connection in error state }
437 SQLJRCVY =$00000005 ; { Connection in Recovery state }
438 SQLJ_CONN_PAUS =$00000009 ; { Connection in Paused state }
439 SQLJ_IN_LUW =$00000011 ; { In Logical Unit of Work }
440
441 { ACB Connection Pending States - SQLJACB.sqlapconst }
442 SQLJAACT =$00000000 ; { Nothing Pending }
443 SQLJASTA =$00000100 ; { Start Database Pending }
444 SQLJASTO =$00000200 ; { Stop Database Pending }
445 SQLJAINT =$00000400 ; { Request interrupted }
446 SQLJ_PAUS_PEND =$00000800 ; { Pause Database Pending }
447 SQLJ_DB_TERM =$00001000 ; { Database has Terminated }
448
449 { ACB Information States - SQLJACB.sqlapconst }
450 SQLJLOCR =$00000000 ; { Local Request }
451 SQLJREMR =$00010000 ; { Remote Request }
452 SQLJBUSY =$00020000 ; { Cleanup already in progress }
453
454 { ACB Information States - SQLJACB.sqlapconst }
455 SQLJNOIN =$00000000 ; { No Info }
456 SQLJREST =$01000000 ; { Restart Request in Progress }
457 SQLJCDIP =$02000000 ; { Create Database in Progress }
458 SQLJBURS =$04000000 ; { Backup/Restore in Progress }
459 SQLJMIGR =$08000000 ; { Migrate in Progress }
460 SQLJBACK =$10000000 ; { Backup Only in Progress }
461
462TYPE
463 { SQLJ_ACBH }
464 SQLJ_ACBH=RECORD
465 handle:LONG;
466 conn_type:SHORT; { int to short. }
467 END;
468
469 SQLJACB=RECORD
470 sqlacbid:CSTRING[7]; { Control block eye catcher }
471 sqlacbsz:ULONG; { Size in bytes }
472 sqlacbver:WORD; { Version number }
473
474 sqlnacb:WORD; { Reserved for Database Connection
475 Router use only }
476 sqlapcont:WORD; { Application connection type }
477 sqlapconst:ULONG; { Application connection state }
478
479 { Process and thread id }
480 sqlappid:WORD; { Process ID of source element }
481 sqlaptid:WORD; { Thread ID of source element }
482
483 { Codepages }
484 sqlapcpg:WORD; { Codepage of originating
485 application }
486 sqldbcpg:WORD; { Codepage of database }
487
488 { Datastream type }
489 sqldtast:WORD; { Datastream type }
490
491 { Originating Application node }
492 sqlapnnl:ULONG; { Length of application node name }
493 sqlapnnt:WORD; { Data type of application node name }
494 sqlapnn:POINTER; { Pointer to application node name }
495
496 { Originating Application ID }
497 sqlapidl:ULONG; { Length of application id }
498 sqlapidt:WORD; { Data type of application id }
499 sqlapid:POINTER; { Pointer to application id }
500
501 { Database Connection Router internal control block }
502 sqlcrtcbl:ULONG; { Length of Database Connection
503 Router internal control block }
504 sqlcrtcbt:WORD; { Data type of Database Connection
505 Router internal control block }
506 sqlcrtcb:POINTER; { Pointer to Database Connection
507 Router internal control block
508 (Database Connection Router use
509 only) }
510
511 { Target internal control block }
512 sqlcsvcbl:ULONG; { Length of target internal control
513 block }
514 sqlcsvcbt:WORD; { Data type of target internal
515 control block }
516 sqlcsvcb:POINTER; { Pointer to target internal control
517 block }
518
519 { Userid }
520 sqlusl:ULONG; { Length of userid }
521 sqlust:WORD; { Data type of userid }
522 sqluser:PChar; { Pointer to userid }
523
524 { Alias name in system database directory }
525 sqldball:ULONG; { Length of alias name }
526 sqldbalt:WORD; { Data type of alias name }
527 sqldbal:PChar; { Pointer to alias name of database
528 in system database directory }
529
530 { Database name in system database directory }
531 sqlldbnl:ULONG; { Length of database name }
532 sqlldbnt:WORD; { Data type of database name }
533 sqlldbn:PChar; { Pointer to name of database
534 in system database directory }
535
536 { Node name in system database directory }
537 sqlnnl:ULONG; { Length of node name }
538 sqlnnt:WORD; { Data type of node name }
539 sqlnn:PChar; { Pointer to node name in system
540 database directory }
541
542 { Database name in Database Connection Services directory }
543 sqlsdbnl:ULONG; { Length of database name }
544 sqlsdbnt:WORD; { Data type of database name }
545 sqlsdbn:PChar; { Pointer to database name in Database
546 Connection Services directory }
547
548 { Target DLL name }
549 sqlpgmnl:ULONG; { Length of DLL name }
550 sqlpgmnt:WORD; { Data type of DLL name }
551 sqlpgmn:PChar; { Pointer to DLL name of target
552 element }
553
554 { Parameter string }
555 sqlparml:ULONG; { Length of parameter string }
556 sqlparmt:WORD; { Data type of parameter string }
557 sqlparm:PChar; { Pointer to parameter string from
558 Database Connection Services
559 directory }
560 { Target element data heap }
561 sqlrshpl:ULONG; { Length of target data heap }
562 sqlrshpt:WORD; { Data type of target data heap }
563 sqlrshp:PChar; { Pointer to target data heap }
564 END;
565
566CONST
567 SQLJ_LEN_SQLJACB =sizeof(SQLJACB);
568
569 { Interface Parameters/Structures/Return Codes }
570
571
572 { Parameters for START USING DATABASE }
573 SQL_USE_SHR = 'S'; { USE = Share }
574 SQL_USE_EXC = 'X'; { USE = Exclusive }
575
576 { Sizes for entries in sqledinfo, sqleninfo, sqledbstat, sqleusrstat &
577 sql_dir_entry }
578
579 SQL_ALIAS_SZ = 8 ; { Alias name }
580 SQL_USERID_SZ = 8 ; { User Id }
581 SQL_DBNAME_SZ = 8 ; { Database name }
582 SQL_DRIVE_SZ = 2 ; { Drive (Qualified) }
583 SQL_INAME_SZ = 8 ; { Internal db name }
584 SQL_NNAME_SZ = 8 ; { Node name }
585 SQL_DBTYP_SZ = 20 ; { Type of database }
586 SQL_CMT_SZ = 30 ; { Comment }
587 SQL_LOCLU_SZ = 8 ; { Local_lu }
588 SQL_RMTLU_SZ = 8 ; { Partner_lu }
589 SQL_MODE_SZ = 8 ; { Mode }
590 SQL_NRESERVE_SZ = 0 ; { Reserved }
591 SQL_DBSTAT_ALIAS_SZ = 16 ; { Alias name }
592 SQL_DBSTAT_DBNAME_SZ = 16 ; { Database name }
593 SQL_LONG_NAME_SZ = 18 ; { Host database name }
594 SQL_CS_SZ = 256; { collating sequence }
595 SQL_PARAMETER_SZ = 512; { Parameter string }
596 SQL_NETID_SZ = 8 ; { Network ID }
597
598 { Parameters for Entry Type in sqledinfo }
599
600 SQL_HOME = '2' ; { Database is home }
601 SQL_REMOTE = '1' ; { Database is remote }
602 SQL_INDIRECT = '0' ; { Database is indirect }
603
604 { Parameters for adapter number in sqlectnd }
605
606 SQL_ADAPTER_0 = 0 ; { Adapter number 0 }
607 SQL_ADAPTER_1 = 1 ; { Adapter number 1 }
608 SQL_ADAPTER_MIN = 0 ; { Minimum adapter number}
609 SQL_ADAPTER_MAX = 1 ; { Maximum adapter number}
610
611 { Definitions of constants used for Structure IDs }
612
613 SQL_DCS_STR_ID =$0100 ; { DCS directory entry id }
614 SQL_NODE_STR_ID =$0100 ; { Catalog node struct id }
615
616 { Parameters for protcol types in sqlectnd }
617
618 SQL_PROTOCOL_APPC =$00 ; { APPC }
619 SQL_PROTOCOL_NETB =$01 ; { NETBIOS }
620 SQL_PROTOCOL_APPN =$02 ; { APPN }
621
622 { Parameters for New Create Database api }
623
624 SQL_CS_SYSTEM = 0 ; { Coll. Seq. from System }
625 SQL_CS_USER = -1 ; { Coll. Seq. from User }
626 SQL_CS_NONE = -2 ; { Coll. Seq. - none }
627
628
629TYPE
630 {****************************************}
631 { Database Description Block structure }
632 {****************************************}
633 sqledbdesc=RECORD
634 sqldbdid:CSTRING[7]; { eye catcher }
635 sqldbccp:LONG; { comment code page }
636 sqldbcss:LONG; { Source of collating seq. }
637 sqldbudc:ARRAY[0..SQL_CS_SZ-1] OF BYTE; { user-defined collating seq.}
638 sqldbcmt:ARRAY[0..SQL_CMT_SZ] OF BYTE; { comment }
639 END;
640
641 {****************************************}
642 { Database Directory Scan data structure }
643 {****************************************}
644 sqledinfo=RECORD
645 alias:ARRAY[0..SQL_ALIAS_SZ-1] OF BYTE; { Alias name }
646 dbname:ARRAY[0..SQL_DBNAME_SZ-1] OF BYTE; { Database name }
647 drive:ARRAY[0..SQL_DRIVE_SZ-1] OF BYTE; { Drive 'd:' }
648 intname:ARRAY[0..SQL_INAME_SZ-1] OF BYTE; { Database subdirectory }
649 nodename:ARRAY[0..SQL_NNAME_SZ-1] OF BYTE;{ Node name }
650 dbtype:ARRAY[0..SQL_DBTYP_SZ-1] OF BYTE; { Release information }
651 comment:ARRAY[0..SQL_CMT_SZ-1] OF BYTE; { Comment }
652 com_codepage:SHORT; { Code page of comment }
653 atype:BYTE; { Entry type - defines above }
654 END;
655
656 {************************************}
657 { Node Directory Scan data structure }
658 {************************************}
659 sqleninfo=RECORD
660 nodename:ARRAY[0..SQL_NNAME_SZ-1] OF BYTE; { Node name }
661 local_lu:ARRAY[0..SQL_LOCLU_SZ-1] OF BYTE; { Local_lu name }
662 partner_lu:ARRAY[0..SQL_RMTLU_SZ-1] OF BYTE; { Partner_lu name }
663 mode:ARRAY[0..SQL_MODE_SZ-1] OF BYTE; { Mode }
664 comment:ARRAY[0..SQL_CMT_SZ-1] OF BYTE; { Comment }
665 com_codepage:WORD; { Comment code page }
666 adapter:WORD; { Adapter # for Net Bios}
667 networkid:ARRAY[0..SQL_NETID_SZ-1] OF BYTE; { Network ID }
668 protocol:BYTE; { Protocol type }
669 END;
670
671 {********************************************}
672 { General Catalog Node structures and defines}
673 {********************************************}
674 sqle_node_struct=RECORD
675 struct_id:WORD; { Structure Identifier }
676 codepage:WORD; { Codepage for comment }
677 comment:ARRAY[0..SQL_CMT_SZ] OF BYTE; { Comment }
678 nodename:ARRAY[0..SQL_NNAME_SZ] OF BYTE;{ Node name }
679 protocol:BYTE; { Protocol Type }
680 END;
681
682 sqle_node_appc=RECORD { For APPC protocol }
683 local_lu:ARRAY[0..SQL_LOCLU_SZ] OF BYTE; { Local_lu name }
684 partner_lu:ARRAY[0..SQL_RMTLU_SZ] OF BYTE; { Alias Partner_lu name }
685 mode:ARRAY[0..SQL_MODE_SZ] OF BYTE; { Mode }
686 END;
687
688 sqle_node_netb=RECORD { For Netbios Protocol }
689 adapter:WORD; { Adapter Number }
690 remote_nname:ARRAY[0..SQL_RMTLU_SZ] OF BYTE;{ Remote Workstation name}
691 END;
692
693 sqle_node_appn=RECORD { For APPN protocol }
694 networkid:ARRAY[0..SQL_NETID_SZ] OF BYTE; { Network ID }
695 remote_lu:ARRAY[0..SQL_RMTLU_SZ] OF BYTE; { Remoter lu name }
696 local_lu:ARRAY[0..SQL_LOCLU_SZ] OF BYTE; { Local_lu name }
697 mode:ARRAY[0..SQL_MODE_SZ] OF BYTE; { Mode }
698 END;
699
700
701CONST
702 { Sizes for entries in sqlesystat & sqleusrstat }
703
704 SQL_PRODNAME_SZ = 30 ; { Product name }
705 SQL_COMPID_SZ = 9 ; { Component Id }
706 SQL_CORRLVL_SZ = 8 ; { Corrective serv level }
707 SQL_RLSLVL_SZ = 4 ; { Release level }
708
709 { Defines for STATUS parameter on Collect Database Status }
710 SQL_OPSTAT_SYSTEM = 1 ; { Collect system status }
711 SQL_OPSTAT_DATABASE = 2 ; { Collect database stat }
712 SQL_OPSTAT_ALL = 3 ; { Collect all status }
713
714 { Defines for OBJECT parameter on Collect Database Status }
715 SQL_OBJECT_DATABASE = 1 ; { Specified database }
716 SQL_OBJECT_DRIVE = 2 ; { Specified drive }
717 SQL_OBJECT_LOCAL = 3 ; { All local databases }
718
719 { Defines for 'location' field in sqledbstat }
720 SQL_LOCAL_TYPE = 'L';
721 SQL_REMOTE_TYPE = 'R';
722
723 { Defines for 'trans_state' field in sqleusrstat }
724 SQL_TRANS_STATE_STARTED= 'S';
725 SQL_TRANS_STATE_READ = 'R';
726 SQL_TRANS_STATE_CHANGED= 'C';
727
728 { Defines for 'lock_state' field in sqleusrstat }
729 SQL_LOCK_STATE_WAIT = 'W';
730 SQL_LOCK_STATE_NOWAIT = 'N';
731
732
733TYPE
734 {*****************************************}
735 { Collect Database Status data structures }
736 {*****************************************}
737
738 { System Status data structure }
739 sqlesystat=RECORD
740 current_time:ULONG;
741 time_zone_disp:LONG;
742 product_name:ARRAY[0..SQL_PRODNAME_SZ-1] OF BYTE;
743 component_id:ARRAY[0..SQL_COMPID_SZ-1] OF BYTE;
744 reserved:BYTE; { Reserved byte }
745 release_lvl:ARRAY[0..SQL_RLSLVL_SZ-1] OF BYTE;
746 corr_serv_lvl:ARRAY[0..SQL_CORRLVL_SZ-1] OF BYTE;
747 END;
748
749 { Database Status data structure }
750 sqledbstat=RECORD
751 backup_time:ULONG; { Last backup time }
752 time_zone_disp:LONG; { Time zone of backup time }
753 connects:WORD; { Number of current users }
754 db_alias:ARRAY[0..SQL_DBSTAT_ALIAS_SZ-1] OF BYTE; { Alias name }
755 db_name:ARRAY[0..SQL_DBSTAT_DBNAME_SZ-1] OF BYTE; { Database name }
756 location:BYTE; { Local / Remote Database }
757 reserved:BYTE; { Reserved byte }
758 drive:ARRAY[0..SQL_DRIVE_SZ-1] OF BYTE; { Drive containing database }
759 node:ARRAY[0..SQL_NNAME_SZ-1] OF BYTE; { Node containing database }
760 db_type:ARRAY[0..SQL_DBTYP_SZ-1] OF BYTE; { "OS2 DB2" }
761 END;
762
763 { User Status data structure }
764 sqleusrstat=RECORD
765 con_trans:ULONG; { Transactions since connect }
766 con_reqs:ULONG; { Requests since connect }
767 cur_reqs:ULONG; { Requests current transact }
768 connect_time:ULONG; { Time since connect }
769 trans_time:ULONG; { Time since current transact}
770 authid:ARRAY[0..SQL_USERID_SZ-1] OF BYTE; { User's Id }
771 node:ARRAY[0..SQL_NNAME_SZ-1] OF BYTE; { Nodename of connected user }
772 authority_lvl:WORD; { User's authority level }
773 trans_state:BYTE; { Transaction state }
774 lock_state:BYTE; { Transaction lock state }
775 END;
776
777 {*****************************************}
778 { DDCS Directory Entry Data Structure }
779 {*****************************************}
780
781 sql_dir_entry=RECORD
782 struct_id:WORD; { Structure Identifier }
783 release:WORD; { Release level of entry }
784 codepage:WORD; { Codepage of comment }
785 comment:ARRAY[0..SQL_CMT_SZ] OF BYTE; { Directory entry comment }
786 ldb:ARRAY[0..SQL_DBNAME_SZ] OF BYTE; { Local DB name }
787 tdb:ARRAY[0..SQL_LONG_NAME_SZ] OF BYTE; { Target (host) DB name }
788 ar:ARRAY[0..SQL_DBNAME_SZ] OF BYTE; { Appl. requester DLL name }
789 parm:ARRAY[0..SQL_PARAMETER_SZ] OF BYTE;{ Parameter string }
790 END;
791
792CONST
793 SQLENOP = 0;
794
795 { SQL Return Codes in SQLCODE for Environment Commands }
796
797 SQLE_RC_INLUW = -752; { Connect to other DB not allowed }
798 SQLE_RC_W863 = 863; { only SBCS data allowed }
799
800 SQLE_RC_E953 = -953; { agent heap too small }
801 SQLE_RC_E957 = -957; { requestor comm heap too small }
802 SQLE_RC_E959 = -959; { server comm heap too small }
803 SQLE_RC_E961 = -961; { rqstr remote svcs heap too small }
804 SQLE_RC_E962 = -962; { svr remote svcs heap too small }
805
806 SQLE_RC_INVNEWLOGP = 993; { New log path is invalid }
807 SQLE_RC_INVLOGP = 995; { Current log path is invalid }
808
809 SQLE_RC_INVALIAS = -1000;{ invalid alias }
810 SQLE_RC_INVDBNAME = -1001;{ invalid database name }
811 SQLE_RC_INVDRIVE = -1002;{ invalid drive }
812 SQLE_RC_INVPSW = -1003;{ invalid password }
813 SQLE_RC_INSSTOR = -1004;{ insuf storage on file system }
814 SQLE_RC_DUPALIAS = -1005;{ duplicate alias }
815 SQLE_RC_WRONGCODEPG = -1006;{ Appl code page does not match db }
816 SQLE_RC_INV_NEWPSW = -1008;{ invalid new password }
817 SQLE_RC_INVREMOTE = -1009;{ invalid remote command }
818
819 SQLE_RC_INVTYPE = -1010;{ invalid type }
820 SQLE_RC_NODRIVE = -1011;{ no drive for indirect entry }
821 SQLE_RC_NONODE = -1012;{ no nodename for remote entry }
822 SQLE_RC_NODB = -1013;{ alias or database name not found }
823 SQLE_RC_NOMORE = 1014;{ no more entries }
824 SQLE_RC_DB_RESTART = -1015;{ database needs restart }
825 SQLE_RC_INVLLU = -1016;{ invalid local_lu alias }
826 SQLE_RC_INVMODE = -1017;{ invalid mode }
827 SQLE_RC_DUPNODE = -1018;{ duplicate node name }
828 SQLE_RC_INVNODE = -1019;{ invalid node name }
829
830 SQLE_RC_MAXNODE = -1020;{ node could not be cataloged }
831 SQLE_RC_NOTNODE = -1021;{ nodename not found }
832 SQLE_RC_INSSYS = -1022;{ insufficient system resources }
833 SQLE_RC_NOCONV = -1023;{ communication conversation failed }
834 SQLE_RC_NOSUDB = -1024;{ no start using database issued }
835 SQLE_RC_DBACT = -1025;{ databases are active }
836 SQLE_RC_INVSTRT = -1026;{ DATABASE MANAGER already started }
837 SQLE_RC_NONODEDIR = -1027;{ node directory not found }
838 SQLE_RC_INVRLU = -1029;{ partner lu not specified }
839
840 SQLE_RC_MAXDB = -1030;{ database directory full }
841 SQLE_RC_NODBDIR = -1031;{ database directory not found }
842 SQLE_RC_NOSTARTG = -1032;{ START DATABASE MANAGER not issued }
843 SQLE_RC_DIRBUSY = -1033;{ database directory being updated }
844 SQLE_RC_DBBAD = -1034;{ database is damaged }
845 SQLE_RC_DB_INUSE = -1035;{ database already in use }
846 SQLE_RC_FILEDB = -1036;{ database file error }
847 SQLE_RC_FILENODE = -1038;{ node directory file error }
848 SQLE_RC_FILEDIR = -1039;{ directory file error }
849
850 SQLE_RC_MAXAPPLS = -1040;{ Maximum Number of applications }
851 SQLE_RC_MAXDBS = -1041;{ Maximum Number of DB started }
852 SQLE_RC_SYSERR = -1042;{ system error }
853 SQLE_RC_CATBOOT = -1043;{ catalog bootstrap failure }
854 SQLE_RC_INTRRPT = -1044;{ request interrupted by ctrl+break }
855 SQLE_RC_INVINDIR = -1045;{ invalid level of indirection }
856 SQLE_RC_INVAUTHID = -1046;{ invalid userid }
857 SQLE_RC_APCONN = -1047;{ appl already connect to another db}
858 SQLE_RC_USEINVALID = -1048;{ invalid use specified }
859 SQLE_RC_APPSERR = -900;{ appl state in error }
860
861 SQLE_RC_UNCHOME = -1050;{ cannot uncatalog home database }
862 SQLE_RC_NODIRDRV = -1051;{ db direct. drive does not exist }
863 SQLE_RC_NODBDRV = -1052;{ database drive does not exist }
864 SQLE_RC_INTBUSY = -1053;{ interrupt already in progress }
865 SQLE_RC_COMMINP = -1054;{ commit in progress - no int's }
866 SQLE_RC_ROLLINP = -1055;{ rollback in progress - no int's }
867 SQLE_RC_MAXSCAN = -1056;{ maximum allowable scans exceeded }
868 SQLE_RC_NODENTRY = 1057;{ no entries in directory }
869 SQLE_RC_INVHAND = -1058;{ invalid input handle }
870 SQLE_RC_NOSCAN = -1059;{ open scan not issued }
871
872 SQLE_RC_NOCONNECT = -1060;{ user lacks connect privilege }
873 SQLE_RC_BADPATH = -1062;{ database path not found }
874 SQLE_RC_START_OK = -1063;{ startdbs successful }
875 SQLE_RC_STOP_OK = -1064;{ stopdbs successful }
876 SQLE_RC_DB_BADBINDS = 1065;{ n utilities not bound }
877 SQLE_RC_NOMSG = -1068;{ message file not found }
878 SQLE_RC_INVDROP = -1069;{ DB invalid type for drop }
879
880 SQLE_RC_INVDBNAME_PTR= -1070;{ Invalid Database Name ptr }
881 SQLE_RC_INVALIAS_PTR = -1071;{ Invalid Alias pointer }
882 SQLE_RC_INVPSW_PTR = -1074;{ Invalid Password pointer }
883 SQLE_RC_INVCOMM_PTR = -1075;{ Invalid Comment pointer }
884 SQLE_RC_INVCNT_PTR = -1076;{ Invalid Count pointer }
885 SQLE_RC_INVHAND_PTR = -1077;{ Invalid Handle Pointer }
886 SQLE_RC_INVBUFF_PTR = -1078;{ Invalid Buffer pointer }
887 SQLE_RC_INVNODE_PTR = -1079;{ Invalid Node Pointer }
888
889 SQLE_RC_INVLLU_PTR = -1080;{ Invalid Local Lu Pointer }
890 SQLE_RC_INVRLU_PTR = -1081;{ Invalid Remote Lu Pointer }
891 SQLE_RC_INVMODE_PTR = -1082;{ Invalid Mode Pointer }
892 SQLE_RC_BAD_DBDB = -1083;{ Bad Database Description Block }
893 SQLE_RC_KSEGSFAIL = -1084;{ Cannot Allocate Kernel Segments }
894 SQLE_RC_APPHEAPFAIL = -1085;{ Cannot Allocate Application heap }
895 SQLE_RC_OS2ERROR = -1086;{ Unexpected OS/2 error }
896 SQLE_RC_BIND_LIST = 1087;{ Bind list could not be opened }
897 SQLE_RC_BIND_ERROR = 1088;{ Error occurred during bind }
898 SQLE_RC_BIND_INTRRPT = 1089;{ Binding was interrupted }
899
900 SQLE_RC_BAD_APP_REL = -1090;{ Release number of APP is invalid }
901 SQLE_RC_BAD_DB_REL = -1091;{ Release number of database bad }
902
903 SQLE_RC_INSAUTH = -1092;{ Authorization error }
904 SQLE_RC_NOLOGON = -1093;{ User not logged on }
905 SQLE_RC_NDBUSY = -1094;{ Node dir being updated }
906 SQLE_RC_MAX_NDSCAN = -1095;{ Max node scans open }
907 SQLE_RC_REQTYPE = -1096;{ Invalid type for requester node }
908 SQLE_RC_NODERR = -1097;{ Node not found for remote db }
909 SQLE_RC_APCONN_SAME = -1098;{ appl is already connected to db }
910 SQLE_RC_WRPROT_ERR = -1099;{ write protect error on diskette }
911
912 SQLE_RC_NODE_WARN = 1100;{ node not cataloged for database }
913 SQLE_RC_REMCONN_ERR = -1101;{ remote communications error }
914 SQLE_RC_MIG_NODB = -1102;{ No Database Name provided in Call }
915 SQLE_RC_MIG_OK = -1103;{ Migration Successful Message }
916 SQLE_RC_INVPROG_PTR = -1104;{ Invalid program name pointer }
917 SQLE_RC_INV_SPDB = -1105;{ Invalid Stop Using Database }
918 SQLE_RC_INVALID_PROC = -1106;{ Program invalid }
919 SQLE_RC_INTRP_PROC = -1107;{ Program interrupted }
920 SQLE_RC_SYSERR_PROC = -1108;{ Unexpected I/O or OS/2 error }
921 SQLE_RC_NOFILE_PROC = -1109;{ Program file not found }
922 SQLE_RC_ERROR_PROC = -1110;{ Program error }
923 SQLE_RC_BADPGN_PROC = -1111;{ Invalid DLL name format }
924 SQLE_RC_INSMEM_PROC = -1112;{ No memory loading DLL }
925 SQLE_RC_SQLDA_DATATYPE= -1113;{ Data type in output SQLDA changed }
926 SQLE_RC_SQLDA_LENGTH = -1114;{ Data length in output SQLDA change}
927 SQLE_RC_SQLDA_VARS = -1115;{ Number of sqlvars changed in SQLDA}
928 SQLE_RC_BKP_PEND = -1116;{ Backup pending }
929 SQLE_RC_ROLLFWD_PEND = -1117;{ Roll forward pending }
930 SQLE_RC_BKP_INPROG = -1118;{ need to rerun the Backup process }
931 SQLE_RC_RST_INPROG = -1119;{ need to rerun the Restore process }
932 SQLE_RC_BR_INPROG = -1120;{ need to rerun either Backup or }
933
934 SQLE_RC_INVNODESTR_PTR= -1121;{ Node strucutre ptr invalid }
935 SQLE_RC_INVPROTOCOL_PTR=-1122;{ Protocol strucutre ptr invalid }
936 SQLE_RC_INVPROTOCOL = -1123;{ Invalid protocol type }
937 SQLE_RC_INVRNNAME = -1124;{ Invalid remote workstation name }
938 SQLE_RC_INVADAPTER = -1125;{ Invalid adapter number }
939 SQLE_RC_INVNETID = -1126;{ Invalid network id }
940 SQLE_RC_INVPLU = -1127;{ Invalid real partner LU name }
941
942 SQLE_RC_INVOS_OBJ = -1200;{ invalid object specified }
943 SQLE_RC_INVOS_STAT = -1201;{ invalid status specified }
944 SQLE_RC_INVOS_NOSTAT = -1202;{ status has not been collected }
945 SQLE_RC_INVOS_NOUSER = -1203;{ no users connected to database }
946 SQLE_RC_UNSUPP_CODEPG= -1204;{ active codepage is not supported }
947
948 SQLE_RC_NO_SHRD_SEG = -1220;{ DBM shared mem set unavailable }
949 SQLE_RC_NO_ASL_HEAP = -1221;{ ASL heap cannot be allocated }
950 SQLE_RC_ASL_TOO_SMALL= -1222;{ ASL heap is too small }
951 SQLE_RC_NO_AGENT_AVAIL= -1223;{ No more agents available }
952 SQLE_RC_DBM_NOT_RUNNING=-1224;{ DBM is not started }
953
954 SQLE_RC_NOUEXIT = -1267;{ SQLUEXIT file not found }
955
956 SQLE_RC_FILEDCS = -1310;{ DCS Directory file access error }
957 SQLE_RC_DCSDIR_NF = -1311;{ DCS Directory not found }
958 SQLE_RC_NO_ENTRY = -1312;{ DCS Directory is empty }
959 SQLE_RC_MAX_ENTRY = -1313;{ DCS Directory is full }
960 SQLE_RC_INVENTRY_PTR = -1314;{ Entry parameter pointer invalid }
961 SQLE_RC_INVLDB = -1315;{ LDB name has invalid chars }
962 SQLE_RC_LDB_NF = -1316;{ DCS Directory entry not found }
963 SQLE_RC_DUPLDB = -1317;{ DCS Directory duplicate entry }
964 SQLE_RC_INVLENGTH = -1318;{ Invalid element length }
965 SQLE_RC_ENTRYNOT_COL = -1319;{ Entries have not been collected }
966 SQLE_RC_GDBUSY = -1320;{ Cannot access DCS Dir at this time}
967 SQLE_RC_INVSTRUCT_ID = -1321;{ Invalid structure ID }
968 SQLE_RC_DRDANSP = -1325;{ Remote function not supported }
969 SQLE_RC_ACCD = -1326;{ File or directory access denied }
970 SQLE_RC_IMPLCONN_INVDB= -1327;{ Implicit connect - invalid dbname }
971 SQLE_RC_IMPLCONN_NODB= -1328;{ Implicit connect - alias not found}
972 SQLE_RC_PATH_TOO_LONG= -1329;{ Input path too long }
973
974
975
976 {******************************************************}
977 { Database Environment Commands -- Function Prototypes }
978 {******************************************************}
979
980IMPORTS
981 { ALTER DATABASE PASSWORD }
982 FUNCTION sqlealtd_api (database:CSTRING; { database }
983 oldpasswd:CSTRING; { old password }
984 newpasswd:CSTRING; { new password }
985 VAR asqlca:TSQLCA):INTEGER; { SQLCA }
986 APIENTRY; 'SQLE32' name 'sqlealtd_api';
987 { CATALOG DATABASE }
988 FUNCTION sqlecatd_api (database:CSTRING; { database }
989 alias:CSTRING; { alias }
990 atype:LONGWORD; { type }
991 nodename:CSTRING; { nodename }
992 drive:LONGWORD; { drive }
993 comment:CSTRING; { comment }
994 commentcp:LONGWORD; { comment codepage }
995 VAR asqlca:TSQLCA):INTEGER; { SQLCA }
996 APIENTRY; 'SQLE32' name 'sqlecatd_api';
997 { CATALOG NODE }
998 FUNCTION sqlecatn_api (nodename:CSTRING; { nodename }
999 locallu:CSTRING; { local lu }
1000 remotelu:CSTRING; { remote lu }
1001 mode:CSTRING; { mode }
1002 comment:CSTRING; { comment }
1003 cp:LONGINT; { codepage }
1004 VAR asqlca:TSQLCA):INTEGER; { SQLCA }
1005 APIENTRY; 'SQLE32' name 'sqlecatn_api';
1006 { NEW CREATE DATABASE }
1007 FUNCTION sqlecrdb_api (database:CSTRING; { database }
1008 drive:LONGWORD; { drive }
1009 VAR dblock:sqledbdesc;{ database descriptor block }
1010 VAR asqlca:TSQLCA):INTEGER; { SQLCA }
1011 APIENTRY; 'SQLE32' name 'sqlecrdb_api';
1012 { CREATE DATABASE }
1013 FUNCTION sqlecred_api (database:CSTRING; { database }
1014 drive:LONGWORD; { drive }
1015 passwd:CSTRING; { spare, was password }
1016 comment:CSTRING; { comment }
1017 cp:LONGINT; { comment code page }
1018 VAR asqlca:TSQLCA):INTEGER; { SQLCA }
1019 APIENTRY; 'SQLE32' name 'sqlecred_api';
1020 { GENERAL CATALOG NODE }
1021 FUNCTION sqlectnd_api (VAR node:sqle_node_struct; { Node Structure pointer }
1022 p:POINTER; { Protocol Structure pointer }
1023 VAR asqlca:TSQLCA):INTEGER; { SQLCA pointer }
1024 APIENTRY; 'SQLE32' name 'sqlectnd_api';
1025 { CHANGE DATABASE COMMENT }
1026 FUNCTION sqledchg_api (database:CSTRING; { database }
1027 drive:LONGWORD; { drive }
1028 comment:CSTRING; { comment }
1029 cp:LONGINT; { comment codepage }
1030 VAR asqlca:TSQLCA):INTEGER; { SQLCA }
1031 APIENTRY; 'SQLE32' name 'sqledchg_api';
1032 { CLOSE DIRECTORY SCAN }
1033 FUNCTION sqledcls_api (handle:LONGWORD; { handle }
1034 VAR asqlca:TSQLCA):INTEGER; { SQLCA }
1035 APIENTRY; 'SQLE32' name 'sqledcls_api';
1036 { GET NEXT DIRECTORY ENTRY }
1037 FUNCTION sqledgne_api (handle:LONGWORD; { handle }
1038 VAR buffer:sqledinfo; { buffer }
1039 VAR asqlca:TSQLCA):INTEGER; { SQLCA }
1040 APIENTRY; 'SQLE32' name 'sqledgne_api';
1041 { OPEN DIRECTORY SCAN }
1042 FUNCTION sqledops_api (drive:LONGWORD; { drive }
1043 VAR Handle:WORD; { handle }
1044 VAR Count:WORD; { count }
1045 VAR asqlca:TSQLCA):INTEGER; { SQLCA }
1046 APIENTRY; 'SQLE32' name 'sqledops_api';
1047 { DROP DATABASE }
1048 FUNCTION sqledrpd_api (database:CSTRING; { database }
1049 passwd:CSTRING; { spare, was password }
1050 VAR asqlca:TSQLCA):INTEGER; { SQLCA }
1051 APIENTRY; 'SQLE32' name 'sqledrpd_api';
1052 { END SAVE-POINT }
1053 FUNCTION sqleensp (VAR asqlca:TSQLCA):INTEGER; { SQLCA }
1054 APIENTRY; 'SQLE32' name 'sqleensp';
1055 { FREE DATABASE STATUS RESOURCES }
1056 FUNCTION sqlefree_api (VAR asqlca:TSQLCA):INTEGER; { SQLCA }
1057 APIENTRY; 'SQLE32' name 'sqlefree_api';
1058
1059 { ADD DCS DIRECTORY ENTRY }
1060 FUNCTION sqlegdad_api (VAR entry:sql_dir_entry; { Pointer to entry structure }
1061 VAR asqlca:TSQLCA):INTEGER; { SQLCA pointer }
1062 APIENTRY; 'SQLE32' name 'sqlegdad_api';
1063 { CLOSE DCS DIRECTORY SCAN }
1064 FUNCTION sqlegdcl_api (VAR asqlca:TSQLCA):INTEGER;
1065 APIENTRY; 'SQLE32' name 'sqlegdcl_api';
1066 { DELETE DCS DIRECTORY ENTRY }
1067 FUNCTION sqlegdel_api (VAR entry:sql_dir_entry; { Pointer to entry structure }
1068 VAR asqlca:TSQLCA):INTEGER; { SQLCA pointer }
1069 APIENTRY; 'SQLE32' name 'sqlegdel_api';
1070 { GET DCS DIRECTORY ENTRY }
1071 FUNCTION sqlegdge_api (VAR entry:sql_dir_entry; { Pointer to entry structure }
1072 VAR asqlca:TSQLCA):INTEGER; { SQLCA pointer }
1073 APIENTRY; 'SQLE32' name 'sqlegdge_api';
1074 { COPY DCS DIRECTORY ENTRIES }
1075 FUNCTION sqlegdgt_api (VAR Count:SHORT; { Pointer to count variable }
1076 VAR entry:sql_dir_entry; { Pointer to entry structure }
1077 VAR asqlca:TSQLCA):INTEGER; { SQLCA pointer }
1078 APIENTRY; 'SQLE32' name 'sqlegdgt_api';
1079 { SCAN DCS DIRECTORY }
1080 FUNCTION sqlegdsc_api (VAR Count:SHORT; { Pointer to count variable }
1081 VAR asqlca:TSQLCA):INTEGER; { SQLCA pointer }
1082 APIENTRY; 'SQLE32' name 'sqlegdsc_api';
1083 { DCS PROGRAMMING INTERFACE }
1084 FUNCTION sqledcsr_api (VAR handle:sqlj_acbh; { SQLJACB handle }
1085 VAR asqljra:SQLJRA):INTEGER; { Pointer to SQLJRA }
1086 APIENTRY; 'SQLE32' name 'sqledcsr_api';
1087 { INTERRUPT }
1088 FUNCTION sqleintr_api:INTEGER;
1089 APIENTRY; 'SQLE32' name 'sqleintr_api';
1090 { INSTALL SIGNAL HANDLER }
1091 FUNCTION sqleisig_api (VAR asqlca:TSQLCA):INTEGER; { SQLCA }
1092 APIENTRY; 'SQLE32' name 'sqleisig_api';
1093 { FORCE USERS OFF DATABASE & STOPDBM}
1094 FUNCTION sqlekill (VAR asqlca:TSQLCA):INTEGER; { SQLCA }
1095 APIENTRY; 'SQLE32' name 'sqlekill';
1096 { MIGRATE DATABASE }
1097 FUNCTION sqlemigd_api (database:CSTRING; { database name }
1098 passwd:CSTRING; { password }
1099 VAR asqlca:TSQLCA):INTEGER; { SQLCA pointer }
1100 APIENTRY; 'SQLE32' name 'sqlemigd_api';
1101 { CLOSE NODE DIRECTORY SCAN }
1102 FUNCTION sqlencls_api (handle:LONGWORD; { handle }
1103 VAR asqlca:TSQLCA):INTEGER; { SQLCA }
1104 APIENTRY; 'SQLE32' name 'sqlencls_api';
1105 { GET NEXT DATABASE STATUS BLOCK }
1106 FUNCTION sqlenext_api (VAR Count:WORD; { count pointer }
1107 VAR Buffer; { buffer pointer }
1108 VAR asqlca:TSQLCA):INTEGER; { SQLCA }
1109 APIENTRY; 'SQLE32' name 'sqlenext_api';
1110 { GET NEXT NODE ENTRY }
1111 FUNCTION sqlengne_api (handle:LONGWORD; { handle }
1112 VAR buffer:^sqleninfo; { buffer }
1113 VAR asqlca:TSQLCA):INTEGER; { SQLCA }
1114 APIENTRY; 'SQLE32' name 'sqlengne_api';
1115 { OPEN NODE DIRECTORY SCAN }
1116 FUNCTION sqlenops_api (VAR Handle:WORD; { handle }
1117 VAR Count:WORD; { count }
1118 VAR asqlca:TSQLCA):INTEGER; { SQLCA }
1119 APIENTRY; 'SQLE32' name 'sqlenops_api';
1120
1121 { DB APPLICATION REMOTE INTERFACE }
1122 FUNCTION sqleproc_api (path:CSTRING; { Path Name of program to run }
1123 VAR area:TSQLCHAR;{ variable length area pointer }
1124 VAR isqlda:TSQLDA; { input SQLDA }
1125 VAR osqlda:TSQLDA; { output SQLDA }
1126 VAR asqlca:TSQLCA):INTEGER; { SQLCA }
1127 APIENTRY; 'SQLE32' name 'sqleproc_api';
1128 { ROLLBACK SAVE-POINT }
1129 FUNCTION sqlerbsp (VAR asqlca:TSQLCA):INTEGER; { SQLCA }
1130 APIENTRY; 'SQLE32' name 'sqlerbsp';
1131 { RESTART DATABASE }
1132 FUNCTION sqlerest_api (database:CSTRING; { database }
1133 passwd:CSTRING; { spare, password }
1134 VAR asqlca:TSQLCA):INTEGER; { SQLCA }
1135 APIENTRY; 'SQLE32' name 'sqlerest_api';
1136 { REQUEST SAVE-POINT }
1137 FUNCTION sqlerqsp (VAR asqlca:TSQLCA):INTEGER; { SQLCA }
1138 APIENTRY; 'SQLE32' name 'sqlerqsp';
1139 { START DATABASE MANAGER }
1140 FUNCTION sqlestar_api:INTEGER;
1141 APIENTRY; 'SQLE32' name 'sqlestar_api';
1142 { COLLECT DATABASE STATUS }
1143 FUNCTION sqlestat_api (status:LONGWORD; { status requested }
1144 objtype:LONGWORD; { object type }
1145 objlen:LONGWORD; { length of object }
1146 VAR obj; { object pointer }
1147 VAR Count:WORD; { count pointer }
1148 VAR Buffer; { buffer pointer }
1149 VAR asqlca:TSQLCA):INTEGER; { SQLCA }
1150 APIENTRY; 'SQLE32' name 'sqlestat_api';
1151 { STOP DATABASE MANAGER }
1152 FUNCTION sqlestop_api (VAR asqlca:TSQLCA):INTEGER; { SQLCA }
1153 APIENTRY; 'SQLE32' name 'sqlestop_api';
1154 { STOP USING DATABASE }
1155 FUNCTION sqlestpd_api (VAR asqlca:TSQLCA):INTEGER; { SQLCA }
1156 APIENTRY; 'SQLE32' name 'sqlestpd_api';
1157 { START USING DATABASE }
1158 FUNCTION sqlestrd_api (database:CSTRING; { database }
1159 passwd:CSTRING; { spare, password }
1160 use:LONGWORD; { use }
1161 VAR asqlca:TSQLCA):INTEGER; { SQLCA }
1162 APIENTRY; 'SQLE32' name 'sqlestrd_api';
1163 { UNCATALOG DATABASE }
1164 FUNCTION sqleuncd_api (database:CSTRING; { database }
1165 VAR asqlca:TSQLCA):INTEGER; { SQLCA }
1166 APIENTRY; 'SQLE32' name 'sqleuncd_api';
1167 { UNCATALOG NODE }
1168 FUNCTION sqleuncn_api (nodename:CSTRING; { nodename }
1169 VAR asqlca:TSQLCA):INTEGER; { SQLCA }
1170 APIENTRY; 'SQLE32' name 'sqleuncn_api';
1171 { GET USER STATUS }
1172 FUNCTION sqleuser_api (lendbname:LONGWORD; { length of db name }
1173 dbname:CSTRING; { db name pointer }
1174 VAR Buffer; { buffer pointer }
1175 VAR asqlca:TSQLCA):INTEGER; { SQLCA }
1176 APIENTRY; 'SQLE32' name 'sqleuser_api';
1177
1178 { ALTER DATABASE PASSWORD }
1179 FUNCTION SQLGALTD (newpwdlen:LONGWORD; { new password length }
1180 oldpwdlen:LONGWORD; { old password length }
1181 databaselen:LONGWORD; { database length }
1182 VAR asqlca :TSQLCA; { SQLCA }
1183 newpwd:CSTRING; { new password }
1184 OldPwd:CSTRING; { old password }
1185 Database:CSTRING):INTEGER; { database }
1186 APIENTRY; 'SQLAPI32' name 'SQLGALTD';
1187 { CATALOG DATABASE }
1188 FUNCTION SQLGCATD (clen:LONGWORD; { comment length }
1189 nlen:LONGWORD; { node name length }
1190 alen:LONGWORD; { alias length }
1191 dlen:LONGWORD; { database length }
1192 drive:LONGWORD; { drive }
1193 cp:LONGINT; { comment code page }
1194 atype:LONGWORD; { type }
1195 VAR asqlca:TSQLCA; { SQLCA }
1196 comment:CSTRING; { comment }
1197 node:CSTRING; { node name }
1198 alias:CSTRING; { alias }
1199 database:CSTRING):INTEGER; { database }
1200 APIENTRY; 'SQLAPI32' name 'SQLGCATD';
1201
1202 { GENERIC API FOR CATALOG NODE }
1203 FUNCTION SQLGCATN (clen:LONGWORD; { comment length }
1204 nlen:LONGWORD; { mode length }
1205 llen:LONGWORD; { partner lu length }
1206 ulen:LONGWORD; { local lu length }
1207 nolen:LONGWORD; { node name length }
1208 cp:LONGWORD; { code page }
1209 VAR asqlca:TSQLCA; { SQLCA }
1210 comment:CSTRING; { comment }
1211 mode:CSTRING; { mode }
1212 plu:CSTRING; { partner lu }
1213 loclu:CSTRING; { local lu }
1214 nodename:CSTRING):INTEGER; { nodename }
1215 APIENTRY; 'SQLAPI32' name 'SQLGCATN';
1216
1217 {NEW CREATE DATABASE}
1218 FUNCTION SQLGCRDB ( dbnamel:LONGWORD; { database name length }
1219 drive:LONGWORD; { drive }
1220 VAR asqlca:TSQLCA; { pointer to sqlca }
1221 dbname:CSTRING; { pointer to database name }
1222 VAR desc:sqledbdesc):INTEGER; { ptr to db descript block }
1223 APIENTRY; 'SQLAPI32' name 'SQLGCRDB';
1224 { CREATE DATABASE }
1225 FUNCTION SQLGCRED (clen:LONGWORD; { comment length }
1226 plen:LONGWORD; { spare1, was password length }
1227 dlen:LONGWORD; { database length }
1228 drive:LONGWORD; { drive }
1229 cp:LONGINT; { comment code page }
1230 comment:CSTRING;{ comment }
1231 VAR asqlca:TSQLCA; { SQLCA }
1232 passwd:CSTRING; { spare2, was password }
1233 database:CSTRING):INTEGER; { database }
1234 APIENTRY; 'SQLAPI32' name 'SQLGCRED';
1235 { GENERAL CATALOG NODE }
1236 FUNCTION SQLGCTND (VAR asqlca:TSQLCA; { ptr to sqlca }
1237 VAR node:sqle_node_struct; { ptr to node struct }
1238 prot_struct:POINTER { ptr to protocol }
1239 { structure }
1240 ):INTEGER;
1241 APIENTRY; 'SQLAPI32' name 'SQLGCTND';
1242
1243 { CHANGE DATABASE COMMENT }
1244 FUNCTION SQLGDCHG (clen:LONGWORD; { comment length }
1245 dlen:LONGWORD; { database length }
1246 cp:LONGINT; { comment codepage }
1247 drive:LONGWORD; { drive }
1248 VAR asqlca:TSQLCA; { SQLCA }
1249 comment:CSTRING; { comment }
1250 database:CSTRING):INTEGER; { database }
1251 APIENTRY; 'SQLAPI32' name 'SQLGDCHG';
1252 { CLOSE DIRECTORY SCAN }
1253 FUNCTION SQLGDCLS (handle:LONGWORD; { handle }
1254 VAR asqlca:TSQLCA):INTEGER; { SQLCA }
1255 APIENTRY; 'SQLAPI32' name 'SQLGDCLS';
1256 { GET NEXT DIRECTORY ENTRY }
1257 FUNCTION SQLGDGNE (handle:LONGWORD; { handle }
1258 VAR buffer:^sqledinfo; { buffer }
1259 VAR asqlca:TSQLCA):INTEGER; { SQLCA }
1260 APIENTRY; 'SQLAPI32' name 'SQLGDGNE';
1261 { OPEN DIRECTORY SCAN }
1262 FUNCTION SQLGDOPS (drive:LONGWORD; { drive }
1263 VAR handle:WORD; { handle }
1264 VAR Count:WORD; { count }
1265 VAR asqlca:TSQLCA):INTEGER; { SQLCA }
1266 APIENTRY; 'SQLAPI32' name 'SQLGDOPS';
1267 { DROP DATABASE }
1268 FUNCTION SQLGDRPD (plen:LONGWORD; { spare1, was password length }
1269 dlen:LONGWORD; { database length }
1270 VAR asqlca:TSQLCA; { SQLCA }
1271 passwd:CSTRING; { spare2, was password }
1272 database:CSTRING):INTEGER; { database }
1273 APIENTRY; 'SQLAPI32' name 'SQLGDRPD';
1274 { FREE DATABASE STATUS RESOURCES }
1275 FUNCTION SQLGFREE (VAR asqlca:TSQLCA):INTEGER; { SQLCA }
1276 APIENTRY; 'SQLAPI32' name 'SQLGFREE';
1277 { ADD DCS DIRECTORY ENTRY }
1278 FUNCTION SQLGGDAD ( VAR asqlca:TSQLCA; { Ptr to SQLCA }
1279 VAR dir:sql_dir_entry { Ptr to Directory Entry }
1280 ):INTEGER;
1281 APIENTRY; 'SQLAPI32' name 'SQLGGDAD';
1282 { CLOSE DCS DIRECTORY SCAN }
1283 FUNCTION SQLGGDCL (VAR asqlca:TSQLCA; { Pointer to SQLCA }
1284 ): INTEGER;
1285 APIENTRY; 'SQLAPI32' name 'SQLGGDCL';
1286 { DELETE DCS DIRECTORY ENTRY }
1287 FUNCTION SQLGGDEL ( VAR asqlca:TSQLCA; { Ptr to SQLCA }
1288 VAR dir:sql_dir_entry; { Ptr to Directory Entry }
1289 ):INTEGER;
1290 APIENTRY; 'SQLAPI32' name 'SQLGGDEL';
1291 { GET DCS DIRECTORY ENTRY }
1292 FUNCTION SQLGGDGE ( VAR asqlca:TSQLCA; { Ptr to SQLCA }
1293 VAR dir:sql_dir_entry; { Ptr to Directory Entry }
1294 ):INTEGER;
1295 APIENTRY; 'SQLAPI32' name 'SQLGGDGE';
1296 { COPY DCS DIRECTORY ENTRIES }
1297 FUNCTION SQLGGDGT (VAR asqlca:TSQLCA; { Ptr to SQLCA }
1298 VAR count:SHORT; { DCR 911 Ptr to count var }
1299 VAR dir:sql_dir_entry; { Ptr to entry buffer }
1300 ):INTEGER;
1301 APIENTRY; 'SQLAPI32' name 'SQLGGDGT';
1302 { SCAN DCS DIRECTORY }
1303 FUNCTION SQLGGDSC ( VAR asqlca:TSQLCA; { Pointer to SQLCA }
1304 VAR count:SHORT; { DCR 911 Count variable }
1305 ): INTEGER;
1306 APIENTRY; 'SQLAPI32' name 'SQLGGDSC';
1307 { INTERRUPT }
1308 FUNCTION SQLGINTR:INTEGER;
1309 APIENTRY; 'SQLAPI32' name 'SQLGINTR';
1310 { INSTALL SIGNAL HANDLER }
1311 FUNCTION SQLGISIG (VAR asqlca:TSQLCA):INTEGER; { SQLCA }
1312 APIENTRY; 'SQLAPI32' name 'SQLGISIG';
1313 { MIGRATE DATABASE }
1314 FUNCTION SQLGMIGD (dlen:LONGWORD; { Database name length }
1315 plen:LONGWORD; { password length }
1316 database:CSTRING; { database name }
1317 passwd:CSTRING; { password }
1318 VAR asqlca:TSQLCA):INTEGER; { SQLCA pointer }
1319 APIENTRY; 'SQLAPI32' name 'SQLGMIGD';
1320
1321 { CLOSE NODE DIRECTORY SCAN }
1322 FUNCTION SQLGNCLS (handle:LONGWORD; { handle }
1323 VAR asqlca:TSQLCA):INTEGER; { sqlca }
1324 APIENTRY; 'SQLAPI32' name 'SQLGNCLS';
1325 { GET NEXT DATABASE STATUS BLOCK }
1326 FUNCTION SQLGNEXT (VAR Count:WORD; { count pointer }
1327 VAR Buffer; { buffer pointer }
1328 VAR asqlca:TSQLCA):INTEGER; { SQLCA }
1329 APIENTRY; 'SQLAPI32' name 'SQLGNEXT';
1330 { GET NEXT NODE ENTRY }
1331 FUNCTION SQLGNGNE (handle:LONGWORD; { handle }
1332 VAR Buffer:^sqleninfo; { buffer }
1333 VAR asqlca:TSQLCA):INTEGER; { SQLCA }
1334 APIENTRY; 'SQLAPI32' name 'SQLGNGNE';
1335 { OPEN NODE DIRECTORY SCAN }
1336 FUNCTION SQLGNOPS (VAR Handle:WORD; { handle }
1337 VAR Count:WORD; { count }
1338 VAR asqlca:TSQLCA):INTEGER; { SQLCA }
1339 APIENTRY; 'SQLAPI32' name 'SQLGNOPS';
1340 { COLLECT DATABASE STATUS }
1341 FUNCTION SQLGOPST (status:LONGWORD; { status requested }
1342 objtype:LONGWORD; { object type }
1343 objlen:LONGWORD; { length of object }
1344 VAR obj; { object pointer }
1345 VAR count:WORD; { count pointer }
1346 VAR Buffer; { buffer pointer }
1347 VAR asqlca:TSQLCA):INTEGER; { SQLCA }
1348 APIENTRY; 'SQLAPI32' name 'SQLGOPST';
1349 { DB APPLICATION REMOTE INTERFACE }
1350 FUNCTION SQLGPROC (plen:LONGWORD; { program name length }
1351 VAR asqlca:TSQLCA;{ SQLCA }
1352 path:CSTRING; { Path Name of program to run }
1353 VAR isqlda:TSQLDA;{ input SQLDA }
1354 VAR osqlda:TSQLDA;{ output SQLDA }
1355 VAR asqlchar:TSQLCHAR):INTEGER; { variable length area pointer }
1356 APIENTRY; 'SQLAPI32' name 'SQLGPROC';
1357 { RESTART DATABASE }
1358 FUNCTION SQLGREST (plen:LONGWORD; { spare1, was password length }
1359 dlen:LONGWORD; { database length }
1360 VAR asqlca:TSQLCA; { SQLCA }
1361 passwd:CSTRING; { spare2, was password }
1362 database:CSTRING):INTEGER; { database }
1363 APIENTRY; 'SQLAPI32' name 'SQLGREST';
1364
1365 { START DATABASE MANAGER }
1366 FUNCTION SQLGSTAR:INTEGER;
1367 APIENTRY; 'SQLAPI32' name 'SQLGSTAR';
1368 { STOP DATABASE MANAGER }
1369 FUNCTION SQLGSTDM (VAR asqlca:TSQLCA):INTEGER; { SQLCA }
1370 APIENTRY; 'SQLAPI32' name 'SQLGSTDM';
1371 { STOP USING DATABASE }
1372 FUNCTION SQLGSTPD (VAR asqlca:TSQLCA):INTEGER; { SQLCA }
1373 APIENTRY; 'SQLAPI32' name 'SQLGSTPD';
1374 { START USING DATABASE }
1375 FUNCTION SQLGSTRD (plen:LONGWORD; { spare1, was password length }
1376 dlen:LONGWORD; { database length }
1377 use:LONGWORD; { use }
1378 VAR asqlca:TSQLCA; { SQLCA }
1379 passwd:CSTRING; { spare2, was password }
1380 database:CSTRING):INTEGER; { database }
1381 APIENTRY; 'SQLAPI32' name 'SQLGSTRD';
1382 { UNCATALOG DATABASE }
1383 FUNCTION SQLGUNCD (dlen:LONGWORD; { database length }
1384 VAR asqlca:TSQLCA; { SQLCA }
1385 database:CSTRING):INTEGER; { database }
1386 APIENTRY; 'SQLAPI32' name 'SQLGUNCD';
1387 { UNCATALOG NODE }
1388 FUNCTION SQLGUNCN (nlen:LONGWORD; { nodename length }
1389 VAR asqlca:TSQLCA; { SQLCA }
1390 nodename:CSTRING):INTEGER; { nodename }
1391 APIENTRY; 'SQLAPI32' name 'SQLGUNCN';
1392 { GET USER STATUS }
1393 FUNCTION SQLGUSER (dlen:LONGWORD; { length of db name }
1394 database:CSTRING; { db name pointer }
1395 VAR Buffer; { buffer pointer }
1396 VAR asqlca:TSQLCA):INTEGER; { SQLCA }
1397 APIENTRY; 'SQLAPI32' name 'SQLGUSER';
1398END;
1399
1400
1401IMPLEMENTATION
1402
1403END.
Note: See TracBrowser for help on using the repository browser.