oro_interface.inc 47 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201
  1. {
  2. Automatically converted by H2Pas 1.0.0 from oro.h
  3. The following command line parameters were used:
  4. -p
  5. -D
  6. -l
  7. jojo.so
  8. oro.h
  9. }
  10. {$PACKRECORDS C}
  11. { Copyright (c) 1994, 2003, Oracle Corporation. All rights reserved. }
  12. {
  13. NAME
  14. OCI - Oracle Object Interface for External/Internal/Kernel Clients
  15. DESCRIPTION
  16. This header file contains Oracle object interface definitions which
  17. can be included by external user applications, tools, as well as
  18. the kernel. It defines types and constants that are common to all
  19. object interface which is being defined in several other header files
  20. (e.g., ori.h, ort.h, and orl.h).
  21. RELATED DOCUMENTS
  22. TBD
  23. INSPECTION STATUS [[ deletable if no inspection ]]
  24. Inspection date: [[ date of the last logging meeting ]]
  25. Inspection status: [[ exited, not exited, or N/A if exit is not a goal ]]
  26. Estimated increasing cost defects per page:
  27. Rule sets: [[ rule sets inspected against or planned to be
  28. inspected against ]]
  29. ACCEPTANCE REVIEW STATUS [[ deletable if no approval review ]]
  30. Review date: [[ date of the meeting where issues were logged and the
  31. approval status was decided ]]
  32. Review status: [[ current status: accepted, conditionally accepted,
  33. major revision required, rejected ]]
  34. Reviewers: [[ names of the members on the review team ]]
  35. PUBLIC FUNCTIONS
  36. EXAMPLES
  37. Examples are given in the description of each function or macro where
  38. relevant.
  39. MODIFIED
  40. mnanal 06/09/03 - backout of fix 2836388
  41. mnanal 05/14/03 - bug-2836388
  42. srseshad 11/27/02 - Change OCI_TYPECODE_BFLOAT/BDOUBLE codes
  43. rxgovind 10/09/02 - add OCI_TYPECODE_UROWID
  44. mxyang 09/17/02 - grabtrans 'mmorsi_obj_float'
  45. srseshad 09/11/02 -
  46. srseshad 09/01/02 -
  47. aahluwal 06/03/02 - bug 2360115
  48. celsbern 10/19/01 - merge LOG to MAIN
  49. rxgovind 10/16/01 - update typecodes
  50. rxgovind 09/19/01 - add typecodes
  51. rkasamse 08/15/01 - add OCI_DURATION_USER_CALLBACK
  52. jchai 09/24/01 - add type code for PLS_INTEGER
  53. porangas 08/22/01 - Fix bug#1776434
  54. schatter 04/09/01 - merge 1456235: define OCI_DURATION_INVALID
  55. rdani 10/12/00 - 1449943 NOCOPY and PIPELINE
  56. ciyer 05/26/00 - short names for abstract, overriding
  57. rkasamse 05/25/00 - OCCI enhancements
  58. smuralid 05/11/00 - OCITypeMethodFlags - add NOT INSTANTIABLE, OVERRIDING
  59. rxgovind 05/09/00 - add OCI_TYPECODE_NONE
  60. tnbui 07/28/99 - Remove OCI_TYPECODE_TIMESTAMP_ITZ
  61. tnbui 07/21/99 - TS LOCAL TZ
  62. thoang 06/21/99 - Add OCI_TYPECODE_TIMESTAMP_ITZ
  63. thoang 03/04/99 - Add datetime datatypes
  64. rkasamse 10/20/98 - add OCI_ATTR_CACHE_ARRAYFLUSH
  65. rkasamse 10/29/98 - add OCI_DURATION_CALLOUT
  66. rkasamse 04/28/98 - OCI_OBJECT_DETECTCHANGE -> OCI_ATTR_OBJECT_DETECTCHAN
  67. rkasamse 04/28/98 - OCI_OBJECT_NEWNOTNULL -> OCI_ATTR_OBJECT_NEWNOTNULL
  68. rkasamse 04/23/98 - add OCI_OBJECT_DETECTCHANGE
  69. rkasamse 04/03/98 - add OCI_OBJECT_NEWNOTNULL
  70. pmitra 04/01/98 - OCI_LOCK_X_NOWAIT added
  71. rxgovind 02/18/98 - add OCI_TYPECODE_OPAQUE
  72. rkasamse 02/13/98 - Add OCI_DURATION_PROCESS
  73. cxcheng 07/28/97 - fix compile with SLSHORTNAME
  74. skrishna 07/14/97 - add OCIObjectGetProperty
  75. cxcheng 04/30/97 - make OCITypeParamMode values consistent with PL/SQL
  76. skrishna 04/28/97 - undocument OCIObjectProperty & OCIObjectEvent
  77. cxcheng 03/29/97 - remove all remaining short names
  78. sthakur 03/20/97 - add casts to constants
  79. cxcheng 02/21/97 - temporarily put SLSHORTNAME for PL/SQL
  80. cxcheng 02/06/97 - take out short name support except with SLSHORTNAME
  81. lchidamb 01/20/97 - update OCIRef comments
  82. sgollapu 11/19/96 - Add OCI type codes for BOOL,REC,and TAB
  83. cxcheng 11/19/96 - more typecode changes
  84. cxcheng 11/13/96 - add #include for ocidfn.h
  85. cxcheng 11/13/96 - add OCI_TYPECODE_ADT for compatibility
  86. cxcheng 11/12/96 - add SQLT_NCO for named collection
  87. cxcheng 11/11/96 - more changes to typecodes
  88. cxcheng 11/07/96 - #define OCI_TYPECODE_MLSLABEL to SQLT_LAB
  89. cxcheng 11/06/96 - fix #define omission for OROTCNAT
  90. cxcheng 10/30/96 - move OCI_TYPECODE_* to ocidfn.h as SQLT_*
  91. cxcheng 10/28/96 - more beautification changes
  92. jboonleu 10/29/96 - add flags for freeing object
  93. dchatter 10/26/96 - delete redef of OCISvcCtx, OCIError, OCIEnv
  94. cxcheng 10/15/96 - more changes
  95. cxcheng 10/14/96 - more final fixes to constants
  96. mluong 10/11/96 -
  97. mluong 10/11/96 - KOCON and KONSP are in lowercase
  98. mluong 10/11/96 - add some define per Calvin
  99. cxcheng 10/09/96 - add #define for OROOCOSFN to OCI_COPY_NOREF
  100. jboonleu 10/08/96 - change OROOCOSFN to OCICopyFlag
  101. jboonleu 10/07/96 - use new OCI names for cache options
  102. cxcheng 10/07/96 - add OROTCS02 for KOTTCBRI and OROTCS03 as spare
  103. cxcheng 10/07/96 - more lint fixes
  104. cxcheng 10/02/96 - move oronsp to ko.h as konsp
  105. cxcheng 10/01/96 - add long names for readability
  106. cxcheng 10/01/96 - remove orotty and orotal
  107. rjenkins 09/28/96 - 2k char 4k varchar2
  108. jboonleu 09/27/96 - add macro used only in beta2
  109. cxcheng 09/27/96 - move oroenv to oroenv.h
  110. cxcheng 09/24/96 - remove unnecessary orotyp
  111. cxcheng 09/25/96 - add typecode OROTCS01 as placeholder for lob pointer
  112. cxcheng 09/20/96 - add TDO load option orotgo
  113. jboonleu 09/18/96 - add OROOPOREC
  114. jboonleu 09/10/96 - add OROOPODFL
  115. jweisz 08/27/96 - add SQL internal typecode OROTCS00
  116. cxcheng 08/02/96 - add PLSQL internal typecodes OROTCP..
  117. cxcheng 08/01/96 - add OROTCFAR to fill up space left by OROTCCAR
  118. jboonleu 07/16/96 - new pin option
  119. cxcheng 06/18/96 - add casts to OROTNOPRE and OROTNOSCL
  120. cxcheng 05/29/96 - change OROTCNPT back to OROTCDOM
  121. vkrishna 05/27/96 - add OROTCCAR
  122. cxcheng 05/17/96 - replace OROTCFAR with OROTCCAR
  123. cxcheng 05/08/96 - change orotmf from ub1 to ub2
  124. cxcheng 05/07/96 - fix public defines for method types
  125. cxcheng 04/30/96 - change OROTCDOM to OROTCNPT
  126. cxcheng 04/15/96 - remove obsolete OROTTYICT
  127. jboonleu 04/12/96 - add new pin option
  128. sthakur 04/12/96 - add indicator type and indicator status
  129. cxcheng 04/10/96 - add function parameter codes for ORT/KOT
  130. cxcheng 04/03/96 - replace OROTCFAR as OROTCCAR
  131. jwijaya 03/29/96 - add OROTTCCAR
  132. jwijaya 03/27/96 - better comments for orotc
  133. cxcheng 02/23/96 - add typecodes for SMALLINT and VARCHAR2
  134. skrishna 02/22/96 - add oroind - null indicator type
  135. cxcheng 02/21/96 - change lob character codes to OROTCCLB, OROTCBLB...
  136. jboonleu 02/06/96 - new value for predefined duration
  137. cxcheng 01/12/96 - add OROTCCLO, OROTCBLO, OROTCFIL to orotc
  138. cxcheng 12/05/95 - add OROTCDOM and OROTCAAT to orotc
  139. skotsovo 10/30/95 - reserve space for internal 'oid' type
  140. jwijaya 10/20/95 - support variable-length ref
  141. cxcheng 10/03/95 - add OROTMFOR for ordering function to orotmf
  142. cxcheng 10/03/95 - Adding the ordering function type to orotmf
  143. jboonleu 09/28/95 - set OROODTPRE
  144. jboonleu 09/25/95 - add oroodt
  145. skotsovo 03/10/95 - update to only include release 1
  146. jboonleu 02/15/95 - add OROOPOREC, remove orocro, oroolo
  147. skotsovo 01/30/95 - add default max lengths for varrays and vstrings
  148. skotsovo 01/24/95 - categorize sint32, double, and real as number types
  149. (with precision and scale) instead of scalar types.
  150. skotsovo 12/20/94 - add release 1 types
  151. skotsovo 12/12/94 - update according to new ots doc
  152. skotsovo 12/01/94 - add default precision and scale
  153. jwijaya 11/15/94 - rename ORONSPTAB to ORONSPEXT
  154. jwijaya 10/25/94 - tint
  155. jwijaya 10/06/94 - add namespace
  156. jwijaya 10/02/94 - connection handle -> connection number
  157. skotsovo 09/12/94 - keep 0 as uninitialized value for ORT consts
  158. skotsovo 08/24/94 - fix orotec
  159. skotsovo 08/17/94 - modify type code names
  160. skotsovo 08/12/94 - fix 141 lint errors
  161. skotsovo 07/25/94 - modify categorization of complex types (orotc)
  162. skotsovo 07/07/94 - change typecode enum values & add decimal type
  163. skotsovo 07/01/94 - change order of typecodes
  164. jwijaya 06/15/94 - review
  165. jboonleu 06/13/94 - add comments for the object cache options
  166. jwijaya 06/13/94 - adhere to the header file template
  167. skotsovo 06/09/94 - make ots scalar type names consistent with the ots
  168. document
  169. jwijaya 06/07/94 - include oratypes.h instead of s.h
  170. skotsovo 05/24/94 - change typecodes
  171. jwijaya 05/23/94 - fix comments of ororef
  172. skotsovo 05/19/94 - remove type composition
  173. skotsovo 05/09/94 - modified orotc according to new OTS document
  174. jwijaya 05/03/94 - oroid and ororef
  175. jwijaya 01/26/94 - Creation
  176. }
  177. {--------------------------------------------------------------------------- }
  178. { SHORT NAMES SUPPORT SECTION }
  179. {--------------------------------------------------------------------------- }
  180. {$ifdef SLSHORTNAME}
  181. { the following are short names that are only supported on IBM mainframes
  182. with the SLSHORTNAME defined.
  183. With this all subsequent long names will actually be substituted with
  184. the short names here }
  185. const
  186. OCIDuration = oroodt;
  187. OCIInd = oroind;
  188. OCILockOpt = oroolm;
  189. OCIMarkOpt = oroomo;
  190. OCIObjectEvent = orocev;
  191. OCIObjectProperty = oroopr;
  192. OCIPinOpt = oroopo;
  193. OCIRef = ororef;
  194. OCIRefreshOpt = orooro;
  195. OCITypeCode = orotc;
  196. OCITypeEncap = orotec;
  197. OCITypeGetOpt = orotgo;
  198. OCITypeMethodFlag = orotmf;
  199. OCITypeParamMode = orotpm;
  200. OCIObjectPropId = oroopi;
  201. OCIObjectLifetime = oroolft;
  202. OCIObjectMarkstatus = oroomst;
  203. OCI_LOCK_NONE = OROOLMNUL;
  204. OCI_LOCK_X = OROOLMX;
  205. OCI_LOCK_X_NOWAIT = OROOLMXNW;
  206. OCI_MARK_DEFAULT = OROOMODFL;
  207. OCI_MARK_NONE = OROOMONON;
  208. OCI_MARK_UPDATE = OROOMOUPD;
  209. OCI_OBJECTEVENT_AFTER_FLUSH = OROCEVAFL;
  210. OCI_OBJECTEVENT_AFTER_REFRESH = OROCEVARF;
  211. OCI_OBJECTEVENT_BEFORE_FLUSH = OROCEVBFL;
  212. OCI_OBJECTEVENT_BEFORE_REFRESH = OROCEVBRF;
  213. OCI_OBJECTEVENT_WHEN_LOCK = OROCEVWLK;
  214. OCI_OBJECTEVENT_WHEN_MARK_DELETED = OROCEVWDL;
  215. OCI_OBJECTEVENT_WHEN_MARK_UPDATED = OROCEVWUP;
  216. OCI_OBJECTEVENT_WHEN_UNMARK = OROCEVWUM;
  217. OCI_OBJECTPROP_DIRTIED = OROOPRDRT;
  218. OCI_OBJECTPROP_LOADED = OROOPRLOD;
  219. OCI_OBJECTPROP_LOCKED = OROOPRLCK;
  220. OCI_PIN_ANY = OROOPOANY;
  221. OCI_PIN_DEFAULT = OROOPODFL;
  222. OCI_PIN_LATEST = OROOPOLST;
  223. OCI_PIN_RECENT = OROOPOREC;
  224. OCI_REFRESH_LOADED = OROOROLOD;
  225. OCI_TYPEENCAP_PRIVATE = OROTECPVT;
  226. OCI_TYPEENCAP_PUBLIC = OROTECPUB;
  227. OCI_TYPEGET_ALL = OROTGOALL;
  228. OCI_TYPEGET_HEADER = OROTGOHDR;
  229. OCI_TYPEMETHOD_CONSTANT = OROTMCON;
  230. OCI_TYPEMETHOD_CONSTRUCTOR = OROTMCSTR;
  231. OCI_TYPEMETHOD_DESTRUCTOR = OROTMDSTR;
  232. OCI_TYPEMETHOD_INLINE = OROTMINL;
  233. OCI_TYPEMETHOD_MAP = OROTMMAP;
  234. OCI_TYPEMETHOD_OPERATOR = OROTMOP;
  235. OCI_TYPEMETHOD_ORDER = OROTMOR;
  236. OCI_TYPEMETHOD_RNDS = OROTMRDS;
  237. OCI_TYPEMETHOD_RNPS = OROTMRPS;
  238. OCI_TYPEMETHOD_SELFISH = OROTMSLF;
  239. OCI_TYPEMETHOD_VIRTUAL = OROTMVRT;
  240. OCI_TYPEMETHOD_WNDS = OROTMWDS;
  241. OCI_TYPEMETHOD_WNPS = OROTMWPS;
  242. OCI_TYPEMETHOD_ABSTRACT = OROTMABSTRACT;
  243. OCI_TYPEMETHOD_OVERRIDING = OROTMOVERRIDING;
  244. OCI_TYPEMETHOD_PIPELINED = OROTMPIPELINED;
  245. OCI_TYPEPARAM_BYREF = OROTPMREF;
  246. OCI_TYPEPARAM_IN = OROTPMIN;
  247. OCI_TYPEPARAM_INOUT = OROTPMIO;
  248. OCI_TYPEPARAM_OUT = OROTPMOUT;
  249. OCI_TYPEPARAM_OUTNCPY = OROTPMOUTNCPY;
  250. OCI_TYPEPARAM_INOUTNCPY = OROTPMIONCPY;
  251. {$endif}
  252. { SLSHORTNAME }
  253. {--------------------------------------------------------------------------- }
  254. { PUBLIC TYPES, CONSTANTS AND MACROS }
  255. {--------------------------------------------------------------------------- }
  256. {--------------------------------------------------------------------------- }
  257. { GENERAL OBJECT TYPES, CONSTANTS, MACROS }
  258. {--------------------------------------------------------------------------- }
  259. {------------------------- OBJECT REFERENCE (REF) -------------------------- }
  260. type
  261. POCIRef = pointer;
  262. {
  263. * OCIRef - OCI object REFerence
  264. *
  265. * In the Oracle object runtime environment, an object is identified by an
  266. * object reference (ref) which contains the object identifier plus other
  267. * runtime information. The contents of a ref is opaque to clients. Use
  268. * OCIObjectNew() to construct a ref.
  269. }
  270. {--------------------------- OBJECT INDICATOR ------------------------------ }
  271. POCIInd = ^OCIInd;
  272. OCIInd = sb2;
  273. {
  274. * OCIInd -- a variable of this type contains (null) indicator information
  275. }
  276. { not NULL }
  277. { was #define dname def_expr }
  278. function OCI_IND_NOTNULL : OCIInd;
  279. { NULL }
  280. { was #define dname def_expr }
  281. function OCI_IND_NULL : OCIInd;
  282. { BAD NULL }
  283. { was #define dname def_expr }
  284. function OCI_IND_BADNULL : OCIInd;
  285. { not NULLable }
  286. { was #define dname def_expr }
  287. function OCI_IND_NOTNULLABLE : OCIInd;
  288. {--------------------------------------------------------------------------- }
  289. { OBJECT CACHE }
  290. {--------------------------------------------------------------------------- }
  291. { To enable object change detection mode, set this to TRUE }
  292. const
  293. OCI_ATTR_OBJECT_DETECTCHANGE = $00000020;
  294. { To enable object creation with non-NULL attributes by default, set the
  295. following to TRUE.
  296. By default, object is created with NULL attributes
  297. }
  298. OCI_ATTR_OBJECT_NEWNOTNULL = $00000010;
  299. { To enable sorting of the objects that belong to the same table
  300. before being flushed through OCICacheFlush.
  301. Please note that by enabling this object cache will not be flushing
  302. the objects in the same order they were dirtied }
  303. OCI_ATTR_CACHE_ARRAYFLUSH = $00000040;
  304. {--------------------------- OBJECT PIN OPTION ----------------------------- }
  305. { 0 = uninitialized }
  306. { default pin option }
  307. { pin any copy of the object }
  308. { pin recent copy of the object }
  309. { pin latest copy of the object }
  310. type
  311. OCIPinOpt = (OCI_PIN_DEFAULT := 1,OCI_PIN_ANY := 3,
  312. OCI_PIN_RECENT := 4,OCI_PIN_LATEST := 5
  313. );
  314. POCIPinOpt = ^OCIPinOpt;
  315. {
  316. * OCIPinOpt - OCI object Pin Option
  317. *
  318. * In the Oracle object runtime environment, the program has the option to
  319. * specify which copy of the object to pin.
  320. *
  321. * OCI_PINOPT_DEFAULT pins an object using the default pin option. The default
  322. * pin option can be set as an attribute of the OCI environment handle
  323. * (OCI_ATTR_PINTOPTION). The value of the default pin option can be
  324. * OCI_PINOPT_ANY, OCI_PINOPT_RECENT, or OCI_PIN_LATEST. The default option
  325. * is initialized to OCI_PINOPT_ANY.
  326. *
  327. * OCI_PIN_ANY pins any copy of the object. The object is pinned
  328. * using the following criteria:
  329. * If the object copy is not loaded, load it from the persistent store.
  330. * Otherwise, the loaded object copy is returned to the program.
  331. *
  332. * OCI_PIN_RECENT pins the latest copy of an object. The object is
  333. * pinned using the following criteria:
  334. * If the object is not loaded, load the object from the persistent store
  335. * from the latest version.
  336. * If the object is not loaded in the current transaction and it is not
  337. * dirtied, the object is refreshed from the latest version.
  338. * Otherwise, the loaded object copy is returned to the program.
  339. *
  340. * OCI_PINOPT_LATEST pins the latest copy of an object. The object copy is
  341. * pinned using the following criteria:
  342. * If the object copy is not loaded, load it from the persistent store.
  343. * If the object copy is loaded and dirtied, it is returned to the program.
  344. * Otherwise, the loaded object copy is refreshed from the persistent store.
  345. }
  346. {--------------------------- OBJECT LOCK OPTION ---------------------------- }
  347. { 0 = uninitialized }
  348. { null (same as no lock) }
  349. { exclusive lock }
  350. { exclusive lock, do not wait }
  351. OCILockOpt = (OCI_LOCK_NONE := 1,OCI_LOCK_X := 2,
  352. OCI_LOCK_X_NOWAIT := 3);
  353. POCILockOpt = ^OCILockOpt;
  354. {
  355. * OCILockOpt - OCI object LOCK Option
  356. *
  357. * This option is used to specify the locking preferences when an object is
  358. * loaded from the server.
  359. }
  360. {------------------------- OBJECT MODIFYING OPTION ------------------------- }
  361. { 0 = uninitialized }
  362. { default (the same as OCI_MARK_NONE) }
  363. { object has not been modified }
  364. { object is to be updated }
  365. { OCIMarkOpt = (OCI_MARK_DEFAULT := 1,OCI_MARK_NONE := OCI_MARK_DEFAULT,
  366. OCI_MARK_UPDATE);
  367. POCIMarkOpt = ^OCIMarkOpt;}
  368. {
  369. * OCIMarkOpt - OCI object Mark option
  370. *
  371. * When the object is marked updated, the client has to specify how the
  372. * object is intended to be changed.
  373. }
  374. {-------------------------- OBJECT Duration -------------------------------- }
  375. POCIDuration = ^OCIDuration;
  376. OCIDuration = ub2;
  377. { Invalid duration }
  378. const
  379. OCI_DURATION_INVALID = $FFFF;
  380. { was #define dname def_expr }
  381. function OCI_DURATION_BEGIN : OCIDuration;
  382. { beginning sequence of duration }
  383. { was #define dname def_expr }
  384. function OCI_DURATION_NULL : OCIDuration;
  385. { null duration }
  386. { default }
  387. { was #define dname def_expr }
  388. function OCI_DURATION_DEFAULT : OCIDuration;
  389. { was #define dname def_expr }
  390. function OCI_DURATION_USER_CALLBACK : OCIDuration;
  391. { was #define dname def_expr }
  392. function OCI_DURATION_NEXT : OCIDuration;
  393. { next special duration }
  394. { was #define dname def_expr }
  395. function OCI_DURATION_SESSION : OCIDuration;
  396. { the end of user session }
  397. { was #define dname def_expr }
  398. function OCI_DURATION_TRANS : OCIDuration;
  399. { the end of user transaction }
  400. {*****************************************************************************
  401. ** DO NOT USE OCI_DURATION_CALL. IT IS UNSUPPORTED **
  402. ** WILL BE REMOVED/CHANGED IN A FUTURE RELEASE **
  403. ***************************************************************************** }
  404. { was #define dname def_expr }
  405. function OCI_DURATION_CALL : OCIDuration;
  406. { the end of user client/server call }
  407. { was #define dname def_expr }
  408. function OCI_DURATION_STATEMENT : OCIDuration;
  409. { This is to be used only during callouts. It is similar to that
  410. of OCI_DURATION_CALL, but lasts only for the duration of a callout.
  411. Its heap is from PGA }
  412. { was #define dname def_expr }
  413. function OCI_DURATION_CALLOUT : OCIDuration;
  414. { const
  415. OCI_DURATION_LAST = OCI_DURATION_CALLOUT; }
  416. { last of predefined durations }
  417. { This is not being treated as other predefined durations such as
  418. SESSION, CALL etc, because this would not have an entry in the duration
  419. table and its functionality is primitive such that only allocate, free,
  420. resize memory are allowed, but one cannot create subduration out of this
  421. } { was #define dname def_expr }
  422. function OCI_DURATION_PROCESS : OCIDuration;
  423. {
  424. * OCIDuration - OCI object duration
  425. *
  426. * A client can specify the duration of which an object is pinned (pin
  427. * duration) and the duration of which the object is in memory (allocation
  428. * duration). If the objects are still pinned at the end of the pin duration,
  429. * the object cache manager will automatically unpin the objects for the
  430. * client. If the objects still exist at the end of the allocation duration,
  431. * the object cache manager will automatically free the objects for the client.
  432. *
  433. * Objects that are pinned with the option OCI_DURATION_TRANS will get unpinned
  434. * automatically at the end of the current transaction.
  435. *
  436. * Objects that are pinned with the option OCI_DURATION_SESSION will get
  437. * unpinned automatically at the end of the current session (connection).
  438. *
  439. * The option OCI_DURATION_NULL is used when the client does not want to set
  440. * the pin duration. If the object is already loaded into the cache, then the
  441. * pin duration will remain the same. If the object is not yet loaded, the
  442. * pin duration of the object will be set to OCI_DURATION_DEFAULT.
  443. }
  444. {----------------------------- OBJECT PROPERTY ----------------------------- }
  445. {*****************************************************************************
  446. ** DO NOT USE OCIObjectProperty. IT IS UNSUPPORTED **
  447. ** WILL BE REMOVED/CHANGED IN A FUTURE RELEASE **
  448. ***************************************************************************** }
  449. { 0 = uninitialized }
  450. { dirty objects }
  451. { objects loaded in the transaction }
  452. { locked objects }
  453. type
  454. OCIObjectProperty = (OCI_OBJECTPROP_DIRTIED := 1,OCI_OBJECTPROP_LOADED,
  455. OCI_OBJECTPROP_LOCKED);
  456. POCIObjectProperty = ^OCIObjectProperty;
  457. {
  458. * OCIObjectProperty -- OCI Object Property
  459. * This specifies the properties of objects in the object cache.
  460. }
  461. {------------------------- CACHE REFRESH OPTION --------------------------- }
  462. { 0 = uninitialized }
  463. { refresh objects loaded in the transaction }
  464. OCIRefreshOpt = (OCI_REFRESH_LOADED := 1);
  465. POCIRefreshOpt = ^OCIRefreshOpt;
  466. {
  467. * OCIRefreshOpt - OCI cache Refresh Option
  468. * This option is used to specify the set of objects to be refreshed.
  469. *
  470. * OCI_REFRESH_LOAD refreshes the objects that are loaded in the current
  471. * transaction.
  472. }
  473. {-------------------------------- OBJECT EVENT ----------------------------- }
  474. {*****************************************************************************
  475. ** DO NOT USE OCIObjectEvent. IT IS UNSUPPORTED **
  476. ** WILL BE REMOVED/CHANGED IN A FUTURE RELEASE **
  477. ***************************************************************************** }
  478. { 0 = uninitialized }
  479. { before flushing the cache }
  480. { after flushing the cache }
  481. { before refreshing the cache }
  482. { after refreshing the cache }
  483. { when an object is marked updated }
  484. { when an object is marked deleted }
  485. { when an object is being unmarked }
  486. { when an object is being locked }
  487. OCIObjectEvent = (OCI_OBJECTEVENT_BEFORE_FLUSH := 1,
  488. OCI_OBJECTEVENT_AFTER_FLUSH,OCI_OBJECTEVENT_BEFORE_REFRESH,
  489. OCI_OBJECTEVENT_AFTER_REFRESH,OCI_OBJECTEVENT_WHEN_MARK_UPDATED,
  490. OCI_OBJECTEVENT_WHEN_MARK_DELETED,OCI_OBJECTEVENT_WHEN_UNMARK,
  491. OCI_OBJECTEVENT_WHEN_LOCK);
  492. POCIObjectEvent = ^OCIObjectEvent;
  493. {
  494. * OCIObjectEvent -- OCI Object Event
  495. * This specifies the kind of event that is supported by the object
  496. * cache. The program can register a callback that is invoked when the
  497. * specified event occurs.
  498. }
  499. {----------------------------- OBJECT COPY OPTION -------------------------- }
  500. { was #define dname def_expr }
  501. function OCI_OBJECTCOPY_NOREF : ub1;
  502. {
  503. * OCIObjectCopyFlag - Object copy flag
  504. *
  505. * If OCI_OBJECTCOPY_NOREF is specified when copying an instance, the
  506. * reference and lob will not be copied to the target instance.
  507. }
  508. {----------------------------- OBJECT FREE OPTION -------------------------- }
  509. { was #define dname def_expr }
  510. function OCI_OBJECTFREE_FORCE : ub2;
  511. { was #define dname def_expr }
  512. function OCI_OBJECTFREE_NONULL : ub2;
  513. { was #define dname def_expr }
  514. function OCI_OBJECTFREE_HEADER : ub2;
  515. {
  516. * OCIObjectFreeFlag - Object free flag
  517. *
  518. * If OCI_OBJECTCOPY_FORCE is specified when freeing an instance, the instance
  519. * is freed regardless it is pinned or diritied.
  520. * If OCI_OBJECTCOPY_NONULL is specified when freeing an instance, the null
  521. * structure is not freed.
  522. }
  523. {----------------------- OBJECT PROPERTY ID ------------------------------- }
  524. type
  525. POCIObjectPropId = ^OCIObjectPropId;
  526. OCIObjectPropId = ub1;
  527. { persistent or transient or value }
  528. const
  529. OCI_OBJECTPROP_LIFETIME = 1;
  530. { schema name of table containing object }
  531. OCI_OBJECTPROP_SCHEMA = 2;
  532. { table name of table containing object }
  533. OCI_OBJECTPROP_TABLE = 3;
  534. { pin duartion of object }
  535. OCI_OBJECTPROP_PIN_DURATION = 4;
  536. { alloc duartion of object }
  537. OCI_OBJECTPROP_ALLOC_DURATION = 5;
  538. { lock status of object }
  539. OCI_OBJECTPROP_LOCK = 6;
  540. { mark status of object }
  541. OCI_OBJECTPROP_MARKSTATUS = 7;
  542. { is object a view object or not? }
  543. OCI_OBJECTPROP_VIEW = 8;
  544. {
  545. * OCIObjectPropId - OCI Object Property Id
  546. * Identifies the different properties of objects.
  547. }
  548. {----------------------- OBJECT LIFETIME ---------------------------------- }
  549. { 0 = uninitialized }
  550. { persistent object }
  551. { transient object }
  552. { value object }
  553. type
  554. OCIObjectLifetime = (OCI_OBJECT_PERSISTENT := 1,OCI_OBJECT_TRANSIENT,
  555. OCI_OBJECT_VALUE);
  556. POCIObjectLifetime = ^OCIObjectLifetime;
  557. {
  558. * OCIObjectLifetime - OCI Object Lifetime
  559. * Classifies objects depending upon the lifetime and referenceability
  560. * of the object.
  561. }
  562. {----------------------- OBJECT MARK STATUS ------------------------------- }
  563. POCIObjectMarkStatus = ^OCIObjectMarkStatus;
  564. OCIObjectMarkStatus = uword;
  565. { new object }
  566. const
  567. OCI_OBJECT_NEW = $0001;
  568. { object marked deleted }
  569. OCI_OBJECT_DELETED = $0002;
  570. { object marked updated }
  571. OCI_OBJECT_UPDATED = $0004;
  572. {
  573. * OCIObjectMarkStatus - OCI Object Mark Status
  574. * Status of the object - new or updated or deleted
  575. }
  576. { macros to test the object mark status } { was #define dname(params) para_def_expr }
  577. { argument types are unknown }
  578. { return type might be wrong }
  579. function OCI_OBJECT_IS_UPDATED(flag : longint) : longint;
  580. { was #define dname(params) para_def_expr }
  581. { argument types are unknown }
  582. { return type might be wrong }
  583. function OCI_OBJECT_IS_DELETED(flag : longint) : longint;
  584. { was #define dname(params) para_def_expr }
  585. { argument types are unknown }
  586. { return type might be wrong }
  587. function OCI_OBJECT_IS_NEW(flag : longint) : longint;
  588. { was #define dname(params) para_def_expr }
  589. { argument types are unknown }
  590. { return type might be wrong }
  591. function OCI_OBJECT_IS_DIRTY(flag : longint) : longint;
  592. {--------------------------------------------------------------------------- }
  593. { TYPE MANAGER }
  594. {--------------------------------------------------------------------------- }
  595. {------------------------------ TYPE CODE ---------------------------------- }
  596. {
  597. * Type manager typecodes
  598. *
  599. * These are typecodes designed to be used with the type manager;
  600. * they also include longer, more readable versions of existing SQLT names.
  601. * Those types that are directly related to existing SQLT types are #define'd
  602. * to their SQLT equivalents.
  603. *
  604. * The type manager typecodes are designed to be useable for all OCI calls.
  605. * They are in the range from 192 to 320 for typecodes, so as not to conflict
  606. * with existing OCI SQLT typecodes (see ocidfn.h).
  607. }
  608. { SQL/OTS OBJECT REFERENCE }
  609. const
  610. OCI_TYPECODE_REF = SQLT_REF;
  611. { SQL DATE OTS DATE }
  612. OCI_TYPECODE_DATE = SQLT_DAT;
  613. { SQL SIGNED INTEGER(8) OTS SINT8 }
  614. OCI_TYPECODE_SIGNED8 = 27;
  615. { SQL SIGNED INTEGER(16) OTS SINT16 }
  616. OCI_TYPECODE_SIGNED16 = 28;
  617. { SQL SIGNED INTEGER(32) OTS SINT32 }
  618. OCI_TYPECODE_SIGNED32 = 29;
  619. { SQL REAL OTS SQL_REAL }
  620. OCI_TYPECODE_REAL = 21;
  621. { SQL DOUBLE PRECISION OTS SQL_DOUBLE }
  622. OCI_TYPECODE_DOUBLE = 22;
  623. { Binary float }
  624. OCI_TYPECODE_BFLOAT = SQLT_IBFLOAT;
  625. { Binary double }
  626. OCI_TYPECODE_BDOUBLE = SQLT_IBDOUBLE;
  627. { SQL FLOAT(P) OTS FLOAT(P) }
  628. OCI_TYPECODE_FLOAT = SQLT_FLT;
  629. { SQL NUMBER(P S) OTS NUMBER(P S) }
  630. OCI_TYPECODE_NUMBER = SQLT_NUM;
  631. OCI_TYPECODE_DECIMAL = SQLT_PDN;
  632. { SQL DECIMAL(P S) OTS DECIMAL(P S) }
  633. OCI_TYPECODE_UNSIGNED8 = SQLT_BIN;
  634. { SQL UNSIGNED INTEGER(8) OTS UINT8 }
  635. { SQL UNSIGNED INTEGER(16) OTS UINT16 }
  636. OCI_TYPECODE_UNSIGNED16 = 25;
  637. { SQL UNSIGNED INTEGER(32) OTS UINT32 }
  638. OCI_TYPECODE_UNSIGNED32 = 26;
  639. { SQL ??? OTS OCTET }
  640. // OCI_TYPECODE_OCTET = 245;
  641. { SQL SMALLINT OTS SMALLINT }
  642. OCI_TYPECODE_SMALLINT = 246;
  643. { SQL INTEGER OTS INTEGER }
  644. OCI_TYPECODE_INTEGER = SQLT_INT;
  645. { SQL RAW(N) OTS RAW(N) }
  646. OCI_TYPECODE_RAW = SQLT_LVB;
  647. { SQL POINTER OTS POINTER }
  648. OCI_TYPECODE_PTR = 32;
  649. OCI_TYPECODE_VARCHAR2 = SQLT_VCS;
  650. { SQL VARCHAR2(N) OTS SQL_VARCHAR2(N) }
  651. { SQL CHAR(N) OTS SQL_CHAR(N) }
  652. OCI_TYPECODE_CHAR = SQLT_AFC;
  653. OCI_TYPECODE_VARCHAR = SQLT_CHR;
  654. { SQL VARCHAR(N) OTS SQL_VARCHAR(N) }
  655. { OTS MLSLABEL }
  656. // OCI_TYPECODE_MLSLABEL = SQLT_LAB;
  657. { SQL VARRAY OTS PAGED VARRAY }
  658. // OCI_TYPECODE_VARRAY = 247;
  659. { SQL TABLE OTS MULTISET }
  660. // OCI_TYPECODE_TABLE = 248;
  661. { SQL/OTS NAMED OBJECT TYPE }
  662. // OCI_TYPECODE_OBJECT = SQLT_NTY;
  663. { SQL/OTS Opaque Types }
  664. // OCI_TYPECODE_OPAQUE = 58;
  665. // OCI_TYPECODE_NAMEDCOLLECTION = SQLT_NCO;
  666. { SQL/OTS NAMED COLLECTION TYPE }
  667. { SQL/OTS BINARY LARGE OBJECT }
  668. // OCI_TYPECODE_BLOB = SQLT_BLOB;
  669. { SQL/OTS BINARY FILE OBJECT }
  670. // OCI_TYPECODE_BFILE = SQLT_BFILE;
  671. { SQL/OTS CHARACTER LARGE OBJECT }
  672. // OCI_TYPECODE_CLOB = SQLT_CLOB;
  673. { SQL/OTS CHARACTER FILE OBJECT }
  674. // OCI_TYPECODE_CFILE = SQLT_CFILE;
  675. { the following are ANSI datetime datatypes added in 8.1 }
  676. { SQL/OTS TIME }
  677. // OCI_TYPECODE_TIME = SQLT_TIME;
  678. { SQL/OTS TIME_TZ }
  679. // OCI_TYPECODE_TIME_TZ = SQLT_TIME_TZ;
  680. { SQL/OTS TIMESTAMP }
  681. // OCI_TYPECODE_TIMESTAMP = SQLT_TIMESTAMP;
  682. { SQL/OTS TIMESTAMP_TZ }
  683. // OCI_TYPECODE_TIMESTAMP_TZ = SQLT_TIMESTAMP_TZ;
  684. { TIMESTAMP_LTZ }
  685. // OCI_TYPECODE_TIMESTAMP_LTZ = SQLT_TIMESTAMP_LTZ;
  686. { SQL/OTS INTRVL YR-MON }
  687. // OCI_TYPECODE_INTERVAL_YM = SQLT_INTERVAL_YM;
  688. { SQL/OTS INTRVL DAY-SEC }
  689. // OCI_TYPECODE_INTERVAL_DS = SQLT_INTERVAL_DS;
  690. { Urowid type }
  691. // OCI_TYPECODE_UROWID = SQLT_RDD;
  692. { first Open Type Manager typecode }
  693. // OCI_TYPECODE_OTMFIRST = 228;
  694. { last OTM typecode }
  695. // OCI_TYPECODE_OTMLAST = 320;
  696. { first OTM system type (internal) }
  697. // OCI_TYPECODE_SYSFIRST = 228;
  698. { last OTM system type (internal) }
  699. // OCI_TYPECODE_SYSLAST = 235;
  700. { type code for PLS_INTEGER }
  701. // OCI_TYPECODE_PLS_INTEGER = 266;
  702. { the following are PL/SQL-only internal. They should not be used }
  703. { PLSQL indexed table }
  704. // OCI_TYPECODE_ITABLE = SQLT_TAB;
  705. { PLSQL record }
  706. // OCI_TYPECODE_RECORD = SQLT_REC;
  707. { PLSQL boolean }
  708. // OCI_TYPECODE_BOOLEAN = SQLT_BOL;
  709. { NOTE : The following NCHAR related codes are just short forms for saying
  710. OCI_TYPECODE_VARCHAR2 with a charset form of SQLCS_NCHAR. These codes are
  711. intended for use in the OCIAnyData API only and nowhere else. }
  712. OCI_TYPECODE_NCHAR = 286;
  713. OCI_TYPECODE_NVARCHAR2 = 287;
  714. OCI_TYPECODE_NCLOB = 288;
  715. { To indicate absence of typecode being specified }
  716. OCI_TYPECODE_NONE = 0;
  717. { To indicate error has to be taken from error handle - reserved for
  718. sqlplus use }
  719. OCI_TYPECODE_ERRHP = 283;
  720. { The OCITypeCode type is interchangeable with the existing SQLT type
  721. which is a ub2 }
  722. type
  723. POCITypeCode = ^OCITypeCode;
  724. OCITypeCode = ub2;
  725. {----------------------- GET OPTIONS FOR TDO ------------------------------ }
  726. { load only the header portion of the TDO when getting type }
  727. { load all attribute and method descriptors as well }
  728. OCITypeGetOpt = (OCI_TYPEGET_HEADER,OCI_TYPEGET_ALL);
  729. POCITypeGetOpt = ^OCITypeGetOpt;
  730. {
  731. * OCITypeGetOpt
  732. *
  733. * This is the flag passed to OCIGetTypeArray() to indicate how the TDO is
  734. * going to be loaded into the object cache.
  735. * OCI_TYPEGET_HEADER implies that only the header portion is to be loaded
  736. * initially, with the rest loaded in on a 'lazy' basis. Only the header is
  737. * needed for PL/SQL and OCI operations. OCI_TYPEGET_ALL implies that ALL
  738. * the attributes and methods belonging to a TDO will be loaded into the
  739. * object cache in one round trip. Hence it will take much longer to execute,
  740. * but will ensure that no more loading needs to be done when pinning ADOs
  741. * etc. This is only needed if your code needs to examine and manipulate
  742. * attribute and method information.
  743. *
  744. * The default is OCI_TYPEGET_HEADER.
  745. }
  746. {------------------------ TYPE ENCAPSULTATION LEVEL ------------------------ }
  747. { 0 = uninitialized }
  748. { private: only internally visible }
  749. { public: visible to both internally and externally }
  750. OCITypeEncap = (OCI_TYPEENCAP_PRIVATE,OCI_TYPEENCAP_PUBLIC
  751. );
  752. POCITypeEncap = ^OCITypeEncap;
  753. {
  754. * OCITypeEncap - OCI Encapsulation Level
  755. }
  756. {---------------------------- TYPE METHOD FLAGS ---------------------------- }
  757. { inline }
  758. { constant }
  759. { virtual }
  760. { constructor }
  761. { destructor }
  762. { operator }
  763. { selfish method (generic otherwise) }
  764. { map (relative ordering) }
  765. { order (relative ordering) }
  766. { OCI_TYPEMETHOD_MAP and OCI_TYPEMETHOD_ORDER are mutually exclusive }
  767. { Read no Data State (default) }
  768. { Write no Data State }
  769. { Read no Process State }
  770. { Write no Process State }
  771. { abstract (not instantiable) method }
  772. { overriding method }
  773. { method is pipelined }
  774. OCITypeMethodFlag = (OCI_TYPEMETHOD_INLINE := $0001,OCI_TYPEMETHOD_CONSTANT := $0002,
  775. OCI_TYPEMETHOD_VIRTUAL := $0004,OCI_TYPEMETHOD_CONSTRUCTOR := $0008,
  776. OCI_TYPEMETHOD_DESTRUCTOR := $0010,OCI_TYPEMETHOD_OPERATOR := $0020,
  777. OCI_TYPEMETHOD_SELFISH := $0040,OCI_TYPEMETHOD_MAP := $0080,
  778. OCI_TYPEMETHOD_ORDER := $0100,OCI_TYPEMETHOD_RNDS := $0200,
  779. OCI_TYPEMETHOD_WNDS := $0400,OCI_TYPEMETHOD_RNPS := $0800,
  780. OCI_TYPEMETHOD_WNPS := $1000,OCI_TYPEMETHOD_ABSTRACT := $2000,
  781. OCI_TYPEMETHOD_OVERRIDING := $4000,OCI_TYPEMETHOD_PIPELINED := $8000
  782. );
  783. POCITypeMethodFlag = ^OCITypeMethodFlag;
  784. { macros to test the type method flags }
  785. { was #define dname(params) para_def_expr }
  786. { argument types are unknown }
  787. { return type might be wrong }
  788. function OCI_METHOD_IS_INLINE(flag : longint) : longint;
  789. { was #define dname(params) para_def_expr }
  790. { argument types are unknown }
  791. { return type might be wrong }
  792. function OCI_METHOD_IS_CONSTANT(flag : longint) : longint;
  793. { was #define dname(params) para_def_expr }
  794. { argument types are unknown }
  795. { return type might be wrong }
  796. function OCI_METHOD_IS_VIRTUAL(flag : longint) : longint;
  797. { was #define dname(params) para_def_expr }
  798. { argument types are unknown }
  799. { return type might be wrong }
  800. function OCI_METHOD_IS_CONSTRUCTOR(flag : longint) : longint;
  801. { was #define dname(params) para_def_expr }
  802. { argument types are unknown }
  803. { return type might be wrong }
  804. function OCI_METHOD_IS_DESTRUCTOR(flag : longint) : longint;
  805. { was #define dname(params) para_def_expr }
  806. { argument types are unknown }
  807. { return type might be wrong }
  808. function OCI_METHOD_IS_OPERATOR(flag : longint) : longint;
  809. { was #define dname(params) para_def_expr }
  810. { argument types are unknown }
  811. { return type might be wrong }
  812. function OCI_METHOD_IS_SELFISH(flag : longint) : longint;
  813. { was #define dname(params) para_def_expr }
  814. { argument types are unknown }
  815. { return type might be wrong }
  816. function OCI_METHOD_IS_MAP(flag : longint) : longint;
  817. { was #define dname(params) para_def_expr }
  818. { argument types are unknown }
  819. { return type might be wrong }
  820. function OCI_METHOD_IS_ORDER(flag : longint) : longint;
  821. { was #define dname(params) para_def_expr }
  822. { argument types are unknown }
  823. { return type might be wrong }
  824. function OCI_METHOD_IS_RNDS(flag : longint) : longint;
  825. { was #define dname(params) para_def_expr }
  826. { argument types are unknown }
  827. { return type might be wrong }
  828. function OCI_METHOD_IS_WNDS(flag : longint) : longint;
  829. { was #define dname(params) para_def_expr }
  830. { argument types are unknown }
  831. { return type might be wrong }
  832. function OCI_METHOD_IS_RNPS(flag : longint) : longint;
  833. { was #define dname(params) para_def_expr }
  834. { argument types are unknown }
  835. { return type might be wrong }
  836. function OCI_METHOD_IS_WNPS(flag : longint) : longint;
  837. { was #define dname(params) para_def_expr }
  838. { argument types are unknown }
  839. { return type might be wrong }
  840. function OCI_METHOD_IS_ABSTRACT(flag : longint) : longint;
  841. { was #define dname(params) para_def_expr }
  842. { argument types are unknown }
  843. { return type might be wrong }
  844. function OCI_METHOD_IS_OVERRIDING(flag : longint) : longint;
  845. { was #define dname(params) para_def_expr }
  846. { argument types are unknown }
  847. { return type might be wrong }
  848. function OCI_METHOD_IS_PIPELINED(flag : longint) : longint;
  849. { was #define dname(params) para_def_expr }
  850. { argument types are unknown }
  851. { return type might be wrong }
  852. function OCI_TYPEMETHOD_IS_INLINE(flag : longint) : longint;
  853. { was #define dname(params) para_def_expr }
  854. { argument types are unknown }
  855. { return type might be wrong }
  856. function OCI_TYPEMETHOD_IS_CONSTANT(flag : longint) : longint;
  857. { was #define dname(params) para_def_expr }
  858. { argument types are unknown }
  859. { return type might be wrong }
  860. function OCI_TYPEMETHOD_IS_VIRTUAL(flag : longint) : longint;
  861. { was #define dname(params) para_def_expr }
  862. { argument types are unknown }
  863. { return type might be wrong }
  864. function OCI_TYPEMETHOD_IS_CONSTRUCTOR(flag : longint) : longint;
  865. { was #define dname(params) para_def_expr }
  866. { argument types are unknown }
  867. { return type might be wrong }
  868. function OCI_TYPEMETHOD_IS_DESTRUCTOR(flag : longint) : longint;
  869. { was #define dname(params) para_def_expr }
  870. { argument types are unknown }
  871. { return type might be wrong }
  872. function OCI_TYPEMETHOD_IS_OPERATOR(flag : longint) : longint;
  873. { was #define dname(params) para_def_expr }
  874. { argument types are unknown }
  875. { return type might be wrong }
  876. function OCI_TYPEMETHOD_IS_SELFISH(flag : longint) : longint;
  877. { was #define dname(params) para_def_expr }
  878. { argument types are unknown }
  879. { return type might be wrong }
  880. function OCI_TYPEMETHOD_IS_MAP(flag : longint) : longint;
  881. { was #define dname(params) para_def_expr }
  882. { argument types are unknown }
  883. { return type might be wrong }
  884. function OCI_TYPEMETHOD_IS_ORDER(flag : longint) : longint;
  885. { was #define dname(params) para_def_expr }
  886. { argument types are unknown }
  887. { return type might be wrong }
  888. function OCI_TYPEMETHOD_IS_RNDS(flag : longint) : longint;
  889. { was #define dname(params) para_def_expr }
  890. { argument types are unknown }
  891. { return type might be wrong }
  892. function OCI_TYPEMETHOD_IS_WNDS(flag : longint) : longint;
  893. { was #define dname(params) para_def_expr }
  894. { argument types are unknown }
  895. { return type might be wrong }
  896. function OCI_TYPEMETHOD_IS_RNPS(flag : longint) : longint;
  897. { was #define dname(params) para_def_expr }
  898. { argument types are unknown }
  899. { return type might be wrong }
  900. function OCI_TYPEMETHOD_IS_WNPS(flag : longint) : longint;
  901. { was #define dname(params) para_def_expr }
  902. { argument types are unknown }
  903. { return type might be wrong }
  904. function OCI_TYPEMETHOD_IS_ABSTRACT(flag : longint) : longint;
  905. { was #define dname(params) para_def_expr }
  906. { argument types are unknown }
  907. { return type might be wrong }
  908. function OCI_TYPEMETHOD_IS_OVERRIDING(flag : longint) : longint;
  909. { was #define dname(params) para_def_expr }
  910. { argument types are unknown }
  911. { return type might be wrong }
  912. function OCI_TYPEMETHOD_IS_PIPELINED(flag : longint) : longint;
  913. { macros to set the type method flags }
  914. { was #define dname(params) para_def_expr }
  915. { argument types are unknown }
  916. { return type might be wrong }
  917. function OCI_TYPEMETHOD_SET_INLINE(flag : longint) : longint;
  918. { was #define dname(params) para_def_expr }
  919. { argument types are unknown }
  920. { return type might be wrong }
  921. function OCI_TYPEMETHOD_SET_CONSTANT(flag : longint) : longint;
  922. { was #define dname(params) para_def_expr }
  923. { argument types are unknown }
  924. { return type might be wrong }
  925. function OCI_TYPEMETHOD_SET_VIRTUAL(flag : longint) : longint;
  926. { was #define dname(params) para_def_expr }
  927. { argument types are unknown }
  928. { return type might be wrong }
  929. function OCI_TYPEMETHOD_SET_CONSTRUCTOR(flag : longint) : longint;
  930. { was #define dname(params) para_def_expr }
  931. { argument types are unknown }
  932. { return type might be wrong }
  933. function OCI_TYPEMETHOD_SET_DESTRUCTOR(flag : longint) : longint;
  934. { was #define dname(params) para_def_expr }
  935. { argument types are unknown }
  936. { return type might be wrong }
  937. function OCI_TYPEMETHOD_SET_OPERATOR(flag : longint) : longint;
  938. { was #define dname(params) para_def_expr }
  939. { argument types are unknown }
  940. { return type might be wrong }
  941. function OCI_TYPEMETHOD_SET_SELFISH(flag : longint) : longint;
  942. { was #define dname(params) para_def_expr }
  943. { argument types are unknown }
  944. { return type might be wrong }
  945. function OCI_TYPEMETHOD_SET_MAP(flag : longint) : longint;
  946. { was #define dname(params) para_def_expr }
  947. { argument types are unknown }
  948. { return type might be wrong }
  949. function OCI_TYPEMETHOD_SET_ORDER(flag : longint) : longint;
  950. { was #define dname(params) para_def_expr }
  951. { argument types are unknown }
  952. { return type might be wrong }
  953. function OCI_TYPEMETHOD_SET_RNDS(flag : longint) : longint;
  954. { was #define dname(params) para_def_expr }
  955. { argument types are unknown }
  956. { return type might be wrong }
  957. function OCI_TYPEMETHOD_SET_WNDS(flag : longint) : longint;
  958. { was #define dname(params) para_def_expr }
  959. { argument types are unknown }
  960. { return type might be wrong }
  961. function OCI_TYPEMETHOD_SET_RNPS(flag : longint) : longint;
  962. { was #define dname(params) para_def_expr }
  963. { argument types are unknown }
  964. { return type might be wrong }
  965. function OCI_TYPEMETHOD_SET_WNPS(flag : longint) : longint;
  966. { macros to clear the type method flags }
  967. { was #define dname(params) para_def_expr }
  968. { argument types are unknown }
  969. { return type might be wrong }
  970. function OCI_TYPEMETHOD_CLEAR_INLINE(flag : longint) : longint;
  971. { was #define dname(params) para_def_expr }
  972. { argument types are unknown }
  973. { return type might be wrong }
  974. function OCI_TYPEMETHOD_CLEAR_CONSTANT(flag : longint) : longint;
  975. { was #define dname(params) para_def_expr }
  976. { argument types are unknown }
  977. { return type might be wrong }
  978. function OCI_TYPEMETHOD_CLEAR_VIRTUAL(flag : longint) : longint;
  979. { was #define dname(params) para_def_expr }
  980. { argument types are unknown }
  981. { return type might be wrong }
  982. function OCI_TYPEMETHOD_CLEAR_CONSTRUCTOR(flag : longint) : longint;
  983. { was #define dname(params) para_def_expr }
  984. { argument types are unknown }
  985. { return type might be wrong }
  986. function OCI_TYPEMETHOD_CLEAR_DESTRUCTOR(flag : longint) : longint;
  987. { was #define dname(params) para_def_expr }
  988. { argument types are unknown }
  989. { return type might be wrong }
  990. function OCI_TYPEMETHOD_CLEAR_OPERATOR(flag : longint) : longint;
  991. { was #define dname(params) para_def_expr }
  992. { argument types are unknown }
  993. { return type might be wrong }
  994. function OCI_TYPEMETHOD_CLEAR_SELFISH(flag : longint) : longint;
  995. { was #define dname(params) para_def_expr }
  996. { argument types are unknown }
  997. { return type might be wrong }
  998. function OCI_TYPEMETHOD_CLEAR_MAP(flag : longint) : longint;
  999. { was #define dname(params) para_def_expr }
  1000. { argument types are unknown }
  1001. { return type might be wrong }
  1002. function OCI_TYPEMETHOD_CLEAR_ORDER(flag : longint) : longint;
  1003. { was #define dname(params) para_def_expr }
  1004. { argument types are unknown }
  1005. { return type might be wrong }
  1006. function OCI_TYPEMETHOD_CLEAR_RNDS(flag : longint) : longint;
  1007. { was #define dname(params) para_def_expr }
  1008. { argument types are unknown }
  1009. { return type might be wrong }
  1010. function OCI_TYPEMETHOD_CLEAR_WNDS(flag : longint) : longint;
  1011. { was #define dname(params) para_def_expr }
  1012. { argument types are unknown }
  1013. { return type might be wrong }
  1014. function OCI_TYPEMETHOD_CLEAR_RNPS(flag : longint) : longint;
  1015. { was #define dname(params) para_def_expr }
  1016. { argument types are unknown }
  1017. { return type might be wrong }
  1018. function OCI_TYPEMETHOD_CLEAR_WNPS(flag : longint) : longint;
  1019. {--------------------------- TYPE PARAMETER MODE --------------------------- }
  1020. { PL/SQL starts this from 0 }
  1021. { in }
  1022. { out }
  1023. { in-out }
  1024. { call by reference (implicitly in-out) }
  1025. { OUT with NOCOPY modifier }
  1026. { IN OUT with NOCOPY modifier }
  1027. type
  1028. OCITypeParamMode = (OCI_TYPEPARAM_IN := 0,OCI_TYPEPARAM_OUT,
  1029. OCI_TYPEPARAM_INOUT,OCI_TYPEPARAM_BYREF,
  1030. OCI_TYPEPARAM_OUTNCPY,OCI_TYPEPARAM_INOUTNCPY
  1031. );
  1032. POCITypeParamMode = ^OCITypeParamMode;
  1033. {-------------------------------- DEFAULTS --------------------------------- }
  1034. { default binary and decimal precision and scale }
  1035. { no precision specified }
  1036. { was #define dname def_expr }
  1037. function OCI_NUMBER_DEFAULTPREC : ub1;
  1038. { was #define dname def_expr }
  1039. function OCI_NUMBER_DEFAULTSCALE : sb1;
  1040. { no binary/decimal scale specified }
  1041. { default maximum length for varrays and vstrings (used in sql.bsq) }
  1042. const
  1043. OCI_VARRAY_MAXSIZE = 4000;
  1044. { default maximum number of elements for a varray }
  1045. { default maximum length of a vstring }
  1046. OCI_STRING_MAXLEN = 4000;
  1047. {--------------------------------------------------------------------------- }
  1048. { This set of macro is used only in beta2. They should be removed as soon as
  1049. * PLSQL has made the changes of not using these macros.
  1050. }
  1051. { Special duration for allocating memory only. No instance can be allocated
  1052. * given these durations.
  1053. }
  1054. // OCICoherency = OCIRefreshOpt;
  1055. { was #define dname def_expr }
  1056. function OCI_COHERENCY_NONE : OCIRefreshOpt;
  1057. { was #define dname def_expr }
  1058. function OCI_COHERENCY_NULL : OCIRefreshOpt;
  1059. { was #define dname def_expr }
  1060. function OCI_COHERENCY_ALWAYS : OCIRefreshOpt;
  1061. //implementation