gds.pas 43 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420
  1. (*******************************************************************)
  2. (* *)
  3. (* The contents of this file are subject to the Interbase Public *)
  4. (* License Version 1.0 (the "License"); you may not use this file *)
  5. (* except in compliance with the License. You may obtain a copy *)
  6. (* of the License at http://www.Inprise.com/IPL.html *)
  7. (* *)
  8. (* Software distributed under the License is distributed on an *)
  9. (* "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express *)
  10. (* or implied. See the License for the specific language governing *)
  11. (* rights and limitations under the License. *)
  12. (* *)
  13. (* The Original Code was created by Inprise Corporation *)
  14. (* and its predecessors. Portions created by Inprise Corporation are *)
  15. (* Copyright (C) Inprise Corporation. *)
  16. (* *)
  17. (* All Rights Reserved. *)
  18. (* Contributor(s): ______________________________________. *)
  19. (*******************************************************************)
  20. (*
  21. * PROGRAM: Preprocessor
  22. * MODULE: gds.pas
  23. * DESCRIPTION: GDS constants, procedures, etc.
  24. *)
  25. type
  26. gds__handle = ^integer32;
  27. gds__string = array [1..65535] of char;
  28. gds__status_vector = array [1..20] of integer32;
  29. gds__quad = array [1..2] of integer32;
  30. gds__vector = array [1..256] of integer32;
  31. gds__evb_t = array [1..256, 1..31] of char;
  32. gds__teb_t = record
  33. dbb_ptr : ^gds__handle;
  34. tpb_len : integer32;
  35. tpb_ptr : UNIV_PTR;
  36. end;
  37. gds__tm = record
  38. tm_sec : integer32;
  39. tm_min : integer32;
  40. tm_hour : integer32;
  41. tm_mday : integer32;
  42. tm_mon : integer32;
  43. tm_year : integer32;
  44. tm_wday : integer32;
  45. tm_yday : integer32;
  46. tm_isdst : integer32;
  47. end;
  48. sqlvar = record
  49. sqltype : integer16;
  50. sqllen : integer16;
  51. sqldata : UNIV_PTR;
  52. sqlind : UNIV_PTR;
  53. sqlname_length : integer16;
  54. sqlname : array [1..30] of char;
  55. end;
  56. sqlda = record
  57. sqldaid : array [1..8] of char;
  58. sqldabc : integer32;
  59. sqln : integer16;
  60. sqld : integer16;
  61. sqlvars : array [1..100] of sqlvar;
  62. end;
  63. xsqlvar = record
  64. sqltype : integer16;
  65. sqlscale : integer16;
  66. sqlsubtype : integer16;
  67. sqllen : integer16;
  68. sqldata : UNIV_PTR;
  69. sqlind : UNIV_PTR;
  70. sqlname_length : integer16;
  71. sqlname : array [1..32] of char;
  72. relname_length : integer16;
  73. relname : array [1..32] of char;
  74. ownname_length : integer16;
  75. ownname : array [1..32] of char;
  76. aliasname_length : integer16;
  77. aliasname : array [1..32] of char;
  78. end;
  79. xsqlda = record
  80. version : integer16;
  81. sqldaid : array [1..8] of char;
  82. sqldabc : integer32;
  83. sqln : integer16;
  84. sqld : integer16;
  85. sqlvars : array [1..100] of xsqlvar;
  86. end;
  87. procedure GDS__SET_DEBUG (
  88. in debug_val : integer32
  89. ); extern;
  90. procedure GDS__ATTACH_DATABASE (
  91. out stat : gds__status_vector;
  92. in name_length : integer16;
  93. in file_name : UNIV gds__string;
  94. in out db_handle : gds__handle;
  95. in dpb_length : integer16;
  96. in dpb : UNIV gds__string
  97. ); extern;
  98. procedure GDS__CANCEL_BLOB (
  99. out stat : gds__status_vector;
  100. in out blob_handle : gds__handle
  101. ); extern;
  102. procedure GDS__CANCEL_EVENTS (
  103. out stat : gds__status_vector;
  104. in out db_handle : gds__handle;
  105. in id : gds__handle
  106. ); extern;
  107. procedure GDS__CLOSE_BLOB (
  108. out stat : gds__status_vector;
  109. in out blob_handle : gds__handle
  110. ); extern;
  111. procedure GDS__COMMIT_RETAINING (
  112. out stat : gds__status_vector;
  113. in out tra_handle : gds__handle
  114. ); extern;
  115. procedure GDS__COMMIT_TRANSACTION (
  116. out stat : gds__status_vector;
  117. in out tra_handle : gds__handle
  118. ); extern;
  119. procedure GDS__COMPILE_REQUEST (
  120. out stat : gds__status_vector;
  121. in db_handle : gds__handle;
  122. in out request_handle : gds__handle;
  123. in blr_length : integer16;
  124. in blr : UNIV gds__string
  125. ); extern;
  126. procedure GDS__COMPILE_REQUEST2 (
  127. out stat : gds__status_vector;
  128. in db_handle : gds__handle;
  129. in out request_handle : gds__handle;
  130. in blr_length : integer16;
  131. in blr : UNIV gds__string
  132. ); extern;
  133. procedure GDS__CREATE_BLOB (
  134. out stat : gds__status_vector;
  135. in db_handle : gds__handle;
  136. in tra_handle : gds__handle;
  137. in out blob_handle : gds__handle;
  138. out blob_id : gds__quad
  139. ); extern;
  140. procedure GDS__CREATE_BLOB2 (
  141. out stat : gds__status_vector;
  142. in db_handle : gds__handle;
  143. in tra_handle : gds__handle;
  144. in out blob_handle : gds__handle;
  145. out blob_id : gds__quad;
  146. in bpb_length : integer16;
  147. in bpb : UNIV gds__string
  148. ); extern;
  149. procedure GDS__CREATE_DATABASE (
  150. out stat : gds__status_vector;
  151. in name_length : integer16;
  152. in file_name : UNIV gds__string;
  153. in out db_handle : gds__handle;
  154. in dpb_length : integer16;
  155. in dpb : UNIV gds__string;
  156. in dpb_type : integer16
  157. ); extern;
  158. procedure GDS__DDL (
  159. out stat : gds__status_vector;
  160. in db_handle : gds__handle;
  161. in tra_handle : gds__handle;
  162. in mblr_length : integer16;
  163. in mblr : UNIV gds__string
  164. ); extern;
  165. procedure GDS__DETACH_DATABASE (
  166. out stat : gds__status_vector;
  167. in out db_handle : gds__handle
  168. ); extern;
  169. procedure GDS__DROP_DATABASE (
  170. out stat : gds__status_vector;
  171. in name_length : integer16;
  172. in file_name : UNIV gds__string;
  173. in dbtype : integer16
  174. ); extern;
  175. function GDS__EVENT_BLOCK_A (
  176. out events : UNIV_PTR;
  177. out buffer : UNIV_PTR;
  178. in length : integer16;
  179. in names : UNIV gds__evb_t
  180. ) : integer16; extern;
  181. procedure GDS__EVENT_COUNTS_ (
  182. out counts : UNIV gds__vector;
  183. in length : integer16;
  184. in event_buffer : UNIV_PTR;
  185. in result_buffer : UNIV_PTR
  186. ); extern;
  187. procedure GDS__EVENT_WAIT_ (
  188. out stat : gds__status_vector;
  189. in db_handle : gds__handle;
  190. in length : integer16;
  191. in events : UNIV_PTR;
  192. in buffer : UNIV_PTR
  193. ); extern;
  194. procedure GDS__GET_SLICE (
  195. out stat : gds__status_vector;
  196. in db_handle : gds__handle;
  197. in tra_handle : gds__handle;
  198. in blob_id : gds__quad;
  199. in sdl_length : integer16;
  200. in sdl : UNIV gds__string;
  201. in param_length : integer16;
  202. in param : UNIV gds__string;
  203. in slice_length : integer32;
  204. in slice : UNIV gds__string;
  205. in out return_length : integer32
  206. ); extern;
  207. function GDS__GET_SEGMENT (
  208. out stat : gds__status_vector;
  209. in blob_handle : gds__handle;
  210. out length : integer16;
  211. in buffer_length : integer16;
  212. out buffer : UNIV gds__string
  213. ): integer32; extern;
  214. procedure GDS__OPEN_BLOB (
  215. out stat : gds__status_vector;
  216. in db_handle : gds__handle;
  217. in tra_handle : gds__handle;
  218. in out blob_handle : gds__handle;
  219. in blob_id : gds__quad
  220. ); extern;
  221. procedure GDS__OPEN_BLOB2 (
  222. out stat : gds__status_vector;
  223. in db_handle : gds__handle;
  224. in tra_handle : gds__handle;
  225. in out blob_handle : gds__handle;
  226. in blob_id : gds__quad;
  227. in bpb_length : integer16;
  228. in bpb : UNIV gds__string
  229. ); extern;
  230. procedure GDS__PREPARE_TRANSACTION (
  231. out stat : gds__status_vector;
  232. in out tra_handle : gds__handle
  233. ); extern;
  234. procedure GDS__PREPARE_TRANSACTION2 (
  235. out stat : gds__status_vector;
  236. in out tra_handle : gds__handle;
  237. in msg_length : integer16;
  238. in msg : UNIV gds__string
  239. ); extern;
  240. function GDS__PUT_SEGMENT (
  241. out stat : gds__status_vector;
  242. in blob_handle : gds__handle;
  243. in length : integer16;
  244. out buffer : UNIV gds__string
  245. ): integer32; extern;
  246. procedure GDS__PUT_SLICE (
  247. out stat : gds__status_vector;
  248. in db_handle : gds__handle;
  249. in tra_handle : gds__handle;
  250. in blob_id : gds__quad;
  251. in sdl_length : integer16;
  252. in sdl : UNIV gds__string;
  253. in param_length : integer16;
  254. in param : UNIV gds__string;
  255. in slice_length : integer32;
  256. in slice : UNIV gds__string
  257. ); extern;
  258. procedure GDS__QUE_EVENTS (
  259. out stat : gds__status_vector;
  260. in db_handle : gds__handle;
  261. in id : gds__quad;
  262. in length : integer16;
  263. in events : UNIV gds__string;
  264. in ast : gds__handle;
  265. in arg : gds__quad
  266. ); extern;
  267. procedure GDS__RECEIVE (
  268. out stat : gds__status_vector;
  269. in request_handle : gds__handle;
  270. in message_type : integer16;
  271. in message_length : integer16;
  272. in out message : UNIV gds__string;
  273. in instantiation : integer16
  274. ); extern;
  275. procedure GDS__RELEASE_REQUEST (
  276. out stat : gds__status_vector;
  277. in request_handle : gds__handle
  278. ); extern;
  279. procedure GDS__ROLLBACK_TRANSACTION (
  280. out stat : gds__status_vector;
  281. in out tra_handle : gds__handle
  282. ); extern;
  283. procedure GDS__SEND (
  284. out stat : gds__status_vector;
  285. in request_handle : gds__handle;
  286. in message_type : integer16;
  287. in message_length : integer16;
  288. in message : UNIV gds__string;
  289. in instantiation : integer16
  290. ); extern;
  291. procedure GDS__START_AND_SEND (
  292. out stat : gds__status_vector;
  293. in request_handle : gds__handle;
  294. in tra_handle : gds__handle;
  295. in message_type : integer16;
  296. in message_length : integer16;
  297. in message : UNIV gds__string;
  298. in instantiation : integer16
  299. ); extern;
  300. procedure GDS__START_REQUEST (
  301. out stat : gds__status_vector;
  302. in request_handle : gds__handle;
  303. in tra_handle : gds__handle;
  304. in instantiation : integer16
  305. ); extern;
  306. procedure GDS__START_MULTIPLE (
  307. out stat : gds__status_vector;
  308. in out tra_handle : gds__handle;
  309. in tra_count : integer16;
  310. in teb : UNIV gds__string
  311. ); extern;
  312. procedure GDS__START_TRANSACTION (
  313. out stat : gds__status_vector;
  314. in out tra_handle : gds__handle;
  315. in tra_count : integer16;
  316. in db_handle : gds__handle;
  317. in tpb_length : integer16;
  318. in tpb : UNIV gds__string
  319. ); extern;
  320. procedure GDS__UNWIND_REQUEST (
  321. out stat : gds__status_vector;
  322. in request_handle : gds__handle;
  323. in instantiation : integer16
  324. ); extern;
  325. procedure isc_dsql_allocate_statement (
  326. out stat : gds__status_vector;
  327. in db_handle : gds__handle;
  328. in out stmt_handle : gds__handle
  329. ); extern;
  330. procedure isc_dsql_alloc_statement2 (
  331. out stat : gds__status_vector;
  332. in db_handle : gds__handle;
  333. in out stmt_handle : gds__handle
  334. ); extern;
  335. procedure isc_dsql_execute_m (
  336. out stat : gds__status_vector;
  337. in out tra_handle : gds__handle;
  338. in out stmt_handle : gds__handle;
  339. in blr_length : integer32;
  340. in blr : UNIV gds__string;
  341. in msg_type : integer32;
  342. in msg_length : integer32;
  343. in msg : UNIV gds__string
  344. ); extern; val_param;
  345. procedure isc_dsql_execute2_m (
  346. out stat : gds__status_vector;
  347. in out tra_handle : gds__handle;
  348. in out stmt_handle : gds__handle;
  349. in in_blr_length : integer32;
  350. in in_blr : UNIV gds__string;
  351. in in_msg_type : integer32;
  352. in in_msg_length : integer32;
  353. in in_msg : UNIV gds__string;
  354. in out_blr_length : integer32;
  355. in out_blr : UNIV gds__string;
  356. in out_msg_type : integer32;
  357. in out_msg_length : integer32;
  358. in out out_msg : UNIV gds__string
  359. ); extern; val_param;
  360. procedure isc_dsql_free_statement (
  361. out stat : gds__status_vector;
  362. in out stmt_handle : gds__handle;
  363. in option : integer32
  364. ); extern; val_param;
  365. procedure isc_dsql_set_cursor_name (
  366. out stat : gds__status_vector;
  367. in out stmt_handle : gds__handle;
  368. in cursor_name : UNIV gds__string;
  369. in cursor_type : integer32
  370. ); extern; val_param;
  371. procedure gds__ftof (
  372. in string1 : UNIV gds__string;
  373. in length1 : integer16;
  374. in string2 : UNIV gds__string;
  375. in length2 : integer16
  376. ); extern;
  377. procedure gds__print_status (
  378. in stat : gds__status_vector
  379. ); extern;
  380. function gds__sqlcode (
  381. in stat : gds__status_vector
  382. ) : integer32; extern;
  383. procedure gds__encode_date (
  384. in times : gds__tm;
  385. out date : gds__quad
  386. ); extern;
  387. procedure gds__decode_date (
  388. in date : gds__quad;
  389. out times : gds__tm
  390. ); extern;
  391. procedure isc_exec_procedure (
  392. out stat : gds__status_vector;
  393. in out db_handle : gds__handle;
  394. in out tra_handle : gds__handle;
  395. in name_length : integer32;
  396. in proc_name : UNIV gds__string;
  397. in blr_length : integer32;
  398. in blr : UNIV gds__string;
  399. in in_msg_length : integer32;
  400. in in_msg : UNIV gds__string;
  401. in out_msg_length : integer32;
  402. in out out_msg : UNIV gds__string
  403. ); extern; val_param;
  404. const
  405. gds__true = 1;
  406. gds__false = 0;
  407. blr_text = chr(14);
  408. blr_short = chr(7);
  409. blr_long = chr(8);
  410. blr_quad = chr(9);
  411. blr_float = chr(10);
  412. blr_double = chr(27);
  413. blr_d_float = chr(11);
  414. blr_date = chr(35);
  415. blr_varying = chr(37);
  416. blr_cstring = chr(40);
  417. blr_blob = chr(261);
  418. blr_version4 = chr(4);
  419. blr_eoc = chr(76);
  420. blr_end = chr(255);
  421. blr_blob_id = chr(45);
  422. blr_inner = chr(0);
  423. blr_left = chr(1);
  424. blr_right = chr(2);
  425. blr_full = chr(3);
  426. blr_gds_code = chr(0);
  427. blr_sql_code = chr(1);
  428. blr_exception = chr(2);
  429. blr_trigger_code = chr(3);
  430. blr_default_code = chr(4);
  431. blr_assignment = chr(1);
  432. blr_begin = chr(2);
  433. blr_message = chr(4);
  434. blr_erase = chr(5);
  435. blr_fetch = chr(6);
  436. blr_for = chr(7);
  437. blr_if = chr(8);
  438. blr_loop = chr(9);
  439. blr_modify = chr(10);
  440. blr_handler = chr(11);
  441. blr_receive = chr(12);
  442. blr_select = chr(13);
  443. blr_send = chr(14);
  444. blr_store = chr(15);
  445. blr_label = chr(17);
  446. blr_leave = chr(18);
  447. blr_literal = chr(21);
  448. blr_dbkey = chr(22);
  449. blr_field = chr(23);
  450. blr_fid = chr(24);
  451. blr_parameter = chr(25);
  452. blr_variable = chr(26);
  453. blr_average = chr(27);
  454. blr_count = chr(28);
  455. blr_maximum = chr(29);
  456. blr_minimum = chr(30);
  457. blr_total = chr(31);
  458. blr_add = chr(34);
  459. blr_subtract = chr(35);
  460. blr_multiply = chr(36);
  461. blr_divide = chr(37);
  462. blr_negate = chr(38);
  463. blr_concatenate = chr(39);
  464. blr_substring = chr(40);
  465. blr_parameter2 = chr(41);
  466. blr_from = chr(42);
  467. blr_via = chr(43);
  468. blr_null = chr(45);
  469. blr_eql = chr(47);
  470. blr_neq = chr(48);
  471. blr_gtr = chr(49);
  472. blr_geq = chr(50);
  473. blr_lss = chr(51);
  474. blr_leq = chr(52);
  475. blr_containing = chr(53);
  476. blr_matching = chr(54);
  477. blr_starting = chr(55);
  478. blr_between = chr(56);
  479. blr_or = chr(57);
  480. blr_and = chr(58);
  481. blr_not = chr(59);
  482. blr_any = chr(60);
  483. blr_missing = chr(61);
  484. blr_unique = chr(62);
  485. blr_like = chr(63);
  486. blr_stream = chr(65);
  487. blr_set_index = chr(66);
  488. blr_rse = chr(67);
  489. blr_first = chr(68);
  490. blr_project = chr(69);
  491. blr_sort = chr(70);
  492. blr_boolean = chr(71);
  493. blr_ascending = chr(72);
  494. blr_descending = chr(73);
  495. blr_relation = chr(74);
  496. blr_rid = chr(75);
  497. blr_union = chr(76);
  498. blr_map = chr(77);
  499. blr_group_by = chr(78);
  500. blr_aggregate = chr(79);
  501. blr_join_type = chr(80);
  502. blr_agg_count = chr(83);
  503. blr_agg_max = chr(84);
  504. blr_agg_min = chr(85);
  505. blr_agg_total = chr(86);
  506. blr_agg_average = chr(87);
  507. blr_run_count = chr(118);
  508. blr_run_max = chr(89);
  509. blr_run_min = chr(90);
  510. blr_run_total = chr(91);
  511. blr_run_average = chr(92);
  512. blr_upcase = chr(103);
  513. blr_lock_state = chr(104);
  514. blr_value_if = chr(105);
  515. blr_matching2 = chr(106);
  516. blr_index = chr(107);
  517. blr_ansi_like = chr(108);
  518. blr_bookmark = chr(109);
  519. blr_crack = chr(110);
  520. blr_force_crack = chr(111);
  521. blr_seek = chr(112);
  522. blr_find = chr(113);
  523. blr_lock_relation = chr(114);
  524. blr_lock_record = chr(115);
  525. blr_set_bookmark = chr(116);
  526. blr_get_bookmark = chr(117);
  527. blr_parameter3 = chr(88);
  528. blr_rs_stream = chr(119);
  529. blr_exec_proc = chr(120);
  530. blr_begin_range = chr(121);
  531. blr_end_range = chr(122);
  532. blr_delete_range = chr(123);
  533. blr_procedure = chr(124);
  534. blr_pid = chr(125);
  535. blr_exec_pid = chr(126);
  536. blr_singular = chr(127);
  537. blr_abort = chr(128);
  538. blr_block = chr(129);
  539. blr_error_handler = chr(130);
  540. blr_cast = chr(131);
  541. (* Database parameter block stuff *)
  542. gds__dpb_version1 = chr (1);
  543. gds__dpb_cdd_pathname = chr (1); (* not implemented *)
  544. gds__dpb_allocation = chr (2); (* not implemented *)
  545. gds__dpb_journal = chr (3);
  546. gds__dpb_page_size = chr (4);
  547. gds__dpb_num_buffers = chr (5);
  548. gds__dpb_buffer_length = chr (6); (* not implemented *)
  549. gds__dpb_debug = chr (7); (* not implemented *)
  550. gds__dpb_garbage_collect = chr (8); (* not implemented *)
  551. gds__dpb_verify = chr (9);
  552. gds__dpb_sweep = chr (10);
  553. gds__dpb_enable_journal = chr (11);
  554. gds__dpb_disable_journal = chr (12);
  555. gds__dpb_dbkey_scope = chr (13); (* not implemented *)
  556. gds__dpb_number_of_users = chr (14); (* not implemented *)
  557. gds__dpb_trace = chr (15); (* not implemented *)
  558. gds__dpb_no_garbage_collect = chr (16); (* not implemented *)
  559. gds__dpb_damaged = chr (17); (* not implemented *)
  560. gds__dpb_license = chr (18);
  561. gds__dpb_sys_user_name = chr (19);
  562. gds__dpb_encrypt_key = chr (20);
  563. gds__dpb_activate_shadow = chr (21);
  564. gds__dpb_sweep_interval = chr (22);
  565. gds__dpb_delete_shadow = chr (23);
  566. gds__dpb_force_write = chr (24);
  567. gds__dpb_begin_log = chr (25);
  568. gds__dpb_quit_log = chr (26);
  569. gds__dpb_no_reserve = chr (27);
  570. gds__dpb_user_name = chr (28);
  571. gds__dpb_password = chr (29);
  572. gds__dpb_password_enc = chr (30);
  573. gds__dpb_sys_user_name_enc = chr (31);
  574. gds__dpb_pages = chr(1);
  575. gds__dpb_records = chr(2);
  576. gds__dpb_indices = chr(4);
  577. gds__dpb_transactions = chr(8);
  578. gds__dpb_no_update = chr(16);
  579. gds__dpb_repair = chr(32);
  580. gds__dpb_ignore = chr(64);
  581. (* Transaction parameter block stuff *)
  582. gds__tpb_version3 = chr (3);
  583. gds__tpb_consistency = chr (1);
  584. gds__tpb_concurrency = chr (2);
  585. gds__tpb_shared = chr (3);
  586. gds__tpb_protected = chr (4);
  587. gds__tpb_exclusive = chr (5);
  588. gds__tpb_wait = chr (6);
  589. gds__tpb_nowait = chr (7);
  590. gds__tpb_read = chr (8);
  591. gds__tpb_write = chr (9);
  592. gds__tpb_lock_read = chr (10);
  593. gds__tpb_lock_write = chr (11);
  594. gds__tpb_verb_time = chr (12);
  595. gds__tpb_commit_time = chr (13);
  596. gds__tpb_ignore_limbo = chr (14);
  597. (* Blob parameter block stuff *)
  598. gds__bpb_version1 = chr (1);
  599. gds__bpb_source_type = chr (1);
  600. gds__bpb_target_type = chr (2);
  601. gds__bpb_type = chr (3);
  602. gds__bpb_type_segmented = chr (0);
  603. gds__bpb_type_stream = chr (1);
  604. (* Blob routine declarations *)
  605. type
  606. gds__field_name = array [1..31] of char;
  607. gds__file_name = array [1..128] of char;
  608. procedure blob__display (
  609. in blob_id : gds__quad;
  610. in db_handle : gds__handle;
  611. in tra_handle : gds__handle;
  612. in field_name : univ gds__field_name;
  613. in name_length : integer16
  614. ); extern;
  615. procedure blob__dump (
  616. in blob_id : gds__quad;
  617. in db_handle : gds__handle;
  618. in tra_handle : gds__handle;
  619. in file_name : univ gds__file_name;
  620. in name_length : integer16
  621. ); extern;
  622. procedure blob__edit (
  623. in blob_id : gds__quad;
  624. in db_handle : gds__handle;
  625. in tra_handle : gds__handle;
  626. in field_name : univ gds__field_name;
  627. in name_length : integer16
  628. ); extern;
  629. procedure blob__load (
  630. in blob_id : gds__quad;
  631. in db_handle : gds__handle;
  632. in tra_handle : gds__handle;
  633. in file_name : univ gds__file_name;
  634. in name_length : integer16
  635. ); extern;
  636. (* Dynamic SQL procedures *)
  637. procedure gds__close (
  638. out stat : gds__status_vector;
  639. in cursor_name : UNIV gds__string
  640. ); extern;
  641. procedure gds__declare (
  642. out stat : gds__status_vector;
  643. in statement_name : UNIV gds__string;
  644. in cursor_name : UNIV gds__string
  645. ); extern;
  646. procedure gds__describe (
  647. out stat : gds__status_vector;
  648. in statement_name : UNIV gds__string;
  649. in out descriptor : UNIV sqlda
  650. ); extern;
  651. procedure gds__describe_bind (
  652. out stat : gds__status_vector;
  653. in statement_name : UNIV gds__string;
  654. in out descriptor : UNIV sqlda
  655. ); extern;
  656. procedure gds__dsql_finish (
  657. in db_handle : gds__handle
  658. ); extern;
  659. procedure gds__execute (
  660. out stat : gds__status_vector;
  661. in trans_handle : gds__handle;
  662. in statement_name : UNIV gds__string;
  663. in out descriptor : UNIV sqlda
  664. ); extern;
  665. procedure gds__execute_immediate (
  666. out stat : gds__status_vector;
  667. in db_handle : gds__handle;
  668. in trans_handle : gds__handle;
  669. in string_length : integer;
  670. in string : UNIV gds__string
  671. ); extern;
  672. function gds__fetch (
  673. out stat : gds__status_vector;
  674. in cursor_name : UNIV gds__string;
  675. in out descriptor : UNIV sqlda
  676. ) : integer32; extern;
  677. procedure gds__open (
  678. out stat : gds__status_vector;
  679. in trans_handle : gds__handle;
  680. in cursor_name : UNIV gds__string;
  681. in out descriptor : UNIV sqlda
  682. ); extern;
  683. procedure gds__prepare (
  684. out stat : gds__status_vector;
  685. in db_handle : gds__handle;
  686. in trans_handle : gds__handle;
  687. in statement_name : UNIV gds__string;
  688. in string_length : integer;
  689. in string : UNIV gds__string;
  690. in out descriptor : UNIV sqlda
  691. ); extern;
  692. procedure isc_embed_dsql_close (
  693. out stat : gds__status_vector;
  694. in cursor_name : UNIV gds__string
  695. ); extern;
  696. procedure isc_embed_dsql_declare (
  697. out stat : gds__status_vector;
  698. in statement_name : UNIV gds__string;
  699. in cursor_name : UNIV gds__string
  700. ); extern;
  701. procedure isc_embed_dsql_describe (
  702. out stat : gds__status_vector;
  703. in statement_name : UNIV gds__string;
  704. in dialect : integer32;
  705. in out descriptor : UNIV sqlda
  706. ); extern; val_param;
  707. procedure isc_embed_dsql_describe_bind (
  708. out stat : gds__status_vector;
  709. in statement_name : UNIV gds__string;
  710. in dialect : integer32;
  711. in out descriptor : UNIV sqlda
  712. ); extern; val_param;
  713. procedure isc_embed_dsql_execute (
  714. out stat : gds__status_vector;
  715. in out trans_handle : gds__handle;
  716. in statement_name : UNIV gds__string;
  717. in dialect : integer32;
  718. in out descriptor : UNIV sqlda
  719. ); extern; val_param;
  720. procedure isc_embed_dsql_execute2 (
  721. out stat : gds__status_vector;
  722. in out trans_handle : gds__handle;
  723. in statement_name : UNIV gds__string;
  724. in dialect : integer32;
  725. in out in_descriptor : UNIV sqlda;
  726. in out out_descriptor : UNIV sqlda
  727. ); extern; val_param;
  728. procedure isc_embed_dsql_execute_immed (
  729. out stat : gds__status_vector;
  730. in out db_handle : gds__handle;
  731. in out trans_handle : gds__handle;
  732. in string_length : integer32;
  733. in string : UNIV gds__string;
  734. in dialect : integer32;
  735. in out descriptor : UNIV sqlda
  736. ); extern; val_param;
  737. function isc_embed_dsql_fetch (
  738. out stat : gds__status_vector;
  739. in cursor_name : UNIV gds__string;
  740. in dialect : integer32;
  741. in out descriptor : UNIV sqlda
  742. ) : integer32; extern; val_param;
  743. procedure isc_embed_dsql_open (
  744. out stat : gds__status_vector;
  745. in out trans_handle : gds__handle;
  746. in cursor_name : UNIV gds__string;
  747. in dialect : integer32;
  748. in out descriptor : UNIV sqlda
  749. ); extern; val_param;
  750. procedure isc_embed_dsql_prepare (
  751. out stat : gds__status_vector;
  752. in out db_handle : gds__handle;
  753. in out trans_handle : gds__handle;
  754. in statement_name : UNIV gds__string;
  755. in string_length : integer32;
  756. in string : UNIV gds__string;
  757. in dialect : integer32;
  758. in out descriptor : UNIV sqlda
  759. ); extern; val_param;
  760. procedure isc_embed_dsql_release (
  761. out stat : gds__status_vector;
  762. in statement_name : UNIV gds__string
  763. ); extern;
  764. (* Information parameters *)
  765. (* Common, structural codes *)
  766. const
  767. gds__info_end = chr(1);
  768. gds__info_truncated = chr(2);
  769. gds__info_error = chr(3);
  770. (* Database information items *)
  771. gds__info_db_id = chr(4);
  772. gds__info_reads = chr(5);
  773. gds__info_writes = chr(6);
  774. gds__info_fetches = chr(7);
  775. gds__info_marks = chr(8);
  776. gds__info_implementation = chr(11);
  777. gds__info_version = chr(12);
  778. gds__info_base_level = chr(13);
  779. gds__info_page_size = chr(14);
  780. gds__info_num_buffers = chr(15);
  781. gds__info_limbo = chr(16);
  782. gds__info_current_memory = chr(17);
  783. gds__info_max_memory = chr(18);
  784. gds__info_window_turns = chr(19);
  785. gds__info_license = chr(20);
  786. gds__info_allocation = chr(21);
  787. gds__info_attachment_id = chr(22);
  788. gds__info_read_seq_count = chr(23);
  789. gds__info_read_idx_count = chr(24);
  790. gds__info_insert_count = chr(25);
  791. gds__info_update_count = chr(26);
  792. gds__info_delete_count = chr(27);
  793. gds__info_backout_count = chr(28);
  794. gds__info_purge_count = chr(29);
  795. gds__info_expunge_count = chr(30);
  796. gds__info_sweep_interval = chr(31);
  797. gds__info_ods_version = chr(32);
  798. gds__info_ods_minor_version = chr(33);
  799. gds__info_no_reserve = chr(34);
  800. (* Request information items *)
  801. gds__info_number_messages = chr(4);
  802. gds__info_max_message = chr(5);
  803. gds__info_max_send = chr(6);
  804. gds__info_max_receive = chr(7);
  805. gds__info_state = chr(8);
  806. gds__info_message_number = chr(9);
  807. gds__info_message_size = chr(10);
  808. gds__info_request_cost = chr(11);
  809. gds__info_req_active = chr(2);
  810. gds__info_req_inactive = chr(3);
  811. gds__info_req_send = chr(4);
  812. gds__info_req_receive = chr(5);
  813. gds__info_req_select = chr(6);
  814. (* Blob information items *)
  815. gds__info_blob_num_segments = chr(4);
  816. gds__info_blob_max_segment = chr(5);
  817. gds__info_blob_total_length = chr(6);
  818. gds__info_blob_type = chr(7);
  819. (* Transaction information items *)
  820. gds__info_tra_id = chr(4);
  821. (* SQL information items *)
  822. gds__info_sql_select = chr(4);
  823. gds__info_sql_bind = chr(5);
  824. gds__info_sql_num_variables = chr(6);
  825. gds__info_sql_describe_vars = chr(7);
  826. gds__info_sql_describe_end = chr(8);
  827. gds__info_sql_sqlda_seq = chr(9);
  828. gds__info_sql_message_seq = chr(10);
  829. gds__info_sql_type = chr(11);
  830. gds__info_sql_sub_type = chr(12);
  831. gds__info_sql_scale = chr(13);
  832. gds__info_sql_length = chr(14);
  833. gds__info_sql_null_ind = chr(15);
  834. gds__info_sql_field = chr(16);
  835. gds__info_sql_relation = chr(17);
  836. gds__info_sql_owner = chr(18);
  837. gds__info_sql_alias = chr(19);
  838. (* Error codes *)
  839. const
  840. gds_facility = 20;
  841. gds_err_base = 335544320;
  842. gds_err_factor = 1;
  843. gds_arg_end = 0; (* end of argument list *)
  844. gds_arg_gds = 1; (* generic DSRI status value *)
  845. gds_arg_string = 2; (* string argument *)
  846. gds_arg_cstring = 3; (* count & string argument *)
  847. gds_arg_number = 4; (* numeric argument (long) *)
  848. gds_arg_interpreted = 5; (* interpreted status code (string) *)
  849. gds_arg_vms = 6; (* VAX/VMS status code (long) *)
  850. gds_arg_unix = 7; (* UNIX error code *)
  851. gds_arg_domain = 8; (* Apollo/Domain error code *)
  852. gds_arg_dos = 9; (* DOS error code *)
  853. gds_arg_mpexl = 10; (* MPE XL error code *)
  854. gds_arg_mpexl_ipc = 11; (* MPE XL (IPC) error code *)
  855. gds__arith_except = 335544321;
  856. gds__bad_dbkey = 335544322;
  857. gds__bad_db_format = 335544323;
  858. gds__bad_db_handle = 335544324;
  859. gds__bad_dpb_content = 335544325;
  860. gds__bad_dpb_form = 335544326;
  861. gds__bad_req_handle = 335544327;
  862. gds__bad_segstr_handle = 335544328;
  863. gds__bad_segstr_id = 335544329;
  864. gds__bad_tpb_content = 335544330;
  865. gds__bad_tpb_form = 335544331;
  866. gds__bad_trans_handle = 335544332;
  867. gds__bug_check = 335544333;
  868. gds__convert_error = 335544334;
  869. gds__db_corrupt = 335544335;
  870. gds__deadlock = 335544336;
  871. gds__excess_trans = 335544337;
  872. gds__from_no_match = 335544338;
  873. gds__infinap = 335544339;
  874. gds__infona = 335544340;
  875. gds__infunk = 335544341;
  876. gds__integ_fail = 335544342;
  877. gds__invalid_blr = 335544343;
  878. gds__io_error = 335544344;
  879. gds__lock_conflict = 335544345;
  880. gds__metadata_corrupt = 335544346;
  881. gds__not_valid = 335544347;
  882. gds__no_cur_rec = 335544348;
  883. gds__no_dup = 335544349;
  884. gds__no_finish = 335544350;
  885. gds__no_meta_update = 335544351;
  886. gds__no_priv = 335544352;
  887. gds__no_recon = 335544353;
  888. gds__no_record = 335544354;
  889. gds__no_segstr_close = 335544355;
  890. gds__obsolete_metadata = 335544356;
  891. gds__open_trans = 335544357;
  892. gds__port_len = 335544358;
  893. gds__read_only_field = 335544359;
  894. gds__read_only_rel = 335544360;
  895. gds__read_only_trans = 335544361;
  896. gds__read_only_view = 335544362;
  897. gds__req_no_trans = 335544363;
  898. gds__req_sync = 335544364;
  899. gds__req_wrong_db = 335544365;
  900. gds__segment = 335544366;
  901. gds__segstr_eof = 335544367;
  902. gds__segstr_no_op = 335544368;
  903. gds__segstr_no_read = 335544369;
  904. gds__segstr_no_trans = 335544370;
  905. gds__segstr_no_write = 335544371;
  906. gds__segstr_wrong_db = 335544372;
  907. gds__sys_request = 335544373;
  908. gds__unavailable = 335544375;
  909. gds__unres_rel = 335544376;
  910. gds__uns_ext = 335544377;
  911. gds__wish_list = 335544378;
  912. gds__wrong_ods = 335544379;
  913. gds__wronumarg = 335544380;
  914. gds__imp_exc = 335544381;
  915. gds__random = 335544382;
  916. gds__fatal_conflict = 335544383;
  917. (* Minor codes subject to change *)
  918. gds__badblk = 335544384;
  919. gds__invpoolcl = 335544385;
  920. gds__nopoolids = 335544386;
  921. gds__relbadblk = 335544387;
  922. gds__blktoobig = 335544388;
  923. gds__bufexh = 335544389;
  924. gds__syntaxerr = 335544390;
  925. gds__bufinuse = 335544391;
  926. gds__bdbincon = 335544392;
  927. gds__reqinuse = 335544393;
  928. gds__badodsver = 335544394;
  929. gds__relnotdef = 335544395;
  930. gds__fldnotdef = 335544396;
  931. gds__dirtypage = 335544397;
  932. gds__waifortra = 335544398;
  933. gds__doubleloc = 335544399;
  934. gds__nodnotfnd = 335544400;
  935. gds__dupnodfnd = 335544401;
  936. gds__locnotmar = 335544402;
  937. gds__badpagtyp = 335544403;
  938. gds__corrupt = 335544404;
  939. gds__badpage = 335544405;
  940. gds__badindex = 335544406;
  941. gds__dbbnotzer = 335544407;
  942. gds__tranotzer = 335544408;
  943. gds__trareqmis = 335544409;
  944. gds__badhndcnt = 335544410;
  945. gds__wrotpbver = 335544411;
  946. gds__wroblrver = 335544412;
  947. gds__wrodpbver = 335544413;
  948. gds__blobnotsup = 335544414;
  949. gds__badrelation = 335544415;
  950. gds__nodetach = 335544416;
  951. gds__notremote = 335544417;
  952. gds__trainlim = 335544418;
  953. gds__notinlim = 335544419;
  954. gds__traoutsta = 335544420;
  955. gds__connect_reject = 335544421;
  956. gds__dbfile = 335544422;
  957. gds__orphan = 335544423;
  958. gds__no_lock_mgr = 335544424;
  959. gds__ctxinuse = 335544425;
  960. gds__ctxnotdef = 335544426;
  961. gds__datnotsup = 335544427;
  962. gds__badmsgnum = 335544428;
  963. gds__badparnum = 335544429;
  964. gds__virmemexh = 335544430;
  965. gds__blocking_signal = 335544431;
  966. gds__lockmanerr = 335544432;
  967. gds__journerr = 335544433;
  968. gds__keytoobig = 335544434;
  969. gds__nullsegkey = 335544435;
  970. gds__sqlerr = 335544436;
  971. gds__wrodynver = 335544437;
  972. gds__obj_in_use = 335544453;
  973. gds__nofilter = 335544454;
  974. gds__shadow_accessed = 335544455;
  975. gds__invalid_sdl = 335544456;
  976. gds__out_of_bounds = 335544457;
  977. gds__invalid_dimension = 335544458;
  978. gds__rec_in_limbo = 335544459;
  979. gds__shadow_missing = 335544460;
  980. gds__cant_validate = 335544461;
  981. gds__cant_start_journal = 335544462;
  982. gds__gennotdef = 335544463;
  983. gds__cant_start_logging = 335544464;
  984. gds__bad_segstr_type = 335544465;
  985. gds__foreign_key = 335544466;
  986. gds__high_minor = 335544467;
  987. gds__tra_state = 335544468;
  988. gds__trans_invalid = 335544469;
  989. gds__buf_invalid = 335544470;
  990. gds__indexnotdefined = 335544471;
  991. gds__login = 335544472;
  992. gds__invalid_bookmark = 335544473;
  993. gds__bad_lock_level = 335544474;
  994. gds__relation_lock = 335544475;
  995. gds__record_lock = 335544476;
  996. gds__max_idx = 335544477;
  997. gds__jrn_enable = 335544478;
  998. gds__old_failure = 335544479;
  999. gds__old_in_progress = 335544480;
  1000. gds__old_no_space = 335544481;
  1001. gds__no_wal_no_jrn = 335544482;
  1002. gds__num_old_files = 335544483;
  1003. gds__wal_file_open = 335544484;
  1004. gds__bad_stmt_handle = 335544485;
  1005. gds__wal_failure = 335544486;
  1006. gds__walw_err = 335544487;
  1007. gds__logh_small = 335544488;
  1008. gds__logh_inv_version = 335544489;
  1009. gds__logh_open_flag = 335544490;
  1010. gds__logh_open_flag2 = 335544491;
  1011. gds__logh_diff_dbname = 335544492;
  1012. gds__logf_unexpected_eof = 335544493;
  1013. gds__logr_incomplete = 335544494;
  1014. gds__logr_header_small = 335544495;
  1015. gds__logb_small = 335544496;
  1016. gds__wal_illegal_attach = 335544497;
  1017. gds__wal_invalid_wpb = 335544498;
  1018. gds__wal_err_rollover = 335544499;
  1019. gds__no_wal = 335544500;
  1020. gds__drop_wal = 335544501;
  1021. gds__stream_not_defined = 335544502;
  1022. gds__unknown_183 = 335544503;
  1023. gds__wal_subsys_error = 335544504;
  1024. gds__wal_subsys_corrupt = 335544505;
  1025. gds__no_archive = 335544506;
  1026. gds__store_proc_failed = 335544507;
  1027. gds__range_in_use = 335544508;
  1028. gds__range_not_found = 335544509;
  1029. gds__charset_not_found = 335544510;
  1030. gds__lock_timeout = 335544511;
  1031. gds__prcnotdef = 335544512;
  1032. gds__prcmismat = 335544513;
  1033. gds_err_max = 193;
  1034. (* Dynamic Data Definition Language operators *)
  1035. (* Version number *)
  1036. gds__dyn_version_1 = chr(1);
  1037. gds__dyn_eoc = chr(255);
  1038. (* Operations (may be nested) *)
  1039. gds__dyn_begin = chr(2);
  1040. gds__dyn_end = chr(3);
  1041. gds__dyn_if = chr(4);
  1042. gds__dyn_def_database = chr(5);
  1043. gds__dyn_def_global_fld = chr(6);
  1044. gds__dyn_def_local_fld = chr(7);
  1045. gds__dyn_def_idx = chr(8);
  1046. gds__dyn_def_rel = chr(9);
  1047. gds__dyn_def_sql_fld = chr(10);
  1048. gds__dyn_def_view = chr(12);
  1049. gds__dyn_def_trigger = chr(15);
  1050. gds__dyn_def_security_class = chr(120);
  1051. gds__dyn_def_dimension = chr(140);
  1052. gds__dyn_mod_rel = chr(11);
  1053. gds__dyn_mod_global_fld = chr(13);
  1054. gds__dyn_mod_idx = chr(102);
  1055. gds__dyn_mod_local_fld = chr(14);
  1056. gds__dyn_mod_view = chr(16);
  1057. gds__dyn_mod_database = chr(39);
  1058. gds__dyn_mod_security_class = chr(122);
  1059. gds__dyn_mod_trigger = chr(113);
  1060. gds__dyn_delete_database = chr(18);
  1061. gds__dyn_delete_rel = chr(19);
  1062. gds__dyn_delete_global_fld = chr(20);
  1063. gds__dyn_delete_local_fld = chr(21);
  1064. gds__dyn_delete_idx = chr(22);
  1065. gds__dyn_delete_security_class = chr(123);
  1066. gds__dyn_delete_dimensions = chr(143);
  1067. gds__dyn_grant = chr(30);
  1068. gds__dyn_revoke = chr(31);
  1069. gds__dyn_def_primary_key = chr(37);
  1070. gds__dyn_def_foreign_key = chr(38);
  1071. gds__dyn_def_unique = chr(40);
  1072. gds__dyn_def_procedure = chr(164);
  1073. gds__dyn_delete_procedure = chr(165);
  1074. gds__dyn_def_parameter = chr(135);
  1075. gds__dyn_delete_parameter = chr(136);
  1076. gds__dyn_def_intl_info = chr(172);
  1077. gds__dyn_mod_procedure = chr(175);
  1078. gds__dyn_def_exception = chr(181);
  1079. gds__dyn_mod_exception = chr(182);
  1080. gds__dyn_del_exception = chr(183);
  1081. gds__dyn_xcp_msg2 = chr(184);
  1082. gds__dyn_xcp_msg = chr(185);
  1083. gds__dyn_grant_proc = chr(186);
  1084. gds__dyn_grant_trig = chr(187);
  1085. gds__dyn_grant_view = chr(188);
  1086. (* View specific stuff *)
  1087. gds__dyn_view_blr = chr(43);
  1088. gds__dyn_view_source = chr(44);
  1089. gds__dyn_view_relation = chr(45);
  1090. gds__dyn_view_context = chr(46);
  1091. gds__dyn_view_context_name = chr(47);
  1092. (* Generic attributes *)
  1093. gds__dyn_rel_name = chr(50);
  1094. gds__dyn_fld_name = chr(51);
  1095. gds__dyn_idx_name = chr(52);
  1096. gds__dyn_description = chr(53);
  1097. gds__dyn_security_class = chr(54);
  1098. gds__dyn_system_flag = chr(55);
  1099. gds__dyn_update_flag = chr(56);
  1100. gds__dyn_prc_name = chr(166);
  1101. gds__dyn_prm_name = chr(137);
  1102. (* Relation specific attributes *)
  1103. gds__dyn_rel_dbkey_length = chr(61);
  1104. gds__dyn_rel_store_trig = chr(62);
  1105. gds__dyn_rel_modify_trig = chr(63);
  1106. gds__dyn_rel_erase_trig = chr(64);
  1107. gds__dyn_rel_store_trig_source = chr(65);
  1108. gds__dyn_rel_modify_trig_source = chr(66);
  1109. gds__dyn_rel_erase_trig_source = chr(67);
  1110. gds__dyn_rel_erase_ext_file = chr(68);
  1111. gds__dyn_rel_sql_protection = chr(69);
  1112. gds__dyn_rel_constraint = chr(162);
  1113. gds__dyn_delete_rel_constraint = chr(163);
  1114. (* Global field specific attributes *)
  1115. gds__dyn_fld_type = chr(70);
  1116. gds__dyn_fld_length = chr(71);
  1117. gds__dyn_fld_scale = chr(72);
  1118. gds__dyn_fld_sub_type = chr(73);
  1119. gds__dyn_fld_segment_length = chr(74);
  1120. gds__dyn_fld_query_header = chr(75);
  1121. gds__dyn_fld_edit_string = chr(76);
  1122. gds__dyn_fld_validation_blr = chr(77);
  1123. gds__dyn_fld_validate_source = chr(78);
  1124. gds__dyn_fld_computed_blr = chr(79);
  1125. gds__dyn_fld_computed_source = chr(80);
  1126. gds__dyn_fld_missing_value = chr(81);
  1127. gds__dyn_fld_default_value = chr(82);
  1128. gds__dyn_fld_query_name = chr(83);
  1129. gds__dyn_fld_dimensions = chr(84);
  1130. gds__dyn_fld_not_null = chr(85);
  1131. gds__dyn_fld_collation_name = chr(173);
  1132. gds__dyn_fld_character_set_name = chr(174);
  1133. (* Local field specific attributes *)
  1134. gds__dyn_fld_source = chr(90);
  1135. gds__dyn_fld_base_fld = chr(91);
  1136. gds__dyn_fld_position = chr(92);
  1137. gds__dyn_fld_update_flag = chr(93);
  1138. (* Index specific attributes *)
  1139. gds__dyn_idx_unique = chr(100);
  1140. gds__dyn_idx_active = chr(101);
  1141. gds__dyn_idx_type = chr(103);
  1142. gds__dyn_idx_foreign_key = chr(104);
  1143. gds__dyn_idx_ref_column = chr(105);
  1144. (* Trigger specific attributes *)
  1145. gds__dyn_trg_type = chr(110);
  1146. gds__dyn_trg_blr = chr(111);
  1147. gds__dyn_trg_source = chr(112);
  1148. gds__dyn_trg_name = chr(114);
  1149. gds__dyn_trg_sequence = chr(115);
  1150. gds__dyn_trg_inactive = chr(116);
  1151. gds__dyn_trg_msg_number = chr(117);
  1152. gds__dyn_trg_msg = chr(118);
  1153. (* Security Class specific attributes *)
  1154. gds__dyn_scl_acl = chr(121);
  1155. (* Grant/Revoke specific attributes *)
  1156. gds__dyn_grant_user = chr(130);
  1157. gds__dyn_grant_grantor = chr(131);
  1158. gds__dyn_grant_options = chr(132);
  1159. (* dimension specific stuff *)
  1160. gds__dyn_dim_lower = chr(141);
  1161. gds__dyn_dim_upper = chr(142);
  1162. (* File specific attributes *)
  1163. gds__dyn_file_name = chr(125);
  1164. gds__dyn_file_start = chr(126);
  1165. gds__dyn_file_length = chr(127);
  1166. gds__dyn_shadow_number = chr(128);
  1167. gds__dyn_shadow_man_auto = chr(129);
  1168. gds__dyn_shadow_conditional = chr(130);
  1169. (* Function specific attributes *)
  1170. gds__dyn_function_name = chr(145);
  1171. gds__dyn_function_type = chr(146);
  1172. gds__dyn_func_module_name = chr(147);
  1173. gds__dyn_func_entry_point = chr(148);
  1174. gds__dyn_func_return_argument = chr(149);
  1175. gds__dyn_func_arg_position = chr(150);
  1176. gds__dyn_func_mechanism = chr(151);
  1177. gds__dyn_filter_in_subtype = chr(152);
  1178. gds__dyn_filter_out_subtype = chr(153);
  1179. (* Generator specific attributes *)
  1180. gds__dyn_generator_name = chr(95);
  1181. gds__dyn_generator_id = chr(96);
  1182. (* International specific attributes *)
  1183. gds__dyn_fld_cription2 = chr(154);
  1184. gds__dyn_fld_computed_source2 = chr(155);
  1185. gds__dyn_fld_edit_string2 = chr(156);
  1186. gds__dyn_fld_query_header2 = chr(157);
  1187. gds__dyn_fld_validation_source2 = chr(158);
  1188. gds__dyn_fld_trg_msg2 = chr(159);
  1189. gds__dyn_fld_trg_source2 = chr(160);
  1190. gds__dyn_fld_view_source2 = chr(161);
  1191. (* Procedure specific attributes *)
  1192. gds__dyn_prc_inputs = chr(167);
  1193. gds__dyn_prc_outputs = chr(168);
  1194. gds__dyn_prc_source = chr(169);
  1195. gds__dyn_prc_blr = chr(170);
  1196. gds__dyn_prc_source2 = chr(171);
  1197. (* Procedure parameter specific attributes *)
  1198. gds__dyn_prm_number = chr(138);
  1199. gds__dyn_prm_type = chr(139);
  1200. (* Array slice description language (SDL) *)
  1201. gds__sdl_version1 = chr(1);
  1202. gds__sdl_eoc = chr(-1);
  1203. gds__sdl_relation = chr(2);
  1204. gds__sdl_rid = chr(3);
  1205. gds__sdl_field = chr(4);
  1206. gds__sdl_fid = chr(5);
  1207. gds__sdl_struct = chr(6);
  1208. gds__sdl_variable = chr(7);
  1209. gds__sdl_scalar = chr(8);
  1210. gds__sdl_tiny_integer = chr(9);
  1211. gds__sdl_short_integer = chr(10);
  1212. gds__sdl_long_integer = chr(11);
  1213. gds__sdl_literal = chr(12);
  1214. gds__sdl_add = chr(13);
  1215. gds__sdl_subtract = chr(14);
  1216. gds__sdl_multiply = chr(15);
  1217. gds__sdl_divide = chr(16);
  1218. gds__sdl_negate = chr(17);
  1219. gds__sdl_eql = chr(18);
  1220. gds__sdl_neq = chr(19);
  1221. gds__sdl_gtr = chr(20);
  1222. gds__sdl_geq = chr(21);
  1223. gds__sdl_lss = chr(22);
  1224. gds__sdl_leq = chr(23);
  1225. gds__sdl_and = chr(24);
  1226. gds__sdl_or = chr(25);
  1227. gds__sdl_not = chr(26);
  1228. gds__sdl_while = chr(27);
  1229. gds__sdl_assignment = chr(28);
  1230. gds__sdl_label = chr(29);
  1231. gds__sdl_leave = chr(30);
  1232. gds__sdl_begin = chr(31);
  1233. gds__sdl_end = chr(32);
  1234. gds__sdl_do3 = chr(33);
  1235. gds__sdl_do2 = chr(34);
  1236. gds__sdl_do1 = chr(35);
  1237. gds__sdl_element = chr(36);
  1238. (* Dynamic SQL datatypes *)
  1239. const
  1240. SQL_TEXT = 452;
  1241. SQL_VARYING = 448;
  1242. SQL_SHORT = 500;
  1243. SQL_LONG = 496;
  1244. SQL_FLOAT = 482;
  1245. SQL_DOUBLE = 480;
  1246. SQL_D_FLOAT = 530;
  1247. SQL_DATE = 510;
  1248. SQL_BLOB = 520;