12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889189018911892189318941895189618971898189919001901190219031904190519061907190819091910191119121913191419151916191719181919192019211922192319241925192619271928192919301931193219331934193519361937193819391940194119421943194419451946194719481949195019511952195319541955195619571958195919601961196219631964196519661967196819691970197119721973197419751976197719781979198019811982198319841985198619871988198919901991199219931994199519961997199819992000200120022003200420052006200720082009201020112012201320142015201620172018201920202021202220232024202520262027202820292030203120322033203420352036203720382039204020412042204320442045204620472048204920502051205220532054205520562057205820592060206120622063206420652066206720682069207020712072207320742075207620772078207920802081208220832084208520862087208820892090209120922093209420952096209720982099210021012102210321042105210621072108210921102111211221132114211521162117211821192120212121222123212421252126212721282129213021312132213321342135213621372138213921402141214221432144214521462147214821492150215121522153215421552156215721582159216021612162216321642165216621672168216921702171217221732174217521762177217821792180218121822183218421852186218721882189219021912192219321942195219621972198219922002201220222032204220522062207220822092210221122122213221422152216221722182219222022212222222322242225222622272228222922302231223222332234223522362237223822392240224122422243224422452246224722482249225022512252225322542255225622572258225922602261226222632264226522662267226822692270227122722273227422752276227722782279228022812282228322842285228622872288228922902291229222932294229522962297229822992300230123022303230423052306230723082309231023112312231323142315231623172318231923202321232223232324232523262327232823292330233123322333233423352336233723382339234023412342234323442345234623472348234923502351235223532354235523562357235823592360236123622363236423652366236723682369237023712372237323742375237623772378237923802381238223832384238523862387238823892390239123922393239423952396239723982399240024012402240324042405240624072408240924102411241224132414241524162417241824192420242124222423242424252426242724282429243024312432243324342435243624372438243924402441244224432444244524462447244824492450245124522453245424552456245724582459246024612462246324642465246624672468246924702471247224732474247524762477247824792480248124822483248424852486248724882489249024912492249324942495249624972498249925002501250225032504250525062507250825092510251125122513251425152516251725182519252025212522252325242525252625272528252925302531253225332534253525362537253825392540254125422543254425452546254725482549255025512552255325542555255625572558255925602561256225632564256525662567256825692570257125722573257425752576257725782579258025812582258325842585258625872588258925902591259225932594259525962597259825992600260126022603260426052606260726082609261026112612261326142615261626172618261926202621262226232624262526262627262826292630263126322633263426352636263726382639264026412642264326442645264626472648264926502651265226532654265526562657265826592660266126622663266426652666266726682669267026712672267326742675267626772678267926802681268226832684268526862687268826892690269126922693269426952696269726982699270027012702270327042705270627072708270927102711271227132714271527162717271827192720272127222723272427252726272727282729273027312732273327342735273627372738273927402741274227432744274527462747274827492750275127522753275427552756275727582759276027612762276327642765276627672768276927702771277227732774277527762777277827792780278127822783278427852786278727882789279027912792279327942795279627972798279928002801280228032804280528062807280828092810281128122813281428152816281728182819282028212822282328242825282628272828282928302831283228332834283528362837283828392840284128422843284428452846284728482849285028512852285328542855285628572858285928602861286228632864286528662867286828692870287128722873287428752876287728782879288028812882288328842885288628872888288928902891289228932894289528962897289828992900290129022903290429052906290729082909291029112912291329142915291629172918291929202921292229232924292529262927292829292930293129322933293429352936293729382939294029412942294329442945294629472948294929502951295229532954295529562957295829592960296129622963296429652966296729682969297029712972297329742975297629772978297929802981298229832984298529862987298829892990299129922993299429952996299729982999300030013002300330043005300630073008300930103011301230133014301530163017301830193020302130223023302430253026302730283029303030313032303330343035303630373038303930403041304230433044304530463047304830493050305130523053305430553056305730583059306030613062306330643065306630673068306930703071307230733074307530763077307830793080308130823083308430853086308730883089309030913092309330943095309630973098309931003101310231033104310531063107310831093110311131123113311431153116311731183119312031213122312331243125312631273128312931303131313231333134313531363137313831393140314131423143314431453146314731483149315031513152315331543155315631573158315931603161316231633164316531663167316831693170317131723173317431753176317731783179318031813182318331843185318631873188318931903191319231933194319531963197319831993200320132023203320432053206320732083209321032113212321332143215321632173218321932203221322232233224322532263227322832293230323132323233323432353236323732383239324032413242324332443245324632473248324932503251325232533254325532563257325832593260326132623263326432653266326732683269327032713272327332743275327632773278327932803281328232833284328532863287328832893290329132923293329432953296329732983299330033013302330333043305330633073308330933103311331233133314331533163317331833193320332133223323332433253326332733283329333033313332333333343335333633373338333933403341334233433344334533463347334833493350335133523353335433553356335733583359336033613362336333643365336633673368336933703371337233733374337533763377337833793380338133823383338433853386338733883389339033913392339333943395339633973398339934003401340234033404340534063407340834093410341134123413341434153416341734183419342034213422342334243425342634273428342934303431343234333434343534363437343834393440344134423443344434453446344734483449345034513452345334543455345634573458345934603461346234633464346534663467346834693470347134723473347434753476347734783479348034813482348334843485348634873488348934903491349234933494349534963497349834993500350135023503350435053506350735083509351035113512351335143515351635173518351935203521352235233524352535263527352835293530353135323533353435353536353735383539354035413542354335443545354635473548354935503551355235533554355535563557355835593560356135623563356435653566356735683569357035713572357335743575357635773578357935803581358235833584358535863587358835893590359135923593359435953596359735983599360036013602360336043605360636073608360936103611361236133614361536163617361836193620362136223623362436253626362736283629363036313632363336343635363636373638363936403641364236433644364536463647364836493650365136523653365436553656365736583659366036613662366336643665366636673668366936703671367236733674367536763677367836793680368136823683368436853686368736883689369036913692369336943695369636973698369937003701370237033704370537063707370837093710371137123713371437153716371737183719372037213722372337243725372637273728372937303731373237333734373537363737373837393740374137423743374437453746374737483749375037513752375337543755375637573758375937603761376237633764376537663767376837693770377137723773377437753776377737783779378037813782378337843785378637873788378937903791379237933794379537963797379837993800380138023803380438053806380738083809381038113812381338143815381638173818381938203821382238233824382538263827382838293830383138323833383438353836383738383839384038413842384338443845384638473848384938503851385238533854385538563857385838593860386138623863386438653866386738683869387038713872387338743875387638773878387938803881388238833884388538863887388838893890389138923893389438953896389738983899390039013902390339043905390639073908390939103911 |
- {
- Automatically converted by H2Pas 1.0.0 from orl.h
- The following command line parameters were used:
- -p
- -D
- -l
- jojo.so
- orl.h
- }
- {$PACKRECORDS C}
- { Copyright (c) 1993, 2003, Oracle Corporation. All rights reserved. }
- {
- Author: Srinath Krishnaswamy
- Date: 11/24/93
- Source documents: "Functional Specification for C Language Mapping of
- OTS Types, Object Management Subsystem", "Oracle C
- Coding Standards version 2.2", and the header file
- template
- Rule sets: the generic and .h file rule sets
- Quality status: not exited
- Identification tag: [ one or more letters to identify the .h file ]
- Revision code: 11/24/93
-
- NAME
-
- ORL - ORacle's external C Language interface to primitive OTS types
-
- DESCRIPTION
-
- This header file contains C langauge interface to the OTS primitive
- types. The interface includes C mapping of OTS primitive types and
- the prototype of the pre-defined operations on the primitive types.
-
- ***********************************************************************
- *** NOTE: The OCI functions for objects requires the ***
- *** application to be running in OBJECT mode. That is, during ***
- *** process initialization OCIInitialize(), the mode ***
- *** specified should be OBJECT mode. ***
- ** OCIInitialize(OCI_OBJECT, ..); ***
- ***********************************************************************
-
- RELATED DOCUMENTS
-
- [1] Krishnaswamy, Srinath and Nguyen, Tin A., "Functional Specification
- for C Language Mapping of OTS Types, Object Management Subsystem",
- March 1994.
- [2] Nguyen, Tin A., "The Open Type System", Oracle Corporation,
- February 1994.
- [3] Klein, Jonathan D., "Large Field Management", Oracle Corporation,
- October 1993.
-
- PUBLIC FUNCTIONS
-
- OCI - OCI functions to manipulate Oracle Number, float and decimal
- ARITHMETIC
- OCINumberInc - OCINumber INCrement (optimized)
- OCINumberDec - OCINumber DECrement (optimized)
- OCINumberAdd - OCINumber ADD numbers
- OCINumberSub - OCINumber SUBtract numbers
- OCINumberMul - OCINumber MULtiply numbers
- OCINumberDiv - OCINumber DIVide numbers
- OCINumberMod - OCINumber MODulo division
- OCINumberIntPower - OCINumber integer PoWeR
- OCINumberShift - OCINumber decimal ShiFT number
- OCINumberNeg - OCINumber NEGate number
- OCINumberAbs - OCINumber ABSolute value
- OCINumberCeil - OCINumber CEiling of number
- OCINumberFloor - OCINumber FLooR of number
- OCINumberSqrt - OCINumber SQuare Root of number
- OCINumberSign - OCINumber get SIGN of number
- NATIVE TYPE CONVERSION
- OCINumberToInt - OCINumber convert number TO machine-format Integer
- OCINumberFromInt - OCINumber convert machine-format Integer TO Number
- OCINumberToReal - OCINumber convert number TO machine-format Real
- OCINumberToRealArray - OCINumber convert array of numbers TO
- machine-format Real
- OCINumberFromReal - OCINumber convert machine-format Real TO Number
- TEXT STRING CONVERSION
- OCINumberToText - OCINumber convert number TO String
- OCINumberFromText - OCINumber convert String TO Number
- COMPARISON
- OCINumberCmp - OCINumber CoMPare numbers
- OCINumberIsZero - OCINumber comparison with ZERo
- OCINumberIsInt - OCINumber Is an Integer
- ASSIGNMENT
- OCINumberAssign - OCINumber ASsiGn number
- OCINumberSetZero - OCINumber Set number to Zero value
- OCINumberSetPi - OCINumber Set number to Pi
- ROUNDING
- OCINumberTrunc - OCINumber TRUncate an Oracle number
- OCINumberRound - OCINumber ROUnd number
- OCINumberPrec - OCINumber round to Precision digits
- TRANSCENDENTAL
- OCINumberSin - OCINumber SINe
- OCINumberArcSin - OCINumber Arc SINe
- OCINumberHypSin - OCINumber SiNe Hyperbolic
- OCINumberCos - OCINumber COSine
- OCINumberArcCos - OCINumber Arc COSine
- OCINumberHypCos - OCINumber CoSine Hyperbolic
- OCINumberTan - OCINumber TANgent
- OCINumberArcTan - OCINumber Arc TANgent
- OCINumberArcTan2 - OCINumber Arc TaNgent 2
- OCINumberHypTan - OCINumber TaNgent Hyperbolic
- OCINumberPower - OCINumber arbitrary Base EXponentiation
- OCINumberExp - OCINumber EXPonentiation to base e
- OCINumberLn - OCINumber Logarithm Natural
- OCINumberLog - OCINumber LOGarithm to arbitrary base
-
- OCIDate - OCI functions to manipulate OCI Date
- OCIDateToExternal - OCIDate convert date to external form
- OCIDateFromExternal - OCIDate convert external form of date into OCIDate
- OCIDateAssign - OCIDate Assignment
- OCIDateToText - OCIDate convert date TO String
- OCIDateFromText - OCIDate convert String TO Date
- OCIDateZoneToZone - OCIDate convert date from one time
- Zone TO another Zone
- OCIDateCompare - OCIDate CoMPare dates
- OCIDateAddMonths - OCIDate ADd or subtract Months
- OCIDateAddDays - OCIDate ADd or subtract Days
- OCIDateLastDay - OCIDate get date of LaST day of month
- OCIDateDaysBetween - OCIDate get number of days BeTWeen two dates
- OCIDateNextDay - OCIDate get date of Next DaY
- OCIDateCheck - OCIDate CHecK if the given date is valid
- OCIDateSysDate - OCIDate get current SYStem date and time
-
- OCIString - OCI String functions to manipulate Variable-length string
- OCIStringAssign - OCIString Assign string to string
- OCIStringAssignText - OCIString Assign Text string to string
- OCIStringResize - OCIString ReSiZe string
- OCIStringSize - OCIString get String Size
- OCIStringPtr - OCIString get String PoinTeR
- OCIStringAllocSize - OCIString get Allocated SiZe
-
- OCIRaw - OCI Raw functions to manipulate variable-length raW
- OCIRawAssignRaw - OCIRaw Assign Raw (of type OCIRaw*) to raw
- (of type OCIRaw*)
- OCIRawResize - OCIRaw Resize raw
- OCIRawSize - OCIRaw get Raw Size
- OCIRawPtr - OCIRaw get Raw data Pointer
- OCIRawAllocSize - OCIRaw get Allocated Size
-
- OCIColl - OCI Collection generic functions. These functions can be
- used to manipulate both variable-length array (varray) and
- nested table.
- OCICollSize - OCIColl return current SIZe of the given collection
- (in number of elements)
- OCICollMax - OCIColl return the MAXimum number of elements in the
- collection (i.e. upper-bound)
- OCICollGetElem - OCIColl GET pointer to the element at the given
- position
- OCICollAssignElem - OCIColl assign to element at given index
- OCICollAssign - OCIColl ASsiGn collection; perform deep-copy of source
- collection to target collection
- OCICollAppend - OCIColl aPPend the given element to the end of the
- collection
- OCICollTrim - OCIColl trim (delete) the given number of elements
- from the end of the collection
- OCICollIsLocator - OCIColl indicates whether a collection is locator
- based or not.
- OCIIterCreate - OCIColl Create an ITerator to scan the collection
- elements
- OCIIterDelete - OCIColl Delete ITerator
- OCIIterInit - OCIColl Initialize ITerator to scan the given collection
- OCIIterGetCurrent - OCIColl Iterator based, get CURrent
- collection element
- OCIIterNext - OCIColl Iterator based, get NeXT collection element
- OCIIterPrev - OCIColl Iterator based, get PReVious collection element
-
- OCITable - OCI functions to manipulate nested Table. The OCIColl*() and
- OCITable*() functions can be used to manipulate nested table
- OCITableDelete(i) - OCITable if element(i) exists then the element is
- marked as deleted else the function returns false. So
- delete's create "holes".
- OCITableExists(i) - OCITable return true iff an element at
- position i EXIsts
- OCITableFirst - OCITable return the smallest value of i for which
- exists(i) is true.
- OCITableLast - OCITable return the largest value of i for which
- exists(i) is true.
- OCITableNext(i) - OCITable return pointer to the smallest position j,
- greater than i, such that OCITableExists(j) is true
- OCITablePrev(i) - OCITable return pointer to the largest position j,
- less than i, such that OCITableExists(j) is true
- OCITableSize - OCITable return current SIZe of the given nested table not
- including deleted elements
-
- OCIRef - OCI functions to manipulate object Reference
- OCIRefClear - OCIRef CLeaR or nullify a ref
- OCIRefAssign - OCIRef ASsiGn a ref to another
- OCIRefIsEqual - OCIRef compare two refs for EQUality
- OCIRefIsNull - OCIRef test if a ref is NULl
- OCIRefFromHex - OCIRef convert a Hexadecimal string TO a Ref
- OCIRefToHex - OCIRef convert a ref to a Hexadecimal string
- OCIRefHexSize - OCIRef get size of buffer in bytes to store hexadecimal
- string
-
- OBSOLETE: to be replaced by functions from oci.h:
-
- ORLL - ORL functions to manipulate lob Locators
- orllasg - ORLL AsiGn one locator to another
- orllequ - ORLL compare two locators for EQUality
- orlliini - ORLL Is the locator INItialized?
- orllgsz - ORLL Get locator SiZe
- orllgcid - ORLL Get Character set ID
-
- NOTE: The following are specific to FILE lobs:
-
- orllsnm - ORLL Set directory alias and file NaMe in the locator
- orllgnm - ORLL Get directory alias and file NaMe from the locator
-
- EXAMPLES
-
- Examples are given in the description of each function where
- relevant.
-
- NOTES
-
- This file has been subsetted to contain ONLY the routines that will
- be in the first release.
-
- QUESTIONS
-
- MODIFIED
- srseshad 03/12/03 - convert oci public api to ansi
- rpingte 11/21/02 - Add OCICollGetElemArray and OCINumberToRealArray
- aahluwal 06/03/02 - bug 2360115
- gayyappa 02/01/02 - fix 2210776 : change Dom to DOM
- whe 09/25/01 - add OCIXMLType & OCIDomDocument opaque types
- bpalaval 02/09/01 - Change text to oratext.
- rkasamse 09/20/99 - lint changes
- whe 09/01/99 - 976457:check __cplusplus for C++ code
- hsbedi 08/11/99 - Add macro
- rxgovind 10/14/98 - make non exposed calls (OCIRowType etc) private
- rxgovind 06/09/98 - update OCIRowTypeCreate
- nmantrav 05/11/98 - add OCIRowTypeGetCount
- rxgovind 03/29/98 - add OCIRowType and OCIRowData interfaces
- jwijaya 05/06/98 - add OCICollIsLocator
- rxgovind 03/18/98 - opaque types: move to kolo.h
- etucker 02/02/98 - add comments for Dec and Inc
- etucker 01/29/98 - Finish core5 integration
- rxgovind 11/11/97 - opaque types
- etucker 10/28/97 - add ORLN functions for SDK
- cxcheng 07/28/97 - remove OCILobLocator #define
- skmishra 05/13/97 - stdcc compatibility changes
- skrishna 04/25/97 - rename OCINumber*(): Exp Power TanHyp Zero Init
- TanToArc Sqr Truncate and Compare
- skotsovo 03/31/97 - remove OCILobLocatorSize
- skrishna 03/25/97 - remove orld2i and orldi2d
- skrishna 03/18/97 - fix ifdef for supporting ansi and k&r proto-types
- cxcheng 02/06/97 - take out short name support except with SLSHORTNAME
- skrishna 01/06/97 - update OCITableSize() comments
- skrishna 12/27/96 - fix OCIDateGet/OCIDateSet
- skrishna 12/12/96 - update OCICollGelElem comments
- skrishna 11/07/96 - OCICollGetElem: interface change
- skrishna 11/05/96 - add OCIDate Get/Set and OCIDateAssign
- cxcheng 10/31/96 - change OCINumberTanHyp to OCINumberHypTan
- cxcheng 10/30/96 - #define orll short names to long names
- dchatter 10/26/96 - fix some OCI file long names
- cxcheng 10/24/96 - remove unnecessary comment in front
- cxcheng 10/14/96 - disable long name mapping for LOB functions
- skrishna 10/13/96 - continue beautification
- skotsovo 10/16/96 - update ocilob names
- cxcheng 10/09/96 - add structure members in #define for date/time
- cxcheng 10/09/96 - more lint fixes
- skrishna 10/09/96 - continue beautification
- cxcheng 10/09/96 - more fixes
- skrishna 10/09/96 - change fixed-char rep. to orlvstr*
- jwijaya 10/08/96 - continue beautification
- jwijaya 10/07/96 - beautify
- cxcheng 10/07/96 - more changes
- cxcheng 10/04/96 - replace short names with long names
- skrishna 10/01/96 - orlcsiz, orltsiz: change prototype to take errhdl
- skrishna 09/23/96 - fix lint errors
- skotsovo 09/23/96 - remove orllmkcur().
- jwijaya 09/17/96 - comments on null ref
- skrishna 09/19/96 - change orlraw format
- skotsovo 09/19/96 - add orlliini and remove orllnul
- skrishna 08/14/96 - orlvstr: change format to ub4 followed by text
- jboonleu 08/06/96 - update comment
- skotsovo 08/08/96 - revert to locators instead of descriptors as input t
- jboonleu 07/23/96 - remove orlrcur
- skrishna 07/06/96 - add orltsiz
- skrishna 07/05/96 - add orld2i and orldi2d
- jwijaya 07/03/96 - add ANSI prototypes
- skrishna 06/27/96 - document default string format in orlds2d & orld2s
- skrishna 06/25/96 - change max date value
- skrishna 06/18/96 - modify orld2s() comments
- skotsovo 06/13/96 - orll functions take lob descriptors instead of locat
- rxgovind 06/05/96 - change prototype of orlrcur to take ocienvh
- skrishna 05/30/96 - support collection trimming
- skrishna 05/30/96 - remove orlralo/fre and orllalo/fre instead use
- orionew/fre
- skrishna 05/28/96 - add orlt*() and modify orla*()
- skotsovo 05/23/96 - add orlbl typedefs for pro*c
- jboonleu 05/14/96 - add orlrcur
- rxgovind 05/08/96 - changes for 3gl callbacks
- skotsovo 05/01/96 - in orllasg, no need to alloc orlbl*
- skrishna 04/21/96 - merge changes from 960418 object branch into big
- skrishna 04/17/96 - rename orlrcpy to orlrasg
- skrishna 04/12/96 - add orlr2h and orlrh2r functions
- skotsovo 04/15/96 - add fnt to make the lob locator current
- skrishna 04/08/96 - change orl*() to take ocienvh* and ocierrh* instead
- of oroenv*
- skotsovo 03/22/96 - add locator functions
- skotsovo 03/22/96 - add locator functions
- skrishna 02/27/96 - remove mlslabel interface
- skotsovo 02/20/96 - remove orlbty and use dty type instead.
- skotsovo 02/14/96 - add text file lobs.
- skrishna 01/31/96 - update comments of orln2r, orldchk, orlds2d & orld2s
- skrishna 01/31/96 - change orld2s() and orln2s() to return string length
- skrishna 01/21/96 - remove old raw interface
- skrishna 12/14/95 - add raw interface
- skotsovo 01/03/96 - change LOB offsets and lengths from ub4 to ubig_ora
- to support 64 bit machines.
- skotsovo 10/30/95 - add orlblsiz() to get lob locator size
- skrishna 10/24/95 - move ref functions from ori and update the ref
- functions to support variable-length ref
- cxcheng 10/20/95 - add more comments on number versions
- cxcheng 10/13/95 - add more number functions
- cxcheng 08/29/95 - Support for segmented varrays
- cxcheng 08/18/95 - modifiy orlmls structure
- skrishna 06/06/95 - rename orln, orld, orlvs and orlva to orlnum,
- orldat, orlvstr and orlvary respectively
- skrishna 11/15/94 - remove orlnget() function
- skrishna 09/20/94 - modify orldbtw() to return number of days only
- skrishna 08/24/94 - change format string length type from ub4 to ub1
- skrishna 07/19/94 - Rename orln2c & orlnc2n to orln2s & orlns2n
- skrishna 06/29/94 - Add blob interface; add examples
- skrishna 06/23/94 - Update comments and format
- skrishna 05/19/94 - update varray append comments
- skrishna 05/05/94 - Subsetting
- skrishna 11/24/93 - Creation
- }
- {--------------------------------------------------------------------------- }
- { SHORT NAMES SUPPORT SECTION }
- {--------------------------------------------------------------------------- }
- {$ifdef SLSHORTNAME}
- { the following are short names that are only supported on IBM mainframes
- with the SLSHORTNAME defined.
- With this all subsequent long names will actually be substituted with
- the short names here }
- const
- OCIArray = orlvary;
- OCIColl = orlcol;
- OCICollAppend = orlcapp;
- OCICollAssign = orlcasg;
- OCICollAssignElem = orlcase;
- OCICollGetElem = orlcget;
- OCICollGetElemArray = orlcgeta;
- OCICollMax = orlcmax;
- OCICollSize = orlcsiz;
- OCICollTrim = orlctrm;
- OCICollIsLocator = orlcilc;
- OCIDate = orldat;
- OCIDateAddDays = orldadd;
- OCIDateAddMonths = orldadm;
- OCIDateCheck = orldchk;
- OCIDateCompare = orldcmp;
- OCIDateDD = day_orldat;
- OCIDateDaysBetween = orldbtw;
- OCIDateFromText = orlds2d;
- OCIDateLastDay = orldlst;
- OCIDateMM = mon_orldat;
- OCIDateNextDay = orldndy;
- OCIDateSysDate = orldsys;
- OCIDateTime = time_orldat;
- OCIDateYYYY = gye_orldat;
- OCIDateZoneToZone = orldz2z;
- OCIIter = orlcitr;
- OCIIterCreate = orlccit;
- OCIIterDelete = orlcdit;
- OCIIterGetCurrent = orlcicur;
- OCIIterInit = orlciit;
- OCIIterNext = orlcinxt;
- OCIIterPrev = orlciprv;
- OCINumber = orlnum;
- OCINumberAbs = orlnabs;
- OCINumberAdd = orlnadd;
- OCINumberArcCos = orlnacos;
- OCINumberArcSin = orlnasin;
- OCINumberArcTan = orlnatan;
- OCINumberAssign = orlnasg;
- OCINumberCeil = orlncel;
- OCINumberCos = orlncos;
- OCINumberDiv = orlndiv;
- OCINumberPower = orlnbex;
- OCINumberFloor = orlnflr;
- OCINumberFromInt = orlni2n;
- OCINumberFromReal = orlnr2n;
- OCINumberFromText = orlns2n;
- OCINumberHypCos = orlncsh;
- OCINumberHypSin = orlnsnh;
- OCINumberSetZero = orlnini;
- OCINumberSetPi = orlnspi;
- OCINumberInc = orlninc;
- OCINumberDec = orlndec;
- OCINumberIntPower = orlnpwr;
- OCINumberLn = orlnln;
- OCINumberLog = orlnlog;
- OCINumberMod = orlnmod;
- OCINumberMul = orlnmul;
- OCINumberNeg = orlnneg;
- OCINumberPart = orlnpart;
- OCINumberExp = orlnexp;
- OCINumberRound = orlnrou;
- OCINumberPrec = orlnpre;
- OCINumberShift = orlnsft;
- OCINumberSign = orlnsgn;
- OCINumberSin = orlnsin;
- OCINumberSqrt = orlnsqr;
- OCINumberSub = orlnsub;
- OCINumberTan = orlntan;
- OCINumberHypTan = orlntnh;
- OCINumberArcTan2 = orlnatn2;
- OCINumberToInt = orln2i;
- OCINumberToReal = orln2r;
- OCINumberToRealArray = orln2ra;
- OCINumberToText = orln2s;
- OCINumberTrunc = orlntru;
- OCINumberCmp = orlncmp;
- OCINumberIsZero = orlnzer;
- OCINumberIsInt = orlnint;
- OCIRaw = orlraw;
- OCIRawAllocSize = orlwasz;
- OCIRawAssignBytes = orlwabr;
- OCIRawAssignRaw = orlwarr;
- OCIRawPtr = orlwgrp;
- OCIRawResize = orlwrsz;
- OCIRawSize = orlwgsz;
- OCIRefAssign = orlrasg;
- OCIRefClear = orlrclr;
- OCIRefFromHex = orlrh2r;
- OCIRefHexSize = orlrhsz;
- OCIRefIsEqual = orlrequ;
- OCIRefIsNull = orlrnul;
- OCIRefToHex = orlr2h;
- OCIString = orlvstr;
- OCIStringAllocSize = orlvasz;
- OCIStringAssign = orlvass;
- OCIStringAssignText = orlvats;
- OCIStringPtr = orlvgsp;
- OCIStringResize = orlvrsz;
- OCIStringSize = orlvgsz;
- OCITable = orltbl;
- OCITableDelete = orltdel;
- OCITableExists = orltexi;
- OCITableFirst = orltfst;
- OCITableLast = orltlst;
- OCITableNext = orltnxt;
- OCITablePrev = orltprv;
- OCITableSize = orltsiz;
- OCITime = orldtm;
- OCITimeHH = orldtmhh;
- OCITimeMI = orldtmmm;
- OCITimeSS = orldtmss;
- OCI_LOBMODE_READONLY = ORLBMORO;
- OCI_LOBMODE_READWRITE = ORLBMORW;
- {$endif}
- { SLSHORTNAME }
- {*************************************************************************** }
- { NUMBER/FLOAT/DECIMAL TYPE }
- {*************************************************************************** }
- const
- OCI_NUMBER_SIZE = 22;
- type
- POCINumber = ^OCINumber;
- OCINumber = record
- OCINumberPart : array[0..(OCI_NUMBER_SIZE)-1] of ub1;
- end;
- {
- * OCINumber - OCI Number mapping in c
- *
- * The OTS types: NUMBER, NUMERIC, INT, SHORTINT, REAL, DOUBLE PRECISION,
- * FLOAT and DECIMAL are represented by OCINumber.
- * The contents of OCINumber is opaque to clients.
- *
- * For binding variables of type OCINumber in OCI calls (OCIBindByName(),
- * OCIBindByPos(), and OCIDefineByPos()) use the type code SQLT_VNU.
- }
- {
- EXAMPLE
-
- The following example shows how to manipulate an attribute of type
- oracle number.
-
- struct person
-
- OCINumber sal;
- ;
- typedef struct person person;
-
- OCIError *err;
- person* joe;
- person* tom;
- person* debbie;
- OCINumber *joesal;
- OCINumber *tomsal;
- OCINumber *debsal;
- sword status;
- int inum;
- double dnum;
- OCINumber ornum;
- char buffer[21];
- ub4 buflen;
- sword result;
-
- /o See oci.h for an example of how to initialize OCIError.
- o For this example, assume the OCIEnv and OCIError has been
- o initialized.
- o/
-
- /o Pin joe, tom and debbie person objects in the object cache. See ori.h
- o for an example on pinning objects. For this example, assume that
- o joe, tom and debbie are pointing to pinned objects.
- o/
- joesal = &joe->sal;
- tomsal = &tom->sal;
- debsal = &debbie->sal;
-
- /o initialize joe's salary to be $12,000 o/
- inum = 12000;
- status = OCINumberFromInt(err, &inum, sizeof(inum), OCI_NUMBER_SIGNED,
- joesal);
- if (status != OCI_SUCCESS)
- /o goto to handle error from OCINumberFromInt o/;
-
- /o initialize tom's salary to be same as joe o/
- OCINumberAssign(err, joesal, tomsal);
-
- /o initialize debbie's salary to be 20% more than joe's o/
- dnum = 1.2;
- status = OCINumberFromReal(err, &dnum, sizeof(double), &ornum);
- if (status != OCI_SUCCESS)
- /o goto to handle error from OCINumberFromReal o/;
- status = OCINumberMul(err, joesal, &ornum, debsal);
- if (status != OCI_SUCCESS) /o goto to handle error from OCINumberMul o/;
-
- /o give tom a 50% raise o/
- dnum = 1.5;
- status = OCINumberFromReal(err, &dnum, sizeof(double), &ornum);
- if (status != OCI_SUCCESS)
- /o goto to handle error from OCINumberFromReal o/;
- status = OCINumberMul(err, tomsal, &ornum, tomsal);
- if (status != OCI_SUCCESS) /o goto to handle error from OCINumberMul o/;
-
- /o double joe's salary o/
- status = OCINumberAdd(err, joesal, joesal, joesal);
- if (status != OCI_SUCCESS) /o goto to handle error from OCINumberAdd o/;
-
- /o get joe's salary in integer o/
- status = OCINumberToInt(err, joesal, sizeof(inum), OCI_NUMBER_SIGNED,
- &inum);
- if (status != OCI_SUCCESS)/o goto to handle error from OCINumberToInt o/;
- /o inum is set to 24000 o/
-
- /o get debbie's salary in double o/
- status = OCINumberToReal(err, debsal, sizeof(dnum), &dnum);
- if (status != OCI_SUCCESS)/o goto to handle error from OCINumberToReal o/;
- /o dnum is set to 14400 o/
-
- /o print tom's salary as DEM0001`8000.00 o/
- buflen = sizeof(buffer);
- status = OCINumberToText(err, tomsal, "C0999G9999D99", 13,
- "NLS_NUMERIC_CHARACTERS='.`' NLS_ISO_CURRENCY='Germany'", 54,
- &buflen, buffer);
- if (status != OCI_SUCCESS)/o goto to handle error from OCINumberToText o/;
- printf("tom's salary = %s\n", buffer);
-
- /o compare joe and tom's salary o/
- status = OCINumberCmp(err, joesal, tomsal, &result);
- if (status != OCI_SUCCESS) /o goto to handle error from OCINumberCmp o/;
- /o result is positive o/
-
- /o read debbie's new salary from string o/
- status = OCINumberFromText(err, "48`000.00", 9, "99G999D99", 9,
- "NLS_NUMERIC_CHARACTERS='.`'", 27, debsal);
- if (status != OCI_SUCCESS)
- /o goto to handle error from OCINumberFromText o/;
- /o debbie's salary is now 48000.00 o/
-
- }
- {----------------------------- OCINumberInc -------------------------------- }
- {$IFNDEF LinkDynamically}
- function OCINumberInc(err:POCIError; number:POCINumber):sword;cdecl;external ocilib name 'OCINumberInc';
- {$ELSE}
- var OCINumberInc : function (err:POCIError; number:POCINumber):sword;cdecl;
- {$ENDIF}
- {
- NAME: OCINumberInc - OCINumber INCrement numbers
- PARAMETERS:
- err (IN/OUT) - error handle. If there is an error, it is
- recorded in 'err' and this function returns OCI_ERROR.
- The error recorded in 'err' can be retrieved by calling
- OCIErrorGet().
- number (IN/OUT) a positive Oracle number to be incremented
- DESCRIPTION:
- Increment Oracle number in place. It is assumed that the input is
- an integer between 0 and 100^21-2. If the is input too large, it will
- be treated as 0 - the result will be an Oracle number 1. If the input
- is not a positive integer, the result will be unpredictable.
- RETURNS:
- OCI_SUCCESS if the function completes successfully.
- OCI_INVALID_HANDLE if 'err' is NULL.
- OCI_ERROR if
- any of the number arguments is null
- }
- {----------------------------- OCINumberDec -------------------------------- }
- {$IFNDEF LinkDynamically}
- function OCINumberDec(err:POCIError; number:POCINumber):sword;cdecl;external ocilib name 'OCINumberDec';
- {$ELSE}
- OCINumberDec : function (err:POCIError; number:POCINumber):sword;cdecl;
- {$ENDIF}
- {
- NAME: OCINumberDec - OCINumber DECrement numbers
- PARAMETERS:
- err (IN/OUT) - error handle. If there is an error, it is
- recorded in 'err' and this function returns OCI_ERROR.
- The error recorded in 'err' can be retrieved by calling
- OCIErrorGet().
- number (IN/OUT) - a positive Oracle number to be decremented
- DESCRIPTION:
- Decrement Oracle number in place. It is assumed that the input is an
- integer between 1 and 100^21-2. If the input is too large, it will be
- treated as 1 - the result will be an Oracle number 0. If the input is
- not a positive integer, the result will be unpredictable.
- RETURNS:
- OCI_SUCCESS if the function completes successfully.
- OCI_INVALID_HANDLE if 'err' is NULL.
- OCI_ERROR if
- any of the number arguments is null
- }
- {-------------------------- OCINumberSetZero ------------------------------- }
- {$IFNDEF LinkDynamically}
- procedure OCINumberSetZero(err:POCIError; num:POCINumber);cdecl;external ocilib name 'OCINumberSetZero';
- {$ELSE}
- OCINumberSetZero : procedure (err:POCIError; num:POCINumber);cdecl;
- {$ENDIF}
- {
- NAME: OCINumberSetZero - OCINumber Set number to Zero value
- PARAMETERS:
- err (IN/OUT) - pointer to OCI error handle
- num (OUT) - set to zero value
- DESCRIPTION:
- Initialize the given number to value 0.
- }
- {--------------------------- OCINumberSetPi -------------------------------- }
- {$IFNDEF LinkDynamically}
- procedure OCINumberSetPi(err:POCIError; num:POCINumber);cdecl;external ocilib name 'OCINumberSetPi';
- {$ELSE}
- OCINumberSetPi : procedure (err:POCIError; num:POCINumber);cdecl;
- {$ENDIF}
- {
- NAME: OCINumberSetPi - OCINumber Set number to Pi
- err (IN/OUT) - pointer to OCI error handle
- num (OUT) - set to zero value
- DESCRIPTION:
- Initialize the given number to value Pi.
- }
- {----------------------------- OCINumberAdd -------------------------------- }
- {$IFNDEF LinkDynamically}
- function OCINumberAdd(err:POCIError; number1:POCINumber; number2:POCINumber; result:POCINumber):sword;cdecl;external ocilib name 'OCINumberAdd';
- {$ELSE}
- OCINumberAdd : function (err:POCIError; number1:POCINumber; number2:POCINumber; result:POCINumber):sword;cdecl;
- {$ENDIF}
- {
- NAME: OCINumberAdd - OCINumber ADD numbers
- PARAMETERS:
- err (IN/OUT) - error handle. If there is an error, it is
- recorded in 'err' and this function returns OCI_ERROR.
- The error recorded in 'err' can be retrieved by calling
- OCIErrorGet().
- number1, number2 (IN) - numbers to be added
- result (OUT) - result of adding 'number1' with 'number2'
- DESCRIPTION:
- Add 'number1' with 'number2' and return result in 'result'.
- RETURNS:
- OCI_SUCCESS if the function completes successfully.
- OCI_INVALID_HANDLE if 'err' is NULL.
- OCI_ERROR if
- any of the number arguments is null
- }
- {----------------------------- OCINumberSub -------------------------------- }
- {$IFNDEF LinkDynamically}
- function OCINumberSub(err:POCIError; number1:POCINumber; number2:POCINumber; result:POCINumber):sword;cdecl;external ocilib name 'OCINumberSub';
- {$ELSE}
- OCINumberSub : function (err:POCIError; number1:POCINumber; number2:POCINumber; result:POCINumber):sword;cdecl;
- {$ENDIF}
- {
- NAME: OCINumberSub - OCINumber SUBtract numbers
- PARAMETERS:
- err (IN/OUT) - error handle. If there is an error, it is
- recorded in 'err' and this function returns OCI_ERROR.
- The error recorded in 'err' can be retrieved by calling
- OCIErrorGet().
- number1, number2 (IN) - 'number2' subtracted from 'number1'
- result (OUT) - subtraction result
- DESCRIPTION:
- Subtract 'number2' from 'number1' and return result in 'result'.
- RETURNS:
- OCI_SUCCESS if the function completes successfully.
- OCI_INVALID_HANDLE if 'err' is NULL.
- OCI_ERROR if
- any of the number arguments is null
- }
- {----------------------------- OCINumberMul -------------------------------- }
- {$IFNDEF LinkDynamically}
- function OCINumberMul(err:POCIError; number1:POCINumber; number2:POCINumber; result:POCINumber):sword;cdecl;external ocilib name 'OCINumberMul';
- {$ELSE}
- OCINumberMul : function (err:POCIError; number1:POCINumber; number2:POCINumber; result:POCINumber):sword;cdecl;
- {$ENDIF}
- {
- NAME: OCINumberMul - OCINumber MULtiply numbers
- PARAMETERS:
- err (IN/OUT) - error handle. If there is an error, it is
- recorded in 'err' and this function returns OCI_ERROR.
- The error recorded in 'err' can be retrieved by calling
- OCIErrorGet().
- number1, number2 (IN) - numbers to be multiplied
- result (OUT) - multiplication result
- DESCRIPTION:
- Multiply 'number1' with 'number2' and return result in 'result'.
- RETURNS:
- OCI_SUCCESS if the function completes successfully.
- OCI_INVALID_HANDLE if 'err' is NULL.
- OCI_ERROR if
- any of the number arguments is null
- }
- {----------------------------- OCINumberDiv -------------------------------- }
- {$IFNDEF LinkDynamically}
- function OCINumberDiv(err:POCIError; number1:POCINumber; number2:POCINumber; result:POCINumber):sword;cdecl;external ocilib name 'OCINumberDiv';
- {$ELSE}
- OCINumberDiv : function (err:POCIError; number1:POCINumber; number2:POCINumber; result:POCINumber):sword;cdecl;
- {$ENDIF}
- {
- NAME: OCINumberDiv - OCINumber DIVide numbers
- PARAMETERS:
- err (IN/OUT) - error handle. If there is an error, it is
- recorded in 'err' and this function returns OCI_ERROR.
- The error recorded in 'err' can be retrieved by calling
- OCIErrorGet().
- number1 (IN) - pointer to the numerator
- number2 (IN) - pointer to the denominator
- result (OUT) - division result
- DESCRIPTION:
- Divide 'number1' by 'number2' and return result in 'result'.
- RETURNS:
- OCI_SUCCESS if the function completes successfully.
- OCI_INVALID_HANDLE if 'err' is NULL.
- OCI_ERROR if
- any of the number arguments is null
- underflow errorr
- overflow errorr
- divide by zero errorr
- }
- {----------------------------- OCINumberMod -------------------------------- }
- {$IFNDEF LinkDynamically}
- function OCINumberMod(err:POCIError; number1:POCINumber; number2:POCINumber; result:POCINumber):sword;cdecl;external ocilib name 'OCINumberMod';
- {$ELSE}
- OCINumberMod : function (err:POCIError; number1:POCINumber; number2:POCINumber; result:POCINumber):sword;cdecl;
- {$ENDIF}
- {
- NAME: OCINumberMod - OCINumber MODulous
- PARAMETERS:
- err (IN/OUT) - error handle. If there is an error, it is
- recorded in 'err' and this function returns OCI_ERROR.
- The error recorded in 'err' can be retrieved by calling
- OCIErrorGet().
- number1 (IN) - pointer to the numerator
- number2 (IN) - pointer to the denominator
- result (OUT) - remainder of the result
- DESCRIPTION:
- Finds the remainder of the division of two Oracle numbers.
- RETURNS:
- OCI_SUCCESS if the function completes successfully.
- OCI_INVALID_HANDLE if 'err' is NULL.
- OCI_ERROR if
- any of the number arguments is null
- divide by zero errorr
- }
- {------------------------ OCINumberIntPower -------------------------------- }
- {$IFNDEF LinkDynamically}
- function OCINumberIntPower(err:POCIError; base:POCINumber; exp:sword; result:POCINumber):sword;cdecl;external ocilib name 'OCINumberIntPower';
- {$ELSE}
- OCINumberIntPower : function (err:POCIError; base:POCINumber; exp:sword; result:POCINumber):sword;cdecl;
- {$ENDIF}
- {
- NAME: OCINumberIntPower - OCINumber takes an arbitary base to an arbitary
- integer PoWeR
- PARAMETERS:
- err (IN/OUT) - error handle. If there is an error, it is
- recorded in 'err' and this function returns OCI_ERROR.
- The error recorded in 'err' can be retrieved by calling
- OCIErrorGet().
- base (IN) - base of the exponentiation
- exp (IN) - exponent to which the base is to be raised
- result (OUT) - output of exponentiation
- DESCRIPTION:
- Takes an arbitary base to an arbitary integer power.
- RETURNS:
- OCI_SUCCESS if the function completes successfully.
- OCI_INVALID_HANDLE if 'err' is NULL.
- OCI_ERROR if
- any of the number arguments is null
- }
- {-------------------------- OCINumberShift --------------------------------- }
- {$IFNDEF LinkDynamically}
- function OCINumberShift(err:POCIError; number:POCINumber; nDig:sword; result:POCINumber):sword;cdecl;external ocilib name 'OCINumberShift';
- {$ELSE}
- OCINumberShift : function (err:POCIError; number:POCINumber; nDig:sword; result:POCINumber):sword;cdecl;
- {$ENDIF}
- {
- NAME: OCINumberShift - OCINumber multiplies by a power of 10.
-
- PARAMETERS:
- err (IN/OUT) - error handle. If there is an error, it is
- recorded in 'err' and this function returns OCI_ERROR.
- The error recorded in 'err' can be retrieved by calling
- OCIErrorGet().
- number (IN) - Oracle Number to be shifted.
- nDig (IN) - number of decimal places to shift.
- result (OUT) - shift result.
- DESCRIPTION:
- Multiplies number by 10^NDig and sets product to the result.
- RETURNS:
- OCI_SUCCESS if the function completes successfully.
- OCI_INVALID_HANDLE if 'err' is NULL.
- OCI_ERROR if
- any of the number arguments is null
- }
- {----------------------------- OCINumberNeg -------------------------------- }
- {$IFNDEF LinkDynamically}
- function OCINumberNeg(err:POCIError; number:POCINumber; result:POCINumber):sword;cdecl;external ocilib name 'OCINumberNeg';
- {$ELSE}
- OCINumberNeg : function (err:POCIError; number:POCINumber; result:POCINumber):sword;cdecl;
- {$ENDIF}
- {
- NAME: OCINumberNeg - OCINumber NEGate number
- PARAMETERS:
- err (IN/OUT) - error handle. If there is an error, it is
- recorded in 'err' and this function returns OCI_ERROR.
- The error recorded in 'err' can be retrieved by calling
- OCIErrorGet().
- number (IN) - number to be negated
- result (OUT) - will contain negated value of 'number'
- DESCRIPTION:
- Negates an Oracle number.
- RETURNS:
- OCI_SUCCESS if the function completes successfully.
- OCI_INVALID_HANDLE if 'err' is NULL.
- OCI_ERROR if
- any of the number arguments is null
- }
- {------------------------- OCINumberToText --------------------------------- }
- {$IFNDEF LinkDynamically}
- function OCINumberToText(err:POCIError; number:POCINumber; fmt:Poratext; fmt_length:ub4; nls_params:Poratext;
- nls_p_length:ub4; buf_size:Pub4; buf:Poratext):sword;cdecl;external ocilib name 'OCINumberToText';
- {$ELSE}
- OCINumberToText : function (err:POCIError; number:POCINumber; fmt:Poratext; fmt_length:ub4; nls_params:Poratext;
- nls_p_length:ub4; buf_size:Pub4; buf:Poratext):sword;cdecl;
- {$ENDIF}
- {
- NAME: OCINumberToText - OCINumber convert number TO String
- PARAMETERS:
- err (IN/OUT) - error handle. If there is an error, it is
- recorded in 'err' and this function returns OCI_ERROR.
- The error recorded in 'err' can be retrieved by calling
- OCIErrorGet().
- number (IN) - Oracle number to be converted
- fmt (IN) - conversion format
- fmt_length (IN) - length of the 'fmt' parameter
- nls_params (IN) - nls format specification, if null string
- i.e. (oratext *)0, then the default parameters for the
- session is used
- nls_p_length (IN) - length of the 'nls_params' parameter
- buf_size (IN/OUT) - size of the buffer must be passed as input by
- the caller, this function will return the length of the
- resulting string in bytes via this parameter. The length
- does not include the terminating null ('\0').
- buf (OUT) - buffer into which the converted string is placed. The
- resulting string is null terminated.
- DESCRIPTION:
- Converts the given number to a character string
- according to the specified format. Refer to "TO_NUMBER" conversion
- function described in "Oracle SQL Language Reference Manual" for a
- description of format and NLS parameters.
- The converted number string is stored in the buffer 'buf', up to
- a max of '*buf_size' bytes. Length of the resulting string is
- returned via 'buf_size'.
- RETURNS:
- OCI_SUCCESS if the function completes successfully.
- OCI_INVALID_HANDLE if 'err' is NULL.
- OCI_ERROR if
- 'number' or 'buf' is null
- buffer too small
- invalid format
- invalid nls format
- number to text translation for the given format causes overflow
- }
- {-------------------------- OCINumberFromText ------------------------------ }
- {$IFNDEF LinkDynamically}
- function OCINumberFromText(err:POCIError; str:Poratext; str_length:ub4; fmt:Poratext; fmt_length:ub4;
- nls_params:Poratext; nls_p_length:ub4; number:POCINumber):sword;cdecl;external ocilib name 'OCINumberFromText';
- {$ELSE}
- OCINumberFromText : function (err:POCIError; str:Poratext; str_length:ub4; fmt:Poratext; fmt_length:ub4;
- nls_params:Poratext; nls_p_length:ub4; number:POCINumber):sword;cdecl;
- {$ENDIF}
- {
- NAME: OCINumberFromText - OCINumber convert String TO Number
- PARAMETERS:
- err (IN/OUT) - error handle. If there is an error, it is
- recorded in 'err' and this function returns OCI_ERROR.
- The error recorded in 'err' can be retrieved by calling
- OCIErrorGet().
- str (IN) - input string to be converted to Oracle number
- str_length (IN) - size of the input string
- fmt (IN) - conversion format
- fmt_length (IN) - length of the 'fmt' parameter
- nls_params (IN) - nls format specification, if null string
- i.e. (oratext *)0, then the default parameters for the
- session is used
- nls_p_length (IN) - length of the 'nls_params' parameter
- number (OUT) - given string converted to number
- DESCRIPTION:
- Converts the given string to a number
- according to the specified format. Refer to "TO_NUMBER" conversion
- function described in "Oracle SQL Language Reference Manual" for a
- description of format and NLS parameters.
- RETURNS:
- OCI_SUCCESS if the function completes successfully.
- OCI_INVALID_HANDLE if 'err' is NULL.
- OCI_ERROR if
- 'number' or 'str' is null
- 'str_length' is 0
- invalid format
- invalid nls format
- invalid input string
- }
- {-------------------------- OCINumberToInt --------------------------------- }
- { Unsigned type -- ubX }
- const
- OCI_NUMBER_UNSIGNED = 0;
- { Signed type -- sbX }
- OCI_NUMBER_SIGNED = 2;
- {$IFNDEF LinkDynamically}
- function OCINumberToInt(err:POCIError; number:POCINumber; rsl_length:uword; rsl_flag:uword; rsl:Pdvoid):sword;cdecl;external ocilib name 'OCINumberToInt';
- {$ELSE}
- var OCINumberToInt : function (err:POCIError; number:POCINumber; rsl_length:uword; rsl_flag:uword; rsl:Pdvoid):sword;cdecl;
- {$ENDIF}
- {
- NAME: OCINumberToInt - OCINumber convert number TO Integer
- PARAMETERS:
- err (IN/OUT) - error handle. If there is an error, it is
- recorded in 'err' and this function returns OCI_ERROR.
- The error recorded in 'err' can be retrieved by calling
- OCIErrorGet().
- number (IN) - number to be converted
- rsl_length (IN) - size of the desired result
- rsl_s_flag (IN) - flag denoting the desired sign of the output; valid
- values are OCI_NUMBER_UNSIGNED, OCI_NUMBER_SIGNED
- rsl (OUT) - pointer to space for the result
- DESCRIPTION:
- Native type conversion function.
- Converts the given Oracle number into an xbx (e.g. ub2, ub4, sb2 etc.)
- RETURNS:
- OCI_SUCCESS if the function completes successfully.
- OCI_INVALID_HANDLE if 'err' is NULL.
- OCI_ERROR if
- 'number' or 'rsl' is null
- integer value of 'number' is too big -- overflow
- integer value of 'number' is too small -- underflow
- invalid sign flag value ('rsl_s_flag')
- }
- {--------------------------- OCINumberFromInt ------------------------------ }
- {$IFNDEF LinkDynamically}
- function OCINumberFromInt(err:POCIError; inum:Pdvoid; inum_length:uword; inum_s_flag:uword; number:POCINumber):sword;cdecl;external ocilib name 'OCINumberFromInt';
- {$ELSE}
- OCINumberFromInt : function (err:POCIError; inum:Pdvoid; inum_length:uword; inum_s_flag:uword; number:POCINumber):sword;cdecl;
- {$ENDIF}
- {
- NAME: OCINumberFromInt - OCINumber convert Integer TO Number
- PARAMETERS:
- err (IN/OUT) - error handle. If there is an error, it is
- recorded in 'err' and this function returns OCI_ERROR.
- The error recorded in 'err' can be retrieved by calling
- OCIErrorGet().
- inum (IN) - pointer to the integer to be converted
- inum_length (IN) - size of the integer
- inum_s_flag (IN) - flag that designates the sign of the integer; valid
- values are OCI_NUMBER_UNSIGNED, OCI_NUMBER_SIGNED
- number (OUT) - given integer converted to Oracle number
- DESCRIPTION:
- Native type conversion function. Converts any Oracle standard
- machine-native integer type (xbx) to an Oracle number.
- RETURNS:
- OCI_SUCCESS if the function completes successfully.
- OCI_INVALID_HANDLE if 'err' is NULL.
- OCI_ERROR if
- 'number' or 'inum' is null
- integer too BIG -- the number is too large to fit into an Oracle
- number
- invalid sign flag value ('inum_s_flag')
- }
- {------------------------- OCINumberToReal --------------------------------- }
- {$IFNDEF LinkDynamically}
- function OCINumberToReal(err:POCIError; number:POCINumber; rsl_length:uword; rsl:Pdvoid):sword;cdecl;external ocilib name 'OCINumberToReal';
- {$ELSE}
- OCINumberToReal : function (err:POCIError; number:POCINumber; rsl_length:uword; rsl:Pdvoid):sword;cdecl;
- {$ENDIF}
- {
- NAME: OCINumberToReal - OCINumber convert number TO Real
- PARAMETERS:
- err (IN/OUT) - error handle. If there is an error, it is
- recorded in 'err' and this function returns OCI_ERROR.
- The error recorded in 'err' can be retrieved by calling
- OCIErrorGet().
- number (IN) - number to be converted
- rsl_length (IN) - is the size of the desired result,
- sizeof( float | double | long double)
- rsl (OUT) - pointer to space for storing the result
- DESCRIPTION:
- Native type conversion function. Converts an Oracle number into a
- machine-native real type. This function only converts numbers up to
- LDBL_DIG, DBL_DIG, or FLT_DIG digits of precision and removes
- trailing zeroes. The above constants are defined in float.h
- RETURNS:
- OCI_SUCCESS if the function completes successfully.
- OCI_INVALID_HANDLE if 'err' is NULL.
- OCI_ERROR if
- 'number' or 'rsl' is null
- 'rsl_length' is 0
- }
- {------------------------- OCINumberToRealArray ---------------------------- }
- {$IFNDEF LinkDynamically}
- function OCINumberToRealArray(err:POCIError; var number:POCINumber; elems:uword; rsl_length:uword; rsl:Pdvoid):sword;cdecl;external ocilib name 'OCINumberToRealArray';
- {$ELSE}
- OCINumberToRealArray : function (err:POCIError; var number:POCINumber; elems:uword; rsl_length:uword; rsl:Pdvoid):sword;cdecl;
- {$ENDIF}
- {
- NAME: OCINumberToRealArray - OCINumber convert array of numbers TO Real
- PARAMETERS:
- err (IN/OUT) - error handle. If there is an error, it is
- recorded in 'err' and this function returns OCI_ERROR.
- The error recorded in 'err' can be retrieved by calling
- OCIErrorGet().
- number (IN) - Pointer to array of number to be converted
- elems (IN) - Upper bound of number array
- rsl_length (IN) - is the size of the desired result,
- sizeof( float | double | long double)
- rsl (OUT) - pointer to array of space for storing the result
- DESCRIPTION:
- Native type conversion function. Converts an Oracle number into a
- machine-native real type. This function only converts numbers up to
- LDBL_DIG, DBL_DIG, or FLT_DIG digits of precision and removes
- trailing zeroes. The above constants are defined in float.h
- RETURNS:
- OCI_SUCCESS if the function completes successfully.
- OCI_INVALID_HANDLE if 'err' is NULL.
- OCI_ERROR if
- 'number' or 'rsl' is null
- 'rsl_length' is 0
- }
- {-------------------------- OCINumberFromReal ------------------------------ }
- {$IFNDEF LinkDynamically}
- function OCINumberFromReal(err:POCIError; rnum:Pdvoid; rnum_length:uword; number:POCINumber):sword;cdecl;external ocilib name 'OCINumberFromReal';
- {$ELSE}
- OCINumberFromReal : function (err:POCIError; rnum:Pdvoid; rnum_length:uword; number:POCINumber):sword;cdecl;
- {$ENDIF}
- {
- NAME: OCINumberFromReal - OCINumber convert Real TO Number
- PARAMETERS:
- err (IN/OUT) - error handle. If there is an error, it is
- recorded in 'err' and this function returns OCI_ERROR.
- The error recorded in 'err' can be retrieved by calling
- OCIErrorGet().
- rnum (IN) - pointer to the floating point number to be converted
- rnum_length (IN) - size of the desired result, i.e.
- sizeof(float | double | long double)
- number (OUT) - given float converted to Oracle number
- DESCRIPTION:
- Native type conversion function. Converts a machine-native floating
- point type to an Oracle number.
- RETURNS:
- OCI_SUCCESS if the function completes successfully.
- OCI_INVALID_HANDLE if 'err' is NULL.
- OCI_ERROR if
- 'number' or 'rnum' is null
- 'rnum_length' is 0
- }
- {----------------------------- OCINumberCmp -------------------------------- }
- {$IFNDEF LinkDynamically}
- function OCINumberCmp(err:POCIError; number1:POCINumber; number2:POCINumber; result:Psword):sword;cdecl;external ocilib name 'OCINumberCmp';
- {$ELSE}
- OCINumberCmp : function (err:POCIError; number1:POCINumber; number2:POCINumber; result:Psword):sword;cdecl;
- {$ENDIF}
- {
- NAME: OCINumberCmp - OCINumber CoMPare numbers
- PARAMETERS:
- err (IN/OUT) - error handle. If there is an error, it is
- recorded in 'err' and this function returns OCI_ERROR.
- The error recorded in 'err' can be retrieved by calling
- OCIErrorGet().
- number1, number2 (IN) - numbers to be compared
- result (OUT) - 0 if equal, negative if number1 < number2,
- positive if number1 > number2
- DESCRIPTION:
- The function OCINumberCmp compares two numbers.
- RETURNS:
- OCI_SUCCESS if the function completes successfully.
- OCI_INVALID_HANDLE if 'err' is NULL.
- OCI_ERROR if
- 'number1' or 'number2' or 'result' is null
- }
- {---------------------------- OCINumberSign -------------------------------- }
- {$IFNDEF LinkDynamically}
- function OCINumberSign(err:POCIError; number:POCINumber; result:Psword):sword;cdecl;external ocilib name 'OCINumberSign';
- {$ELSE}
- OCINumberSign : function (err:POCIError; number:POCINumber; result:Psword):sword;cdecl;
- {$ENDIF}
- {
- NAME: OCINumberSign - OCINumber obtains SiGN of an Oracle number
- PARAMETERS:
- err (IN/OUT) - error handle. If there is an error, it is
- recorded in 'err' and this function returns OCI_ERROR.
- The error recorded in 'err' can be retrieved by calling
- OCIErrorGet().
- number (IN) - number whose sign is returned
- result (OUT) - 0 if number == 0, -1 if number < 0,
- 1 if number > 0
- DESCRIPTION:
- Obtains sign of an Oracle number
- RETURNS:
- OCI_SUCCESS if the function completes successfully.
- OCI_INVALID_HANDLE if 'err' is NULL.
- OCI_ERROR if
- 'number' or 'result' is null
- }
- {---------------------------- OCINumberIsZero ------------------------------ }
- {$IFNDEF LinkDynamically}
- function OCINumberIsZero(err:POCIError; number:POCINumber; result:Pboolean):sword;cdecl;external ocilib name 'OCINumberIsZero';
- {$ELSE}
- OCINumberIsZero : function (err:POCIError; number:POCINumber; result:Pboolean):sword;cdecl;
- {$ENDIF}
- {
- NAME: OCINumberIsZero - OCINumber comparison with ZERo
- PARAMETERS:
- err (IN/OUT) - error handle. If there is an error, it is
- recorded in 'err' and this function returns OCI_ERROR.
- The error recorded in 'err' can be retrieved by calling
- OCIErrorGet().
- number (IN) - numbers to be compared
- result (OUT) - set to TRUE if equal to zero else FALSE
- DESCRIPTION:
- Test if the given number is equal to zero.
- RETURNS:
- OCI_SUCCESS if the function completes successfully.
- OCI_INVALID_HANDLE if 'err' is NULL.
- OCI_ERROR if
- 'number' or 'result' is null
- }
- {---------------------------- OCINumberIsInt ------------------------------- }
- {$IFNDEF LinkDynamically}
- function OCINumberIsInt(err:POCIError; number:POCINumber; result:Pboolean):sword;cdecl;external ocilib name 'OCINumberIsInt';
- {$ELSE}
- OCINumberIsInt : function (err:POCIError; number:POCINumber; result:Pboolean):sword;cdecl;
- {$ENDIF}
- {
- NAME: OCINumberIsInt - OCINumber Is Integer value.
- PARAMETERS:
- err (IN/OUT) - error handle. If there is an error, it is
- recorded in 'err' and this function returns OCI_ERROR.
- The error recorded in 'err' can be retrieved by calling
- OCIErrorGet().
- number (IN) - number to be tested
- result (OUT) - set to TRUE if integer value else FALSE
- DESCRIPTION:
- Test if the given number is an integer value.
- RETURNS:
- OCI_SUCCESS if the function completes successfully.
- OCI_INVALID_HANDLE if 'err' is NULL.
- OCI_ERROR if
- 'number' or 'result' is null
- }
- {-------------------------- OCINumberAssign -------------------------------- }
- {$IFNDEF LinkDynamically}
- function OCINumberAssign(err:POCIError; from:POCINumber; cto:POCINumber):sword;cdecl;external ocilib name 'OCINumberAssign';
- {$ELSE}
- OCINumberAssign : function (err:POCIError; from:POCINumber; cto:POCINumber):sword;cdecl;
- {$ENDIF}
- {
- NAME: OCINumberAssign - OCINumber ASsiGn number
- PARAMETERS:
- err (IN/OUT) - error handle. If there is an error, it is
- recorded in 'err' and this function returns OCI_ERROR.
- The error recorded in 'err' can be retrieved by calling
- OCIErrorGet().
- from (IN) - number to be assigned
- to (OUT) - number copied into
- DESCRIPTION:
- Assign number 'from' to 'to'.
- RETURNS:
- OCI_SUCCESS if the function completes successfully.
- OCI_INVALID_HANDLE if 'err' is NULL.
- OCI_ERROR if
- 'from' or 'to' is null
- }
- {----------------------------- OCINumberAbs -------------------------------- }
- {$IFNDEF LinkDynamically}
- function OCINumberAbs(err:POCIError; number:POCINumber; result:POCINumber):sword;cdecl;external ocilib name 'OCINumberAbs';
- {$ELSE}
- OCINumberAbs : function (err:POCIError; number:POCINumber; result:POCINumber):sword;cdecl;
- {$ENDIF}
- {
- NAME: OCINumberAbs - OCINumber compute ABSolute value
- PARAMETERS:
- err (IN/OUT) - error handle. If there is an error, it is
- recorded in 'err' and this function returns OCI_ERROR.
- The error recorded in 'err' can be retrieved by calling
- OCIErrorGet().
- number (IN) - input number
- result (OUT) - output which will contain the absolue value of the
- input number
- DESCRIPTION:
- Computes the absolute value of an Oracle number.
- RETURNS:
- OCI_SUCCESS if the function completes successfully.
- OCI_INVALID_HANDLE if 'err' is NULL.
- OCI_ERROR if
- any of the number arguments is null
- }
- {---------------------------- OCINumberCeil -------------------------------- }
- {$IFNDEF LinkDynamically}
- function OCINumberCeil(err:POCIError; number:POCINumber; result:POCINumber):sword;cdecl;external ocilib name 'OCINumberCeil';
- {$ELSE}
- OCINumberCeil : function (err:POCIError; number:POCINumber; result:POCINumber):sword;cdecl;
- {$ENDIF}
- {
- NAME: OCINumberCeil - OCINumber compute the CEiL value of an Oracle number
- PARAMETERS:
- err (IN/OUT) - error handle. If there is an error, it is
- recorded in 'err' and this function returns OCI_ERROR.
- The error recorded in 'err' can be retrieved by calling
- OCIErrorGet().
- number (IN) - input number
- result (OUT) - output which will contain the ceil value of the
- input number
- DESCRIPTION:
- Computes the ceil value of an Oracle number.
- RETURNS:
- OCI_SUCCESS if the function completes successfully.
- OCI_INVALID_HANDLE if 'err' is NULL.
- OCI_ERROR if
- any of the number arguments is null
- }
- {--------------------------- OCINumberFloor -------------------------------- }
- {$IFNDEF LinkDynamically}
- function OCINumberFloor(err:POCIError; number:POCINumber; result:POCINumber):sword;cdecl;external ocilib name 'OCINumberFloor';
- {$ELSE}
- OCINumberFloor : function (err:POCIError; number:POCINumber; result:POCINumber):sword;cdecl;
- {$ENDIF}
- {
- NAME: OCINumberFloor - OCINumber compute the FLooR value of an Oracle number
- PARAMETERS:
- err (IN/OUT) - error handle. If there is an error, it is
- recorded in 'err' and this function returns OCI_ERROR.
- The error recorded in 'err' can be retrieved by calling
- OCIErrorGet().
- number (IN) - input number
- result (OUT) - output which will contain the floor value of the
- input number
- DESCRIPTION:
- Computes the floor value of an Oracle number.
- RETURNS:
- OCI_SUCCESS if the function completes successfully.
- OCI_INVALID_HANDLE if 'err' is NULL.
- OCI_ERROR if
- any of the number arguments is null
- }
- {----------------------------- OCINumberSqrt ------------------------------- }
- {$IFNDEF LinkDynamically}
- function OCINumberSqrt(err:POCIError; number:POCINumber; result:POCINumber):sword;cdecl;external ocilib name 'OCINumberSqrt';
- {$ELSE}
- OCINumberSqrt : function (err:POCIError; number:POCINumber; result:POCINumber):sword;cdecl;
- {$ENDIF}
- {
- NAME: OCINumberSqrt - OCINumber compute the SQuare Root of an Oracle number
- PARAMETERS:
- err (IN/OUT) - error handle. If there is an error, it is
- recorded in 'err' and this function returns OCI_ERROR.
- The error recorded in 'err' can be retrieved by calling
- OCIErrorGet().
- number (IN) - input number
- result (OUT) - output which will contain the square root of the
- input number
- DESCRIPTION:
- Computes the square root of an Oracle number.
- RETURNS:
- OCI_SUCCESS if the function completes successfully.
- OCI_INVALID_HANDLE if 'err' is NULL.
- OCI_ERROR if
- any of the number arguments is null
- 'number' is negative
- }
- {--------------------------- OCINumberTrunc -------------------------------- }
- {$IFNDEF LinkDynamically}
- function OCINumberTrunc(err:POCIError; number:POCINumber; decplace:sword; result:POCINumber):sword;cdecl;external ocilib name 'OCINumberTrunc';
- {$ELSE}
- OCINumberTrunc : function (err:POCIError; number:POCINumber; decplace:sword; result:POCINumber):sword;cdecl;
- {$ENDIF}
- {
- NAME: OCINumberTrunc - OCINumber TRUncate an Oracle number at a
- specified decimal place
- PARAMETERS:
- err (IN/OUT) - error handle. If there is an error, it is
- recorded in 'err' and this function returns OCI_ERROR.
- The error recorded in 'err' can be retrieved by calling
- OCIErrorGet().
- number (IN) - input number
- decplace (IN) - number of decimal digits to the right of the
- decimal point to truncate at. Negative values are allowed.
- result (OUT) - output of truncation
- DESCRIPTION:
- Truncate an Oracle number at a specified decimal place
- RETURNS:
- OCI_SUCCESS if the function completes successfully.
- OCI_INVALID_HANDLE if 'err' is NULL.
- OCI_ERROR if
- any of the number arguments is null
- }
- {----------------------------- OCINumberPower ------------------------------ }
- {$IFNDEF LinkDynamically}
- function OCINumberPower(err:POCIError; base:POCINumber; number:POCINumber; result:POCINumber):sword;cdecl;external ocilib name 'OCINumberPower';
- {$ELSE}
- OCINumberPower : function (err:POCIError; base:POCINumber; number:POCINumber; result:POCINumber):sword;cdecl;
- {$ENDIF}
- {
- NAME: OCINumberPower - OCINumber takes an arbitary Base to an
- arbitary Power
- PARAMETERS:
- err (IN/OUT) - error handle. If there is an error, it is
- recorded in 'err' and this function returns OCI_ERROR.
- The error recorded in 'err' can be retrieved by calling
- OCIErrorGet().
- base (IN) - base of the exponentiation
- number (IN) - exponent to which the base is to be raised
- result (OUT) - output of exponentiation
- DESCRIPTION:
- Takes an arbitary base to an arbitary power.
- RETURNS:
- OCI_SUCCESS if the function completes successfully.
- OCI_INVALID_HANDLE if 'err' is NULL.
- OCI_ERROR if
- any of the number arguments is null
- }
- {--------------------------- OCINumberRound -------------------------------- }
- {$IFNDEF LinkDynamically}
- function OCINumberRound(err:POCIError; number:POCINumber; decplace:sword; result:POCINumber):sword;cdecl;external ocilib name 'OCINumberRound';
- {$ELSE}
- OCINumberRound : function (err:POCIError; number:POCINumber; decplace:sword; result:POCINumber):sword;cdecl;
- {$ENDIF}
- {
- NAME: OCINumberRound - OCINumber ROUnds an Oracle number to a specified
- decimal place
- PARAMETERS:
- err (IN/OUT) - error handle. If there is an error, it is
- recorded in 'err' and this function returns OCI_ERROR.
- The error recorded in 'err' can be retrieved by calling
- OCIErrorGet().
- number (IN) - round this number and return result in 'result'
- decplace (IN) - number of decimal digits to the right of the
- decimal point to round to. Negative values are allowed.
- result (OUT) - output of rounding
- DESCRIPTION:
- Rounds an Oracle number to a specified decimal place
- RETURNS:
- OCI_SUCCESS if the function completes successfully.
- OCI_INVALID_HANDLE if 'err' is NULL.
- OCI_ERROR if
- any of the number arguments is null
- }
- {--------------------------- OCINumberPrec --------------------------------- }
- {$IFNDEF LinkDynamically}
- function OCINumberPrec(err:POCIError; number:POCINumber; nDigs:eword; result:POCINumber):sword;cdecl;external ocilib name 'OCINumberPrec';
- {$ELSE}
- OCINumberPrec : function (err:POCIError; number:POCINumber; nDigs:eword; result:POCINumber):sword;cdecl;
- {$ENDIF}
- {
- NAME: OCINumberPrec - Rounds an Oracle number to a specified number of
- decimal digits.
- PARAMETERS:
- err (IN/OUT) - error handle. If there is an error, it is
- recorded in 'err' and this function returns OCI_ERROR.
- The error recorded in 'err' can be retrieved by calling
- OCIErrorGet().
- number (IN) - number for which to set precision.
- nDig (IN) - number of decimal digits desired in the result.
- result (OUT) - result.
- DESCRIPTION:
- Performs a floating point round with respect to the number
- of digits.
- RETURNS:
- OCI_SUCCESS if the function completes successfully.
- OCI_INVALID_HANDLE if 'err' is NULL.
- OCI_ERROR if
- any of the number arguments is null
- }
- {----------------------------- OCINumberSin -------------------------------- }
- {$IFNDEF LinkDynamically}
- function OCINumberSin(err:POCIError; number:POCINumber; result:POCINumber):sword;cdecl;external ocilib name 'OCINumberSin';
- {$ELSE}
- OCINumberSin : function (err:POCIError; number:POCINumber; result:POCINumber):sword;cdecl;
- {$ENDIF}
- {
- NAME: OCINumberSin - OCINumber takes the SINe of an Oracle number
- PARAMETERS:
- err (IN/OUT) - error handle. If there is an error, it is
- recorded in 'err' and this function returns OCI_ERROR.
- The error recorded in 'err' can be retrieved by calling
- OCIErrorGet().
- number (IN) - argument of the sine in radians
- result (OUT) - result of the sine
- DESCRIPTION:
- Takes the sine in radians of an Oracle number.
- RETURNS:
- OCI_SUCCESS if the function completes successfully.
- OCI_INVALID_HANDLE if 'err' is NULL.
- OCI_ERROR if
- any of the number arguments is null
- }
- {-------------------------- OCINumberArcSin -------------------------------- }
- {$IFNDEF LinkDynamically}
- function OCINumberArcSin(err:POCIError; number:POCINumber; result:POCINumber):sword;cdecl;external ocilib name 'OCINumberArcSin';
- {$ELSE}
- OCINumberArcSin : function (err:POCIError; number:POCINumber; result:POCINumber):sword;cdecl;
- {$ENDIF}
- {
- NAME: OCINumberArcSin - OCINumber takes the Arc SINe of an Oracle number
- PARAMETERS:
- err (IN/OUT) - error handle. If there is an error, it is
- recorded in 'err' and this function returns OCI_ERROR.
- The error recorded in 'err' can be retrieved by calling
- OCIErrorGet().
- number (IN) - argument of the arc sine
- result (OUT) - result of the arc sine in radians
- DESCRIPTION:
- Takes the arc sine in radians of an Oracle number.
- RETURNS:
- OCI_SUCCESS if the function completes successfully.
- OCI_INVALID_HANDLE if 'err' is NULL.
- OCI_ERROR if
- any of the number arguments is null
- 'number' is < -1 or 'number' is > 1.
- }
- {-------------------------- OCINumberHypSin -------------------------------- }
- {$IFNDEF LinkDynamically}
- function OCINumberHypSin(err:POCIError; number:POCINumber; result:POCINumber):sword;cdecl;external ocilib name 'OCINumberHypSin';
- {$ELSE}
- OCINumberHypSin : function (err:POCIError; number:POCINumber; result:POCINumber):sword;cdecl;
- {$ENDIF}
- {
- NAME: OCINumberHypSin - OCINumber takes the SiNe Hyperbolic of an
- Oracle number
- PARAMETERS:
- err (IN/OUT) - error handle. If there is an error, it is
- recorded in 'err' and this function returns OCI_ERROR.
- The error recorded in 'err' can be retrieved by calling
- OCIErrorGet().
- number (IN) - argument of the sine hyperbolic
- result (OUT) - result of the sine hyperbolic
- DESCRIPTION:
- Takes the hyperbolic sine of an Oracle number.
- RETURNS:
- OCI_SUCCESS if the function completes successfully.
- OCI_INVALID_HANDLE if 'err' is NULL.
- OCI_ERROR if
- any of the number arguments is null
- NOTES:
- An Oracle number overflow causes an unpredictable result value.
- }
- {----------------------------- OCINumberCos -------------------------------- }
- {$IFNDEF LinkDynamically}
- function OCINumberCos(err:POCIError; number:POCINumber; result:POCINumber):sword;cdecl;external ocilib name 'OCINumberCos';
- {$ELSE}
- OCINumberCos : function (err:POCIError; number:POCINumber; result:POCINumber):sword;cdecl;
- {$ENDIF}
- {
- NAME: OCINumberCos - OCINumber takes the COSine of an Oracle number
- PARAMETERS:
- err (IN/OUT) - error handle. If there is an error, it is
- recorded in 'err' and this function returns OCI_ERROR.
- The error recorded in 'err' can be retrieved by calling
- OCIErrorGet().
- number (IN) - argument of the cosine in radians
- result (OUT) - result of the cosine
- DESCRIPTION:
- Takes the cosine in radians of an Oracle number.
- RETURNS:
- OCI_SUCCESS if the function completes successfully.
- OCI_INVALID_HANDLE if 'err' is NULL.
- OCI_ERROR if
- any of the number arguments is null
- }
- {-------------------------- OCINumberArcCos -------------------------------- }
- {$IFNDEF LinkDynamically}
- function OCINumberArcCos(err:POCIError; number:POCINumber; result:POCINumber):sword;cdecl;external ocilib name 'OCINumberArcCos';
- {$ELSE}
- OCINumberArcCos : function (err:POCIError; number:POCINumber; result:POCINumber):sword;cdecl;
- {$ENDIF}
- {
- NAME: OCINumberArcCos - OCINumber takes the Arc COSine of an Oracle number
- PARAMETERS:
- err (IN/OUT) - error handle. If there is an error, it is
- recorded in 'err' and this function returns OCI_ERROR.
- The error recorded in 'err' can be retrieved by calling
- OCIErrorGet().
- number (IN) - argument of the arc cosine
- result (OUT) - result of the arc cosine in radians
- DESCRIPTION:
- Takes the arc cosine in radians of an Oracle number.
- RETURNS:
- OCI_SUCCESS if the function completes successfully.
- OCI_INVALID_HANDLE if 'err' is NULL.
- OCI_ERROR if
- any of the number arguments is null
- 'number' is < -1 or 'number' is > 1.
- }
- {-------------------------- OCINumberHypCos -------------------------------- }
- {$IFNDEF LinkDynamically}
- function OCINumberHypCos(err:POCIError; number:POCINumber; result:POCINumber):sword;cdecl;external ocilib name 'OCINumberHypCos';
- {$ELSE}
- OCINumberHypCos : function (err:POCIError; number:POCINumber; result:POCINumber):sword;cdecl;
- {$ENDIF}
- {
- NAME: OCINumberHypCos - OCINumber takes the CoSine Hyperbolic of an
- Oracle number
- PARAMETERS:
- err (IN/OUT) - error handle. If there is an error, it is
- recorded in 'err' and this function returns OCI_ERROR.
- The error recorded in 'err' can be retrieved by calling
- OCIErrorGet().
- number (IN) - argument of the cosine hyperbolic
- result (OUT) - result of the cosine hyperbolic
- DESCRIPTION:
- Takes the hyperbolic cosine of an Oracle number.
- RETURNS:
- OCI_SUCCESS if the function completes successfully.
- OCI_INVALID_HANDLE if 'err' is NULL.
- OCI_ERROR if
- any of the number arguments is null
- NOTES:
- An Oracle number overflow causes an unpredictable result value.
- }
- {----------------------------- OCINumberTan -------------------------------- }
- {$IFNDEF LinkDynamically}
- function OCINumberTan(err:POCIError; number:POCINumber; result:POCINumber):sword;cdecl;external ocilib name 'OCINumberTan';
- {$ELSE}
- OCINumberTan : function (err:POCIError; number:POCINumber; result:POCINumber):sword;cdecl;
- {$ENDIF}
- {
- NAME: OCINumberTan - OCINumber takes the TANgent of an Oracle number
- PARAMETERS:
- err (IN/OUT) - error handle. If there is an error, it is
- recorded in 'err' and this function returns OCI_ERROR.
- The error recorded in 'err' can be retrieved by calling
- OCIErrorGet().
- number (IN) - argument of the tangent in radians
- result (OUT) - result of the tangent
- DESCRIPTION:
- Takes the tangent in radians of an Oracle number.
- RETURNS:
- OCI_SUCCESS if the function completes successfully.
- OCI_INVALID_HANDLE if 'err' is NULL.
- OCI_ERROR if
- any of the number arguments is null
- }
- {-------------------------- OCINumberArcTan -------------------------------- }
- {$IFNDEF LinkDynamically}
- function OCINumberArcTan(err:POCIError; number:POCINumber; result:POCINumber):sword;cdecl;external ocilib name 'OCINumberArcTan';
- {$ELSE}
- OCINumberArcTan : function (err:POCIError; number:POCINumber; result:POCINumber):sword;cdecl;
- {$ENDIF}
- {
- NAME: OCINumberArcTan - OCINumber takes the Arc TANgent of an Oracle number
- PARAMETERS:
- err (IN/OUT) - error handle. If there is an error, it is
- recorded in 'err' and this function returns OCI_ERROR.
- The error recorded in 'err' can be retrieved by calling
- OCIErrorGet().
- number (IN) - argument of the arc tangent
- result (OUT) - result of the arc tangent in radians
- DESCRIPTION:
- Takes the arc tangent in radians of an Oracle number.
- RETURNS:
- OCI_SUCCESS if the function completes successfully.
- OCI_INVALID_HANDLE if 'err' is NULL.
- OCI_ERROR if
- any of the number arguments is null
- }
- {------------------------ OCINumberArcTan2 --------------------------------- }
- {$IFNDEF LinkDynamically}
- function OCINumberArcTan2(err:POCIError; number1:POCINumber; number2:POCINumber; result:POCINumber):sword;cdecl;external ocilib name 'OCINumberArcTan2';
- {$ELSE}
- OCINumberArcTan2 : function (err:POCIError; number1:POCINumber; number2:POCINumber; result:POCINumber):sword;cdecl;
- {$ENDIF}
- {
- NAME: OCINumberArcTan2 - OCINumber takes the ATan2 of 2 Oracle numbers
- PARAMETERS:
- err (IN/OUT) - error handle. If there is an error, it is
- recorded in 'err' and this function returns OCI_ERROR.
- The error recorded in 'err' can be retrieved by calling
- OCIErrorGet().
- number1 (IN) - first argument of atan2(y,x) function which
- corresponds to 'y' parameter in the function
- number2 (IN) - second argument of atan2(y,x) function which
- corresponds to 'x' parameter in the function
- result (OUT) - result of the atan2() in radians
- DESCRIPTION:
- Takes the atan2(number1, number2).
- RETURNS:
- OCI_SUCCESS if the function completes successfully.
- OCI_INVALID_HANDLE if 'err' is NULL.
- OCI_ERROR if
- any of the number arguments is null
- 'number2' is 0
- }
- {----------------------------- OCINumberHypTan ----------------------------- }
- {$IFNDEF LinkDynamically}
- function OCINumberHypTan(err:POCIError; number:POCINumber; result:POCINumber):sword;cdecl;external ocilib name 'OCINumberHypTan';
- {$ELSE}
- OCINumberHypTan : function (err:POCIError; number:POCINumber; result:POCINumber):sword;cdecl;
- {$ENDIF}
- {
- NAME: OCINumberHypTan - OCINumber takes the TaNgent Hyperbolic of an Oracle
- number
- PARAMETERS:
- err (IN/OUT) - error handle. If there is an error, it is
- recorded in 'err' and this function returns OCI_ERROR.
- The error recorded in 'err' can be retrieved by calling
- OCIErrorGet().
- number (IN) - argument of the tangent hyperbolic
- result (OUT) - result of the tangent hyperbolic
- DESCRIPTION:
- Takes the hyperbolic tangent of an Oracle number.
- RETURNS:
- OCI_SUCCESS if the function completes successfully.
- OCI_INVALID_HANDLE if 'err' is NULL.
- OCI_ERROR if
- any of the number arguments is null
- NOTES:
- An Oracle number overflow causes an unpredictable result value.
- }
- {--------------------------- OCINumberExp ---------------------------------- }
- {$IFNDEF LinkDynamically}
- function OCINumberExp(err:POCIError; number:POCINumber; result:POCINumber):sword;cdecl;external ocilib name 'OCINumberExp';
- {$ELSE}
- OCINumberExp : function (err:POCIError; number:POCINumber; result:POCINumber):sword;cdecl;
- {$ENDIF}
- {
- NAME: OCINumberExp - OCINumber EXPonential
- PARAMETERS:
- err (IN/OUT) - error handle. If there is an error, it is
- recorded in 'err' and this function returns OCI_ERROR.
- The error recorded in 'err' can be retrieved by calling
- OCIErrorGet().
- number (IN) - e raised to this Oracle number power
- result (OUT) - output of exponentiation
- DESCRIPTION:
- Raises e to the specified Oracle number power
- RETURNS:
- OCI_SUCCESS if the function completes successfully.
- OCI_INVALID_HANDLE if 'err' is NULL.
- OCI_ERROR if
- any of the number arguments is null
- }
- {----------------------------- OCINumberLn --------------------------------- }
- {$IFNDEF LinkDynamically}
- function OCINumberLn(err:POCIError; number:POCINumber; result:POCINumber):sword;cdecl;external ocilib name 'OCINumberLn';
- {$ELSE}
- OCINumberLn : function(err:POCIError; number:POCINumber; result:POCINumber):sword;cdecl;
- {$ENDIF}
- {
- NAME: OCINumberLn - OCINumber Logarithm Natural
- PARAMETERS:
- err (IN/OUT) - error handle. If there is an error, it is
- recorded in 'err' and this function returns OCI_ERROR.
- The error recorded in 'err' can be retrieved by calling
- OCIErrorGet().
- number (IN) - logarithm of this number is computed
- result (OUT) - logarithm result
- DESCRIPTION:
- Takes the logarithm of the given Oracle number with respect
- to the given base.
- RETURNS:
- OCI_SUCCESS if the function completes successfully.
- OCI_INVALID_HANDLE if 'err' is NULL.
- OCI_ERROR if
- any of the number arguments is null
- 'number' is <= 0
- }
- {----------------------------- OCINumberLog -------------------------------- }
- {$IFNDEF LinkDynamically}
- function OCINumberLog(err:POCIError; base:POCINumber; number:POCINumber; result:POCINumber):sword;cdecl;external ocilib name 'OCINumberLog';
- {$ELSE}
- OCINumberLog : function (err:POCIError; base:POCINumber; number:POCINumber; result:POCINumber):sword;cdecl;
- {$ENDIF}
- {
- NAME: OCINumberLog - OCINumber LOGarithm any base
- PARAMETERS:
- err (IN/OUT) - error handle. If there is an error, it is
- recorded in 'err' and this function returns OCI_ERROR.
- The error recorded in 'err' can be retrieved by calling
- OCIErrorGet().
- base (IN) - base of the logarithm
- number (IN) - opearnd
- result (OUT) - logarithm result
- DESCRIPTION:
- Takes the logarithm with the specified base of an Oracle number.
- RETURNS:
- OCI_SUCCESS if the function completes successfully.
- OCI_INVALID_HANDLE if 'err' is NULL.
- OCI_ERROR if
- any of the number arguments is null
- 'number' is <= 0
- 'base' is <= 0
- }
- {*************************************************************************** }
- { ORACLE DATE TYPE }
- {*************************************************************************** }
- { hours; range is 0 <= hours <=23 }
- { minutes; range is 0 <= minutes <= 59 }
- { seconds; range is 0 <= seconds <= 59 }
- type
- POCITime = ^OCITime;
- OCITime = record
- OCITimeHH : ub1;
- OCITimeMI : ub1;
- OCITimeSS : ub1;
- end;
- {
- * OCITime - OCI TiMe portion of date
- *
- * This structure should be treated as an opaque structure as the format
- * of this structure may change. Use OCIDateGetTime/OCIDateSetTime
- * to manipulate time portion of OCIDate.
- }
- { gregorian year; range is -4712 <= year <= 9999 }
- { month; range is 1 <= month < 12 }
- { day; range is 1 <= day <= 31 }
- { time }
- POCIDate = ^OCIDate;
- OCIDate = record
- OCIDateYYYY : sb2;
- OCIDateMM : ub1;
- OCIDateDD : ub1;
- OCIDateTime : OCITime;
- end;
- {
- * OCIDate - OCI oracle Date representation in C
- *
- * OCIDate represents the C mapping of Oracle date.
- *
- * This structure should be treated as an opaque structure as the format
- * of this structure may change. Use OCIDateGetDate/OCIDateSetDate
- * to access/initialize OCIDate.
- *
- * For binding variables of type OCIDate in OCI calls (OCIBindByName(),
- * OCIBindByPos(), and OCIDefineByPos()) use the type code SQLT_ODT.
- }
- {
- EXAMPLE
-
- The following example shows how to manipulate an attribute of type
- oracle date.
-
- #define FMT "Month dd, YYYY, HH:MI A.M."
- #define LANG "American"
-
- struct person
-
- OCIDate start_date;
- ;
- typedef struct person person;
-
- OCIError *err;
- person *joe;
- sword status; /o error status o/
-
- /o See oci.h for an example of how to initialize OCIError.
- o For this example, assume the OCIEnv and OCIError has been
- o initialized.
- o/
-
- /o Pin joe person object in the object cache. See ori.h
- o for an example on pinning objects. For this example, assume that
- o joe is pointing to the pinned object.
- o/
-
- /o set the start date of joe o/
- OCIDateSetTime(&joe->start_date, 8, 0, 0);
- OCIDateSetDate(&joe->start_date, 1990, 10, 5);
-
- /o check if the date is valid o/
- uword invalid;
- if (OCIDateCheck(err, &joe->start_date, &invalid) != OCI_SUCCESS)
- /o error handling code o/
- if (invalid)
- /o error handling code o/
-
- /o convert date for display purposes o/
- char str[100];
- ub4 strlen = sizeof(str);
- if (OCIDateToText(err, &joe->start_date, FMT, sizeof(FMT)-1, LANG,
- sizeof(LANG)-1, &strlen, str) != OCI_SUCCESS)
- /o error handling code o/
-
- }
- {--------------------------- OCIDateGetTime -------------------------------- }
- { void OCIDateGetTime(/o_ CONST OCIDate *date, ub1 *hour, ub1 *min,
- ub1 *sec _o/); }
- (* error
- { \
- in declaration at line 1787 *)
- (* error
- *hour = (date)->OCIDateTime.OCITimeHH; \
- error
- *min = (date)->OCIDateTime.OCITimeMI; \
- in declaration at line 1788
- error
- *min = (date)->OCIDateTime.OCITimeMI; \
- error
- *sec = (date)->OCIDateTime.OCITimeSS; \
- in declaration at line 1789
- error
- *sec = (date)->OCIDateTime.OCITimeSS; \
- error
- } *)
- {
- NAME: OCIDateGetTime - OCIDate Get Time portion of date
- PARAMETERS:
- date (IN) - Oracle date whose time data is retrieved
- hour (OUT) - hour value returned
- min (OUT) - minute value returned
- sec (OUT) - second value returned
- DESCRIPTION:
- Return time inforamtion stored in the given date. The time
- information returned is: hour, minute and seconds.
- RETURNS:
- NONE
- }
- {--------------------------- OCIDateGetDate -------------------------------- }
- { void OCIDateGetDate(/o_ CONST OCIDate *date, sb2 *year, ub1 *month,
- ub1 *day _o/); }
- (*in declaration at line 1810 *)
- (* error
- *year = (date)->OCIDateYYYY; \
- error
- *month = (date)->OCIDateMM; \
- in declaration at line 1811
- error
- *month = (date)->OCIDateMM; \
- error
- *day = (date)->OCIDateDD; \
- in declaration at line 1812 *)
- (* error
- *day = (date)->OCIDateDD; \
- error
- }
- {
- NAME: OCIDateGetDate - OCIDate Get Date (year, month, day) portion of date
- PARAMETERS:
- date (IN) - Oracle date whose year, month, day data is retrieved
- year (OUT) - year value returned
- month (OUT) - month value returned
- day (OUT) - day value returned
- DESCRIPTION:
- Return year, month, day inforamtion stored in the given date.
- RETURNS:
- NONE
- }
- {--------------------------- OCIDateSetTime -------------------------------- }
- { void OCIDateSetTime(/o_ OCIDate *date, ub1 hour, ub1 min,
- ub1 sec _o/); }
- in declaration at line 1832
- error
- (date)->OCIDateTime.OCITimeHH = hour; \
- error
- (date)->OCIDateTime.OCITimeMI = min; \
- in declaration at line 1833
- error
- (date)->OCIDateTime.OCITimeMI = min; \
- error
- (date)->OCIDateTime.OCITimeSS = sec; \
- in declaration at line 1834
- error
- (date)->OCIDateTime.OCITimeSS = sec; \
- error
- }
- {
- NAME: OCIDateSetTime - OCIDate Set Time portion of date
- PARAMETERS:
- date (OUT) - Oracle date whose time data is set
- hour (IN) - hour value to be set
- min (IN) - minute value to be set
- sec (IN) - second value to be set
- DESCRIPTION:
- Set the date with the given time inforamtion.
- RETURNS:
- NONE
- }
- {--------------------------- OCIDateSetDate -------------------------------- }
- { void OCIDateSetDate(/o_ OCIDate *date, sb2 year, ub1 month, ub1 day _o/); }
- in declaration at line 1853 *)
- (* error
- (date)->OCIDateYYYY = year; \
- error
- (date)->OCIDateMM = month; \
- in declaration at line 1854
- error
- (date)->OCIDateMM = month; \
- error
- (date)->OCIDateDD = day; \
- in declaration at line 1855
- error
- (date)->OCIDateDD = day; \
- error
- } *)
- {
- NAME: OCIDateSetDate - OCIDate Set Date (year, month, day) portion of date
- PARAMETERS:
- date (IN) - Oracle date whose year, month, day data is set
- year (OUT) - year value to be set
- month (OUT) - month value to be set
- day (OUT) - day value to be set
- DESCRIPTION:
- Set the date with the given year, month, day inforamtion.
- RETURNS:
- NONE
- }
- {--------------------------- OCIDateAssign --------------------------------- }
- (*in declaration at line 1873 *)
- {
- NAME: OCIDateAssign - OCIDate Assignment
- PARAMETERS:
- err (IN/OUT) - error handle. If there is an error, it is
- recorded in 'err' and this function returns OCI_ERROR.
- The error recorded in 'err' can be retrieved by calling
- OCIErrorGet().
- from (IN) - date to be assigned
- to (OUT) - lhs of assignment
- DESCRIPTION:
- Performs date assignment.
- RETURNS:
- OCI_SUCCESS
- }
- {--------------------------- OCIDateToText --------------------------------- }
- {$IFNDEF LinkDynamically}
- function OCIDateToText(err:POCIError; date:POCIDate; fmt:Poratext; fmt_length:ub1; lang_name:Poratext;
- lang_length:ub4; buf_size:Pub4; buf:Poratext):sword;cdecl;external ocilib name 'OCIDateToText';
- {$ELSE}
- var OCIDateToText : function (err:POCIError; date:POCIDate; fmt:Poratext; fmt_length:ub1; lang_name:Poratext;
- lang_length:ub4; buf_size:Pub4; buf:Poratext):sword;cdecl;
- {$ENDIF}
- {
- NAME: OCIDateToText - OCIDate convert date TO String
- PARAMETERS:
- err (IN/OUT) - error handle. If there is an error, it is
- recorded in 'err' and this function returns OCI_ERROR.
- The error recorded in 'err' can be retrieved by calling
- OCIErrorGet().
- date (IN) - Oracle date to be converted
- fmt (IN) - conversion format, if null string pointer (oratext*)0, then
- the date is converted to a character string in the
- date format "DD-MON-YY".
- fmt_length (IN) - length of the 'fmt' parameter
- lang_name (IN) - specifies the language in which the names and
- abbreviations of months and days are returned;
- default language of session is used if 'lang_name'
- is null i.e. (oratext *)0
- lang_length (IN) - length of the 'nls_params' parameter
- buf_size (IN/OUT) - size of the buffer; size of the resulting string
- is returned via this parameter
- buf (OUT) - buffer into which the converted string is placed
- DESCRIPTION:
- Converts the given date to a string according to the specified format.
- Refer to "TO_DATE" conversion function described in
- "Oracle SQL Language Reference Manual" for a description of format
- and NLS arguments. The converted null-terminated date string is
- stored in the buffer 'buf'.
-
- An error is reported upon overflow, e.g. trying to convert a number
- of value 10 using format '9' causes an overflow.
- RETURNS:
- OCI_SUCCESS if the function completes successfully.
- OCI_INVALID_HANDLE if 'err' is NULL.
- OCI_ERROR if
- buffer too small
- invalid format
- unknown language
- overflow error
- }
- {---------------------------- OCIDateFromText ------------------------------ }
- {$IFNDEF LinkDynamically}
- function OCIDateFromText(err:POCIError; date_str:Poratext; d_str_length:ub4; fmt:Poratext; fmt_length:ub1;
- lang_name:Poratext; lang_length:ub4; date:POCIDate):sword;cdecl;external ocilib name 'OCIDateFromText';
- {$ELSE}
- OCIDateFromText : function (err:POCIError; date_str:Poratext; d_str_length:ub4; fmt:Poratext; fmt_length:ub1;
- lang_name:Poratext; lang_length:ub4; date:POCIDate):sword;cdecl;
- {$ENDIF}
- {
- NAME: OCIDateFromText - OCIDate convert String TO Date
- PARAMETERS:
- err (IN/OUT) - error handle. If there is an error, it is
- recorded in 'err' and this function returns OCI_ERROR.
- The error recorded in 'err' can be retrieved by calling
- OCIErrorGet().
- date_str (IN) - input string to be converted to Oracle date
- d_str_length (IN) - size of the input string, if the length is -1
- then 'date_str' is treated as a null terminated string
- fmt (IN) - conversion format; if 'fmt' is a null pointer, then
- the string is expected to be in 'DD-MON-YY' format.
- fmt_length (IN) - length of the 'fmt' parameter
- lang_name (IN) - language in which the names and abbreviations of
- days and months are specified, if null i.e. (oratext *)0,
- the default language of session is used,
- lang_length (IN) - length of the 'lang_name' parameter
- date (OUT) - given string converted to date
- DESCRIPTION:
- Converts the given string to Oracle date
- according to the specified format. Refer to "TO_DATE" conversion
- function described in "Oracle SQL Language Reference Manual" for a
- description of format.
- RETURNS:
- OCI_SUCCESS if the function completes successfully.
- OCI_INVALID_HANDLE if 'err' is NULL.
- OCI_ERROR if
- invalid format
- unknown language
- invalid input string
- <to be discovered>
- }
- {----------------------------- OCIDateCompare ------------------------------ }
- {$IFNDEF LinkDynamically}
- function OCIDateCompare(err:POCIError; date1:POCIDate; date2:POCIDate; result:Psword):sword;cdecl;external ocilib name 'OCIDateCompare';
- {$ELSE}
- OCIDateCompare : function (err:POCIError; date1:POCIDate; date2:POCIDate; result:Psword):sword;cdecl;
- {$ENDIF}
- {
- NAME: OCIDateCompare - OCIDate CoMPare dates
- PARAMETERS:
- err (IN/OUT) - error handle. If there is an error, it is
- recorded in 'err' and this function returns OCI_ERROR.
- The error recorded in 'err' can be retrieved by calling
- OCIErrorGet().
- date1, date2 (IN) - dates to be compared
- result (OUT) - comparison result, 0 if equal, -1 if date1 < date2,
- 1 if date1 > date2
- DESCRIPTION:
- The function OCIDateCompare compares two dates. It returns -1 if date1
- is smaller than date2, 0 if they are equal, and 1 if date1 is greater
- than date2.
- RETURNS:
- OCI_SUCCESS if the function completes successfully.
- OCI_INVALID_HANDLE if 'err' is NULL.
- OCI_ERROR if
- invalid date
- <to be discovered>
- }
- {------------------------- OCIDateAddMonths -------------------------------- }
- {$IFNDEF LinkDynamically}
- function OCIDateAddMonths(err:POCIError; date:POCIDate; num_months:sb4; result:POCIDate):sword;cdecl;external ocilib name 'OCIDateAddMonths';
- {$ELSE}
- OCIDateAddMonths : function (err:POCIError; date:POCIDate; num_months:sb4; result:POCIDate):sword;cdecl;
- {$ENDIF}
- {
- NAME: OCIDateAddMonths - OCIDate ADd or subtract Months
- PARAMETERS:
- err (IN/OUT) - error handle. If there is an error, it is
- recorded in 'err' and this function returns OCI_ERROR.
- The error recorded in 'err' can be retrieved by calling
- OCIErrorGet().
- date (IN) - 'num_months' added or subtracted from 'date'
- num_months (IN) - number of months to be added or subtracted
- (a negative value will be subtracted)
- result (IN/OUT) - result of adding or subtracting to 'date'
- DESCRIPTION:
- The function OCIDateAddDays adds or subtracts num_months from the
- date 'date'.
- If the input 'date' is the last day of a month, then
- appropriate adjustments are made to ensure that the output date is
- also the last day of the month. For example, Feb. 28 + 1 month =
- March 31, and November 30 - 3 months = August 31. Otherwise the
- 'result' date has the same day component as 'date'.
- RETURNS:
- OCI_SUCCESS if the function completes successfully.
- OCI_INVALID_HANDLE if 'err' is NULL.
- OCI_ERROR if
- invalid date
- <to be discovered>
- }
- {--------------------------- OCIDateAddDays -------------------------------- }
- {$IFNDEF LinkDynamically}
- function OCIDateAddDays(err:POCIError; date:POCIDate; num_days:sb4; result:POCIDate):sword;cdecl;external ocilib name 'OCIDateAddDays';
- {$ELSE}
- OCIDateAddDays : function (err:POCIError; date:POCIDate; num_days:sb4; result:POCIDate):sword;cdecl;
- {$ENDIF}
- {
- NAME: OCIDateAddDays - OCIDate ADd or subtract Days
- PARAMETERS:
- err (IN/OUT) - error handle. If there is an error, it is
- recorded in 'err' and this function returns OCI_ERROR.
- The error recorded in 'err' can be retrieved by calling
- OCIErrorGet().
- date (IN) - 'num_days' added or subtracted from 'date'
- num_days (IN) - number of days to be added or subtracted
- (a negative value will be subtracted)
- result (IN/OUT) - result of adding or subtracting to 'date'
- DESCRIPTION:
- The function OCIDateAddDays adds or subtracts num_days from the
- date 'date'.
- RETURNS:
- OCI_SUCCESS if the function completes successfully.
- OCI_INVALID_HANDLE if 'err' is NULL.
- OCI_ERROR if
- invalid date
- <to be discovered>
- }
- {--------------------------- OCIDateLastDay -------------------------------- }
- {$IFNDEF LinkDynamically}
- function OCIDateLastDay(err:POCIError; date:POCIDate; last_day:POCIDate):sword;cdecl;external ocilib name 'OCIDateLastDay';
- {$ELSE}
- OCIDateLastDay : function (err:POCIError; date:POCIDate; last_day:POCIDate):sword;cdecl;
- {$ENDIF}
- {
- NAME: OCIDateLastDay - OCIDate get date of the LaST day of the month
- PARAMETERS:
- err (IN/OUT) - error handle. If there is an error, it is
- recorded in 'err' and this function returns OCI_ERROR.
- The error recorded in 'err' can be retrieved by calling
- OCIErrorGet().
- date (IN) - input date
- last_day (OUT) - last day of the month in date 'date'
- DESCRIPTION:
- The function OCIDateLastDay returns the date of the last day of the
- month in date 'date'.
- RETURNS:
- OCI_SUCCESS if the function completes successfully.
- OCI_INVALID_HANDLE if 'err' is NULL.
- OCI_ERROR if
- invalid date
- <to be discovered>
- }
- {----------------------- OCIDateDaysBetween -------------------------------- }
- {$IFNDEF LinkDynamically}
- function OCIDateDaysBetween(err:POCIError; date1:POCIDate; date2:POCIDate; num_days:Psb4):sword;cdecl;external ocilib name 'OCIDateDaysBetween';
- {$ELSE}
- OCIDateDaysBetween : function (err:POCIError; date1:POCIDate; date2:POCIDate; num_days:Psb4):sword;cdecl;
- {$ENDIF}
- {
- NAME: OCIDateDaysBetween - OCIDate get number of days BeTWeen two dates
- PARAMETERS:
- err (IN/OUT) - error handle. If there is an error, it is
- recorded in 'err' and this function returns OCI_ERROR.
- The error recorded in 'err' can be retrieved by calling
- OCIErrorGet().
- date1, date2 (IN) - input dates
- num_days (OUT) - number of days between date1 and date2
- DESCRIPTION:
- The function OCIDateDaysBetween returns the number of days between
- date1 and date2. The time is ignored in this computation.
- RETURNS:
- OCI_SUCCESS if the function completes successfully.
- OCI_INVALID_HANDLE if 'err' is NULL.
- OCI_ERROR if
- invalid date
- <to be discovered>
- }
- {------------------------ OCIDateZoneToZone -------------------------------- }
- {$IFNDEF LinkDynamically}
- function OCIDateZoneToZone(err:POCIError; date1:POCIDate; zon1:Poratext; zon1_length:ub4; zon2:Poratext;
- zon2_length:ub4; date2:POCIDate):sword;cdecl;external ocilib name 'OCIDateZoneToZone';
- {$ELSE}
- OCIDateZoneToZone : function (err:POCIError; date1:POCIDate; zon1:Poratext; zon1_length:ub4; zon2:Poratext;
- zon2_length:ub4; date2:POCIDate):sword;cdecl;
- {$ENDIF}
- {
- NAME: OCIDateZoneToZone - OCIDate convert date from one Zone TO another Zone
- PARAMETERS:
- err (IN/OUT) - error handle. If there is an error, it is
- recorded in 'err' and this function returns OCI_ERROR.
- The error recorded in 'err' can be retrieved by calling
- OCIErrorGet().
- date1 (IN) - date to be converted
- zon1 (IN) - zone of input date
- zon1_length (IN) - length in bytes of string 'zon1'
- zon2 (IN) - zone to be converted to
- zon2_length (IN) - length in bytes of string 'zon2'
- date2 (OUT) - converted date (in 'zon2')
- DESCRIPTION:
- Converts date from one time zone to another. Given date 'date1'
- in time zone 'zon1' returns date 'date2' in time zone 'zon2'.
- RETURNS:
- OCI_SUCCESS if the function completes successfully.
- OCI_INVALID_HANDLE if 'err' is NULL.
- OCI_ERROR if
- invlid date
- invald input time zone
- invald output time zone
- <to be discovered>
- }
- {--------------------------- OCIDateNextDay -------------------------------- }
- {$IFNDEF LinkDynamically}
- function OCIDateNextDay(err:POCIError; date:POCIDate; day_p:Poratext; day_length:ub4; next_day:POCIDate):sword;cdecl;external ocilib name 'OCIDateNextDay';
- {$ELSE}
- OCIDateNextDay : function (err:POCIError; date:POCIDate; day_p:Poratext; day_length:ub4; next_day:POCIDate):sword;cdecl;
- {$ENDIF}
- {
- NAME: OCIDateNextDay - OCIDate get date of Next DaY
- PARAMETERS:
- err (IN/OUT) - error handle. If there is an error, it is
- recorded in 'err' and this function returns OCI_ERROR.
- The error recorded in 'err' can be retrieved by calling
- OCIErrorGet().
- date (IN) - returned date should be later than this date
- day (IN) - first day of week named by this is returned
- day_length (IN) - length in bytes of string 'day'
- next_day (OUT) - first day of the week named by 'day' later than 'date'
- DESCRIPTION:
- Returns the date of the first day of the
- week named by 'day' that is later than date 'date'.
- RETURNS:
- OCI_SUCCESS if the function completes successfully.
- OCI_INVALID_HANDLE if 'err' is NULL.
- OCI_ERROR if
- invalid date
- invalid day
- <to be discovered>
- }
- {----------------------------- OCIDateCheck -------------------------------- }
- { Listing of error bits used by OCIDateCheck() }
- { Bad DAy }
- const
- OCI_DATE_INVALID_DAY = $1;
- { Bad DAy Low/high bit (1=low) }
- OCI_DATE_DAY_BELOW_VALID = $2;
- { Bad MOnth }
- OCI_DATE_INVALID_MONTH = $4;
- { Bad MOnth Low/high bit (1=low) }
- OCI_DATE_MONTH_BELOW_VALID = $8;
- { Bad YeaR }
- OCI_DATE_INVALID_YEAR = $10;
- { Bad YeaR Low/high bit (1=low) }
- OCI_DATE_YEAR_BELOW_VALID = $20;
- { Bad HouR }
- OCI_DATE_INVALID_HOUR = $40;
- { Bad HouR Low/high bit (1=low) }
- OCI_DATE_HOUR_BELOW_VALID = $80;
- { Bad MiNute }
- OCI_DATE_INVALID_MINUTE = $100;
- OCI_DATE_MINUTE_BELOW_VALID = $200;
- { Bad MiNute Low/high bit (1=low) }
- { Bad SeCond }
- OCI_DATE_INVALID_SECOND = $400;
- OCI_DATE_SECOND_BELOW_VALID = $800;
- { bad second Low/high bit (1=low) }
- OCI_DATE_DAY_MISSING_FROM_1582 = $1000;
- { Day is one of those "missing" from 1582 }
- { Year may not equal zero }
- OCI_DATE_YEAR_ZERO = $2000;
- { Bad date format input }
- OCI_DATE_INVALID_FORMAT = $8000;
- {$IFNDEF LinkDynamically}
- function OCIDateCheck(err:POCIError; date:POCIDate; valid:Puword):sword;cdecl;external ocilib name 'OCIDateCheck';
- {$ELSE}
- var OCIDateCheck : function(err:POCIError; date:POCIDate; valid:Puword):sword;cdecl;
- {$ENDIF}
- {
- NAME: OCIDateCheck - OCIDate CHecK if the given date is valid
- PARAMETERS:
- err (IN/OUT) - error handle. If there is an error, it is
- recorded in 'err' and this function returns OCI_ERROR.
- The error recorded in 'err' can be retrieved by calling
- OCIErrorGet().
- date (IN) - date to be checked
- valid (OUT) - returns zero for a valid date, otherwise
- the ORed combination of all error bits specified below:
-
- Macro name Bit number Error
- ---------- ---------- -----
- OCI_DATE_INVALID_DAY 0x1 Bad day
- OCI_DATE_DAY_BELOW_VALID 0x2 Bad DAy Low/high bit (1=low)
- OCI_DATE_INVALID_MONTH 0x4 Bad MOnth
- OCI_DATE_MONTH_BELOW_VALID 0x8 Bad MOnth Low/high bit (1=low)
- OCI_DATE_INVALID_YEAR 0x10 Bad YeaR
- OCI_DATE_YEAR_BELOW_VALID 0x20 Bad YeaR Low/high bit (1=low)
- OCI_DATE_INVALID_HOUR 0x40 Bad HouR
- OCI_DATE_HOUR_BELOW_VALID 0x80 Bad HouR Low/high bit (1=low)
- OCI_DATE_INVALID_MINUTE 0x100 Bad MiNute
- OCI_DATE_MINUTE_BELOW_VALID 0x200 Bad MiNute Low/high bit (1=low)
- OCI_DATE_INVALID_SECOND 0x400 Bad SeCond
- OCI_DATE_SECOND_BELOW_VALID 0x800 bad second Low/high bit (1=low)
- OCI_DATE_DAY_MISSING_FROM_1582 0x1000 Day is one of those "missing"
- from 1582
- OCI_DATE_YEAR_ZERO 0x2000 Year may not equal zero
- OCI_DATE_INVALID_FORMAT 0x8000 Bad date format input
-
- So, for example, if the date passed in was 2/0/1990 25:61:10 in
- (month/day/year hours:minutes:seconds format), the erroor returned
- would be OCI_DATE_INVALID_DAY | OCI_DATE_DAY_BELOW_VALID |
- OCI_DATE_INVALID_HOUR | OCI_DATE_INVALID_MINUTE
-
- DESCRIPTION:
- Check if the given date is valid.
- RETURNS:
- OCI_SUCCESS if the function completes successfully.
- OCI_INVALID_HANDLE if 'err' is NULL.
- OCI_ERROR if
- 'date' and 'valid' pointers are NULL pointers
- }
- {--------------------------- OCIDateSysDate -------------------------------- }
- {$IFNDEF LinkDynamically}
- function OCIDateSysDate(err:POCIError; sys_date:POCIDate):sword;cdecl;external ocilib name 'OCIDateSysDate';
- {$ELSE}
- OCIDateSysDate : function (err:POCIError; sys_date:POCIDate):sword;cdecl;
- {$ENDIF}
- {
- NAME: OCIDateSysDate - OCIDate get current SYStem date and time
- PARAMETERS:
- err (IN/OUT) - error handle. If there is an error, it is
- recorded in 'err' and this function returns OCI_ERROR.
- The error recorded in 'err' can be retrieved by calling
- OCIErrorGet().
- sys_date (OUT) - current system date and time
- DESCRIPTION:
- Returns the current system date and time.
- RETURNS:
- OCI_SUCCESS if the function completes successfully.
- OCI_INVALID_HANDLE if 'err' is NULL.
- OCI_ERROR if
- <to be discovered>
- }
- {*************************************************************************** }
- { FIXED-LENGTH STRING - CHAR (N) }
- {*************************************************************************** }
- {
- * An ADT attribute declared as "x CHAR(n)" is mapped to "OCIString *x;".
- * The representation of OCIString * is shown below.
- }
- {*************************************************************************** }
- { VARIABLE-LENGTH STRING }
- {*************************************************************************** }
- {
- * The variable-length string is represented in C as a pointer to OCIString
- * structure. The OCIString structure is opaque to the user. Functions are
- * provided to allow the user to manipulate a variable-length string.
- *
- * A variable-length string can be declared as:
- *
- * OCIString *vstr;
- *
- * For binding variables of type OCIString* in OCI calls (OCIBindByName(),
- * OCIBindByPos() and OCIDefineByPos()) use the external type code SQLT_VST.
- }
- type
- POCIString = pointer;
- {-------------------------- OCIStringAssign -------------------------------- }
- {$IFNDEF LinkDynamically}
- function OCIStringAssign(env:POCIEnv; err:POCIError; rhs:POCIString; var lhs:POCIString):sword;cdecl;external ocilib name 'OCIStringAssign';
- {$ELSE}
- var OCIStringAssign : function (env:POCIEnv; err:POCIError; rhs:POCIString; var lhs:POCIString):sword;cdecl;
- {$ENDIF}
- {
- NAME: OCIStringAssign - OCIString Assign String to String
- PARAMETERS:
- env (IN/OUT) - OCI environment handle initialized in object mode.
- err (IN/OUT) - error handle. If there is an error, it is
- recorded in 'err' and this function returns OCI_ERROR.
- The error recorded in 'err' can be retrieved by calling
- OCIErrorGet().
- rhs (IN) - RHS of the assignment, the type of rhs is also OCIString
- lhs (IN/OUT) - LHS of the assignment
- DESCRIPTION:
- Assign 'rhs' string to 'lhs' string. The 'lhs' string may be
- resized depending upon the size of the 'rhs'. The assigned string is
- null-terminated. The 'length' field will not include the extra byte
- needed for null termination.
- RETURNS:
- OCI_SUCCESS if the function completes successfully.
- OCI_INVALID_HANDLE if 'env' or 'err' is NULL.
- OCI_ERROR if
- out of space error
- }
- {---------------------- OCIStringAssignText -------------------------------- }
- {$IFNDEF LinkDynamically}
- function OCIStringAssignText(env:POCIEnv; err:POCIError; rhs:Poratext; rhs_len:ub4; var lhs:POCIString):sword;cdecl;external ocilib name 'OCIStringAssignText';
- {$ELSE}
- OCIStringAssignText : function (env:POCIEnv; err:POCIError; rhs:Poratext; rhs_len:ub4; var lhs:POCIString):sword;cdecl;
- {$ENDIF}
- {
- NAME: OCIStringAssignText - OCIString Assign Text string to String
- PARAMETERS:
- env (IN/OUT) - OCI environment handle initialized in object mode.
- err (IN/OUT) - error handle. If there is an error, it is
- recorded in 'err' and this function returns OCI_ERROR.
- The error recorded in 'err' can be retrieved by calling
- OCIErrorGet().
- rhs (IN) - RHS of the assignment, the type of rhs is a text string
- rhs_len (IN) - length of the 'rhs' string
- lhs (IN/OUT) - LHS of the assignment
- DESCRIPTION:
- Assign 'rhs' string to 'lhs' string. The 'lhs' string may be
- resized depending upon the size of the 'rhs'. The assigned string is
- null-terminated. The 'length' field will not include the extra byte
- needed for null termination.
- RETURNS:
- OCI_SUCCESS if the function completes successfully.
- OCI_INVALID_HANDLE if 'env' or 'err' is NULL.
- OCI_ERROR if
- out of space error
- }
- {-------------------------- OCIStringResize -------------------------------- }
- {$IFNDEF LinkDynamically}
- function OCIStringResize(env:POCIEnv; err:POCIError; new_size:ub4; var str:POCIString):sword;cdecl;external ocilib name 'OCIStringResize';
- {$ELSE}
- OCIStringResize : function (env:POCIEnv; err:POCIError; new_size:ub4; var str:POCIString):sword;cdecl;
- {$ENDIF}
- {
- NAME: OCIStringResize - OCIString ReSiZe string memory
- PARAMETERS:
- env (IN/OUT) - OCI environment handle initialized in object mode.
- err (IN/OUT) - error handle. If there is an error, it is
- recorded in 'err' and this function returns OCI_ERROR.
- The error recorded in 'err' can be retrieved by calling
- OCIErrorGet().
- new_size (IN) - new memory size of the string in bytes
- str (IN/OUT) - allocated memory for the string is freed from the
- OOCI heap
- DESCRIPTION:
- This function resizes the memory of the given variable-length string in
- the object cache. The contents of the string are NOT preserved.
- This function may allocate the string in a new memory region in
- which case the original memory occupied by the given string will
- be freed. If the input string is null (str == NULL), then this
- function will allocate memory for the string.
-
- If the new_size is 0, then this function frees the memory occupied
- by 'str' and a null pointer value is returned.
-
- NOTE: The caller must compute 'new_size' taking into account space
- for the null character ('\0').
- RETURNS:
- OCI_SUCCESS if the function completes successfully.
- OCI_INVALID_HANDLE if 'env' or 'err' is NULL.
- OCI_ERROR if
- out of space error
- }
- {---------------------------- OCIStringSize -------------------------------- }
- {$IFNDEF LinkDynamically}
- function OCIStringSize(env:POCIEnv; vs:POCIString):ub4;cdecl;external ocilib name 'OCIStringSize';
- {$ELSE}
- OCIStringSize : function (env:POCIEnv; vs:POCIString):ub4;cdecl;
- {$ENDIF}
- {
- NAME: OCIStringSize - OCIString Get String siZe
- PARAMETERS:
- env(IN) - pointer to OCI environment handle
- vs (IN) - string whose size is returned
- DESCRIPTION:
- Return the size of the given string.
- RETURNS:
- size of the string in bytes is returned
- }
- {----------------------------- OCIStringPtr -------------------------------- }
- {$IFNDEF LinkDynamically}
- function OCIStringPtr(env:POCIEnv; vs:POCIString):Poratext;cdecl;external ocilib name 'OCIStringPtr';
- {$ELSE}
- OCIStringPtr : function (env:POCIEnv; vs:POCIString):Poratext;cdecl;
- {$ENDIF}
- {
- NAME: OCIStringPtr - OCIString Get String Pointer
- PARAMETERS:
- env(IN) - pointer to OCI environment handle
- vs (IN) - pointer to the text of this string is returned
- DESCRIPTION:
- Return the pointer to the text of the given string.
- RETURNS:
- pointer to the text of the string is returned
- }
- {----------------------- OCIStringAllocSize -------------------------------- }
- {$IFNDEF LinkDynamically}
- function OCIStringAllocSize(env:POCIEnv; err:POCIError; vs:POCIString; allocsize:Pub4):sword;cdecl;external ocilib name 'OCIStringAllocSize';
- {$ELSE}
- OCIStringAllocSize : function (env:POCIEnv; err:POCIError; vs:POCIString; allocsize:Pub4):sword;cdecl;
- {$ENDIF}
- {
- NAME: OCIStringAllocSize - OCIString get Allocated SiZe of string memory
- in bytes
- PARAMETERS:
- env (IN/OUT) - OCI environment handle initialized in object mode.
- err (IN/OUT) - error handle. If there is an error, it is
- recorded in 'err' and this function returns OCI_ERROR.
- The error recorded in 'err' can be retrieved by calling
- OCIErrorGet().
- vs (IN) - string whose allocated size in bytes is returned
- allocsize (OUT) - allocated size of string memory in bytes is returned
- DESCRIPTION:
- Return the allocated size of the string memory in bytes. The
- allocated size is >= actual string size.
- REQUIRES:
- vs is a non-null pointer
- RETURNS:
- OCI_SUCCESS if the function completes successfully.
- OCI_INVALID_HANDLE if 'env' or 'err' is NULL.
- OCI_ERROR on error
- }
- {*************************************************************************** }
- { VARIABLE-LENGTH RAW }
- {*************************************************************************** }
- {
- * The variable-length raw is represented in C as a pointer to OCIRaw
- * structure. The OCIRaw structure is opaque to the user. Functions are
- * provided to allow the user to manipulate a variable-length raw.
- *
- * A variable-length raw can be declared as:
- *
- * OCIRaw *raw;
- *
- * For binding variables of type OCIRaw* in OCI calls (OCIBindByName(),
- * OCIBindByPos() and OCIDefineByPos()) use the external type code SQLT_LVB.
- }
- type
- POCIRaw = pointer;
- {-------------------------- OCIRawAssignRaw -------------------------------- }
- {$IFNDEF LinkDynamically}
- function OCIRawAssignRaw(env:POCIEnv; err:POCIError; rhs:POCIRaw; var lhs:POCIRaw):sword;cdecl;external ocilib name 'OCIRawAssignRaw';
- {$ELSE}
- var OCIRawAssignRaw : function (env:POCIEnv; err:POCIError; rhs:POCIRaw; var lhs:POCIRaw):sword;cdecl;
- {$ENDIF}
- {
- NAME: OCIRawAssignRaw - OCIRaw Assign Raw (of type OCIRaw*) to
- Raw (of type OCIRaw*)
- PARAMETERS:
- env (IN/OUT) - OCI environment handle initialized in object mode.
- err (IN/OUT) - error handle. If there is an error, it is
- recorded in 'err' and this function returns OCI_ERROR.
- The error recorded in 'err' can be retrieved by calling
- OCIErrorGet().
- rhs (IN) - RHS of the assignment, the type of rhs is also OCIRaw
- lhs (IN/OUT) - LHS of the assignment
- DESCRIPTION:
- Assign 'rhs' raw to 'lhs' raw. The 'lhs' raw may be
- resized depending upon the size of the 'rhs'.
- RETURNS:
- OCI_SUCCESS if the function completes successfully.
- OCI_INVALID_HANDLE if 'env' or 'err' is NULL.
- OCI_ERROR if
- out of space error
- }
- {------------------------ OCIRawAssignBytes -------------------------------- }
- {$IFNDEF LinkDynamically}
- function OCIRawAssignBytes(env:POCIEnv; err:POCIError; rhs:Pub1; rhs_len:ub4; var lhs:POCIRaw):sword;cdecl;external ocilib name 'OCIRawAssignBytes';
- {$ELSE}
- OCIRawAssignBytes : function (env:POCIEnv; err:POCIError; rhs:Pub1; rhs_len:ub4; var lhs:POCIRaw):sword;cdecl;
- {$ENDIF}
- {
- NAME: OCIRawAssignBytes - OCIRaw Assign raw Bytes (of type ub1*) to Raw
- (of type OCIRaw*)
- PARAMETERS:
- env (IN/OUT) - OCI environment handle initialized in object mode.
- err (IN/OUT) - error handle. If there is an error, it is
- recorded in 'err' and this function returns OCI_ERROR.
- The error recorded in 'err' can be retrieved by calling
- OCIErrorGet().
- rhs (IN) - RHS of the assignment, the type of rhs is ub1 *
- rhs_len (IN) - length of the 'rhs' raw
- lhs (IN/OUT) - LHS of the assignment
- DESCRIPTION:
- Assign 'rhs' raw to 'lhs' raw. The 'lhs' raw may be
- resized depending upon the size of the 'rhs'.
- RETURNS:
- OCI_SUCCESS if the function completes successfully.
- OCI_INVALID_HANDLE if 'env' or 'err' is NULL.
- OCI_ERROR if
- out of space error
- }
- {---------------------------- OCIRawResize --------------------------------- }
- {$IFNDEF LinkDynamically}
- function OCIRawResize(env:POCIEnv; err:POCIError; new_size:ub4; var raw:POCIRaw):sword;cdecl;external ocilib name 'OCIRawResize';
- {$ELSE}
- OCIRawResize : function (env:POCIEnv; err:POCIError; new_size:ub4; var raw:POCIRaw):sword;cdecl;
- {$ENDIF}
- {
- NAME: OCIRawResize - OCIRaw ReSiZe memory of variable-length raw
- PARAMETERS:
- env (IN/OUT) - OCI environment handle initialized in object mode.
- err (IN/OUT) - error handle. If there is an error, it is
- recorded in 'err' and this function returns OCI_ERROR.
- The error recorded in 'err' can be retrieved by calling
- OCIErrorGet().
- new_size (IN) - new size of the raw data in bytes
- raw (IN) - variable-length raw pointer; the raw is
- resized to 'new_size'
- DESCRIPTION:
- This function resizes the memory of the given variable-length raw in
- the object cache.
- The previous contents of the raw are NOT preserved.
- This function may allocate the raw in a new memory region in
- which case the original memory occupied by the given raw will
- be freed. If the input raw is null (raw == NULL), then this
- function will allocate memory for the raw data.
-
- If the new_size is 0, then this function frees the memory occupied
- by 'raw' and a null pointer value is returned.
- RETURNS:
- OCI_SUCCESS if the function completes successfully.
- OCI_INVALID_HANDLE if 'env' or 'err' is NULL.
- OCI_ERROR if
- out of space error
- }
- {------------------------------- OCIRawSize -------------------------------- }
- {$IFNDEF LinkDynamically}
- function OCIRawSize(env:POCIEnv; raw:POCIRaw):ub4;cdecl;external ocilib name 'OCIRawSize';
- {$ELSE}
- OCIRawSize : function (env:POCIEnv; raw:POCIRaw):ub4;cdecl;
- {$ENDIF}
- {
- NAME: OCIRawSize - OCIRaw Get Raw siZe
- PARAMETERS:
- env (IN) - pointer to OCI environment handle
- raw (INT) - raw whose size is returned
- DESCRIPTION:
- Return the size of the given raw.
- RETURNS:
- size of the raw in bytes is returned
- }
- {--------------------------------- OCIRawPtr ------------------------------- }
- {$IFNDEF LinkDynamically}
- function OCIRawPtr(env:POCIEnv; raw:POCIRaw):Pub1;cdecl;external ocilib name 'OCIRawPtr';
- {$ELSE}
- OCIRawPtr : function(env:POCIEnv; raw:POCIRaw):Pub1;cdecl;
- {$ENDIF}
- {
- NAME: OCIRawPtr - OCIRaw Get Raw data Pointer
- PARAMETERS:
- env (IN) - pointer to OCI environment handle
- raw (IN) - pointer to the data of this raw is returned
- DESCRIPTION:
- Return the pointer to the data of the given raw.
- RETURNS:
- pointer to the data of the raw is returned
- }
- {------------------------------ OCIRawAllocSize ---------------------------- }
- {$IFNDEF LinkDynamically}
- function OCIRawAllocSize(env:POCIEnv; err:POCIError; raw:POCIRaw; allocsize:Pub4):sword;cdecl;external ocilib name 'OCIRawAllocSize';
- {$ELSE}
- OCIRawAllocSize : function (env:POCIEnv; err:POCIError; raw:POCIRaw; allocsize:Pub4):sword;cdecl;
- {$ENDIF}
- {
- NAME: OCIRawAllocSize - OCIRaw get Allocated SiZe of raw memory in bytes
- PARAMETERS:
- env (IN/OUT) - OCI environment handle initialized in object mode.
- err (IN/OUT) - error handle. If there is an error, it is
- recorded in 'err' and this function returns OCI_ERROR.
- The error recorded in 'err' can be retrieved by calling
- OCIErrorGet().
- raw (IN) - raw whose allocated size in bytes is returned
- allocsize (OUT) - allocated size of raw memory in bytes is returned
- DESCRIPTION:
- Return the allocated size of the raw memory in bytes. The
- allocated size is >= actual raw size.
- REQUIRES:
- raw is a non-null pointer
- RETURNS:
- OCI_SUCCESS if the function completes successfully.
- OCI_INVALID_HANDLE if 'env' or 'err' is NULL.
- OCI_ERROR upon error
- }
- {*************************************************************************** }
- { OBJECT REFERENCE OPERATIONS }
- {*************************************************************************** }
- {
- * See the definition of OCIRef in oro.h.
- *
- * For binding variables of type OCIRef* in OCI calls (OCIBindByName(),
- * OCIBindByPos() and OCIDefineByPos()) use the code SQLT_REF.
- *
- }
- {---------------------------- OCIRefClear ---------------------------------- }
- {$IFNDEF LinkDynamically}
- procedure OCIRefClear(env:POCIEnv; ref:POCIRef);cdecl;external ocilib name 'OCIRefClear';
- {$ELSE}
- OCIRefClear : procedure (env:POCIEnv; ref:POCIRef);cdecl;
- {$ENDIF}
- {
- NAME: OCIRefClear - OCIRef CLeaR or nullify a ref
- PARAMETERS:
- env (IN) - pointer to OCI environment handle
- ref (IN/OUT) - ref to clear
- DESCRIPTION:
- Clear or nullify the given ref. A ref is considered to be a null ref
- if it does not contain a valid OID (and thus doesn't point to an
- object). Logically, a null ref is a dangling ref.
-
- Note that a null ref is still a valid SQL value and is not SQL-ly null.
- It can be used as a valid non-null constant ref value for NOT NULL
- column or attribute of a row in a table.
-
- If a null pointer value is passed as a ref,
- then this function is a no-op.
- }
- {--------------------------- OCIRefAssign ---------------------------------- }
- {$IFNDEF LinkDynamically}
- function OCIRefAssign(env:POCIEnv; err:POCIError; source:POCIRef; var target:POCIRef):sword;cdecl;external ocilib name 'OCIRefAssign';
- {$ELSE}
- OCIRefAssign : function (env:POCIEnv; err:POCIError; source:POCIRef; var target:POCIRef):sword;cdecl;
- {$ENDIF}
- {
- NAME: OCIRefAssign - OCIRef CoPY a ref to another
- PARAMETERS:
- env (IN/OUT) - OCI environment handle initialized in object mode.
- err (IN/OUT) - error handle. If there is an error, it is
- recorded in 'err' and this function returns OCI_ERROR.
- The error recorded in 'err' can be retrieved by calling
- OCIErrorGet().
- source (IN) - ref to copy from
- target (IN/OUT) - ref to copy to
- DESCRIPTION:
- Copy 'source' ref to 'target' ref; both then reference the same
- object. If the target ref pointer is null (i.e. *target == NULL)
- then the copy function will allocate memory for the target ref
- in OOCI heap prior to the copy.
- RETURNS:
- OCI_SUCCESS if the function completes successfully.
- OCI_INVALID_HANDLE if 'env' or 'err' is NULL.
- OCI_ERROR if
- 1) out of memory
- }
- {-------------------------- OCIRefIsEqual ---------------------------------- }
- {$IFNDEF LinkDynamically}
- function OCIRefIsEqual(env:POCIEnv; x:POCIRef; y:POCIRef):boolean;cdecl;external ocilib name 'OCIRefIsEqual';
- {$ELSE}
- OCIRefIsEqual : function (env:POCIEnv; x:POCIRef; y:POCIRef):boolean;cdecl;
- {$ENDIF}
- {
- NAME: OCIRefIsEqual - OCIRef compare two refs for EQUality
- PARAMETERS:
- env (IN) - pointer to OCI environment handle
- x (IN) - ref to compare
- y (IN) - ref to compare
- DESCRIPTION:
- Compare the given refs for equality.
- Two refs are equal if and only if:
- - they are both referencing the same persistent object, or
- - they are both referencing the same transient object.
-
- NOTE THAT TWO NULL REFS ARE CONSIDERED NOT EQUAL BY THIS FUNCTION.
- RETURNS:
- TRUE if the two refs are equal
- FALSE if the two refs are not equal, or X is NULL, or Y is NULL
- }
- {--------------------------- OCIRefIsNull ---------------------------------- }
- {$IFNDEF LinkDynamically}
- function OCIRefIsNull(env:POCIEnv; ref:POCIRef):boolean;cdecl;external ocilib name 'OCIRefIsNull';
- {$ELSE}
- OCIRefIsNull : function (env:POCIEnv; ref:POCIRef):boolean;cdecl;
- {$ENDIF}
- {
- NAME: OCIRefIsNull - OCIRef test if a ref is NULl
- PARAMETERS:
- env (IN) - pointer to OCI environment handle
- ref (IN) - ref to test for null
- DESCRIPTION:
- Return TRUE if the given ref is null; otherwise, return FALSE.
- A ref is null if and only if:
- - it is supposed to be referencing a persistent object, but
- its OID is null, or
- - it is supposed to be referencing a transient object, but it is
- currently not pointing to an object.
- A ref is a dangling ref if the object that it points to does not
- exist.
- RETURNS:
- TRUE if the given ref is NULL
- FALSE if the given ref is not NULL
- }
- {-------------------------- OCIRefHexSize ---------------------------------- }
- {$IFNDEF LinkDynamically}
- function OCIRefHexSize(env:POCIEnv; ref:POCIRef):ub4;cdecl;external ocilib name 'OCIRefHexSize';
- {$ELSE}
- OCIRefHexSize : function (env:POCIEnv; ref:POCIRef):ub4;cdecl;
- {$ENDIF}
- {
- NAME: OCIRefHexSize - OCIRef Hexadecimal buffer SiZe in bytes
- PARAMETERS:
- env (IN) - pointer to OCI environment handle
- ref (IN) - ref whose size in hexadecimal representation in bytes is
- returned
- DESCRIPTION:
- Return the size of the buffer in bytes required for the hexadecimal
- representation of the ref. A buffer of at-least this size must be
- passed to ref-to-hex (OCIRefToHex) conversion function.
- RETURNS:
- size of hexadecimal representation of ref
- }
- {-------------------------- OCIRefFromHex --------------------------------- }
- {$IFNDEF LinkDynamically}
- function OCIRefFromHex(env:POCIEnv; err:POCIError; svc:POCISvcCtx; hex:Poratext; length:ub4;
- var ref:POCIRef):sword;cdecl;external ocilib name 'OCIRefFromHex';
- {$ELSE}
- OCIRefFromHex : function (env:POCIEnv; err:POCIError; svc:POCISvcCtx; hex:Poratext; length:ub4;
- var ref:POCIRef):sword;cdecl;
- {$ENDIF}
- {
- NAME:
- OCIRefFromHex - OCIRef convert a Hexadecimal string TO a Ref
- PARAMETERS:
- env (IN/OUT) - OCI environment handle initialized in object mode
- err (IN/OUT) - error handle. If there is an error, it is
- recorded in 'err' and this function returns OCI_ERROR.
- The error recorded in 'err' can be retrieved by
- calling OCIErrorGet().
- svc (IN) - OCI service context handle; if the resulting ref is
- initialized with this service context
- hex (IN) - hexadecimal string (that was produced by 'OCIRefToHex()"
- previously) to be convert into a ref
- length (IN) - length of the hexadecimal string
- ref (IN/OUT) - ref is initialized with the given value ('hex').
- If *ref is null, then space for the ref is allocated in the
- object cache, otherwise the memory occupied by the given ref
- is re-used.
- DESCRIPTION:
- Convert the given hexadecimal string into a ref. This function
- ensures that the resulting ref is well formed. It does NOT ensure
- that the object pointed to by the resulting ref exists or not.
- RETURNS:
- OCI_SUCCESS if the function completes successfully.
- OCI_INVALID_HANDLE if 'env' or 'err' is NULL.
- OCI_ERROR if
- }
- {--------------------------- OCIRefToHex ----------------------------------- }
- {$IFNDEF LinkDynamically}
- function OCIRefToHex(env:POCIEnv; err:POCIError; ref:POCIRef; hex:Poratext; hex_length:Pub4):sword;cdecl;external ocilib name 'OCIRefToHex';
- {$ELSE}
- OCIRefToHex : function (env:POCIEnv; err:POCIError; ref:POCIRef; hex:Poratext; hex_length:Pub4):sword;cdecl;
- {$ENDIF}
- {
- NAME:
- OCIRefToHex - OCIRef convert ref to a Hexadecimal string
- PARAMETERS:
- env (IN/OUT) - OCI environment handle initialized in object mode
- err (IN/OUT) - error handle. If there is an error, it is
- recorded in 'err' and this function returns OCI_ERROR.
- The error recorded in 'err' can be retrieved by
- calling OCIErrorGet().
- ref (IN) - ref to be converted into a hexadecimal string; if the
- ref is a null ref (i.e. OCIRefIsNull(ref) == TRUE) then
- a zero hex_length value is returned
- hex (OUT) - buffer that is large enough to contain the resulting
- hexadecimal string; the contents of the string is opaque
- to the caller
- hex_length (IN/OUT) - on input specifies the size of the 'hex' buffer,
- on output specifies the actual size of the hexadecimal
- string being returned in 'hex'
- DESCRIPTION:
- Convert the given ref into a hexadecimal string, and return the length
- of the string. The resulting string is opaque to the caller.
- RETURNS:
- OCI_SUCCESS if the function completes successfully.
- OCI_INVALID_HANDLE if 'env' or 'err' is NULL.
- OCI_ERROR if
- the given buffer is not big enough to hold the resulting string
- }
- {*************************************************************************** }
- { COLLECTION FUNCTIONS }
- {*************************************************************************** }
- {
- The generic collection is represented by the type 'OCIColl'. The following
- operations OCIColl*() are provided on a generic collection:
- - get current size of collection
- - get upper bound of collection
- - get pointer to an element given its index
- - set element at given index (assign element)
- - append an element
- - trim the given number of elements from the end of the collection
- - collection assignment
-
- The following iterator based scanning functions are also provided on a
- generic collection. These functions make use of an iterator which is
- defined to be of type OCIIter.
-
- - create an iterator for scanning collection
- - destroy iterator
- - reset iterator to the beginning of collection
- - get pointer to current element pointed by iterator
- - get pointer to next element
- - get pointer to previous element
-
- The collections variable-length array (varray) and nested table
- are sub-types of generic collection. This means that the OCIColl*()
- functions can also be used to manipulate varray and nested table.
-
- The varray is represented by OCIArray type and nested table by OCITable.
- Besides OCIColl*() functions no additional functions are provided for
- manipulating varrays. The OCIColl*() functions are a complete set of
- functions to manipulate varrays.
-
- Besides OCIColl*() functions, the following functions OCITable*() can be
- used to manipulate nested table. The OCITable*() functions operate on
- nested tables only and should not be used on a varray.
-
- - delete an element at index i. Note that the position
- ordinals of the remaining elements of the table is not changed by the
- delete operation. So delete creates "holes" in the table.
- - check if an element exists at the given index i
- - return the smallest value of i for which exists(i) is true
- - return the largest value of i for which exists(i) is true
- - return pointer to the smallest position j, greater than i, such that
- OCITableExists(j) is true
- - return pointer to the largest position j, less than i, such that
- OCITableExists(j) is true
-
- For binding variables of type OCIColl* or OCITable* in OCI calls
- (OCIBindByName(), OCIBindByPos() and OCIDefineByPos()) use the external
- type code SQLT_NTY.
- }
- { OCIColl - generic collection type }
- type
- POCIColl = pointer;
- { OCIArray - varray collection type }
- POCIArray = pointer;
- // POCIArray = ^OCIArray;
- // OCIArray = OCIColl;
- { OCITable - nested table collection type }
- POCITable = pointer;
- // POCITable = ^OCITable;
- // OCITable = OCIColl;
- { OCIIter - collection iterator }
- POCIIter = pointer;
- {----------------------------- OCICollSize --------------------------------- }
- {$IFNDEF LinkDynamically}
- function OCICollSize(env:POCIEnv; err:POCIError; coll:POCIColl; size:Psb4):sword;cdecl;external ocilib name 'OCICollSize';
- {$ELSE}
- var OCICollSize : function (env:POCIEnv; err:POCIError; coll:POCIColl; size:Psb4):sword;cdecl;
- {$ENDIF}
- {
- NAME: OCICollSize - OCIColl return current SIZe of the given collection
- PARAMETERS:
- env(IN) - pointer to OCI environment handle
- err (IN/OUT) - error handle. If there is an error, it is
- recorded in 'err' and this function returns OCI_ERROR.
- The error recorded in 'err' can be retrieved by calling
- OCIErrorGet().
- coll (IN) - collection whose number of elements is returned
- size (OUT) - current number of elements in the collection
- DESCRIPTION:
- Returns the current number of elements in the given collection.
-
- For collections of type nested table wherein 'delete element'
- operation is allowed, the count returned by OCICollSize() will
- NOT be decremented upon deleting elements. For example:
-
- OCICollSize(...);
- // assume 'size' returned is equal to 5
- OCITableDelete(...); // delete one element
- OCICollSize(...);
- // 'size' returned will still be 5
-
- To get the count minus the deleted elements use OCITableSize().
- Continuing the above example,
-
- OCITableSize(...)
- // 'size' returned will be equal to 4
-
- Note, a trim operation (OCICollTrim) will decrement the count
- by the number of trimmed elements. Continuing the above example,
-
- OCICollTrim(..,1..); // trim one element
- OCICollSize(...);
- // 'size' returned will be equal to 4
- RETURNS:
- OCI_SUCCESS if the function completes successfully.
- OCI_INVALID_HANDLE if 'env' or 'err' is NULL.
- OCI_ERROR if
- error during loading of collection into object cache
- any of the input parameters is null
- }
- {------------------------------ OCICollMax --------------------------------- }
- {$IFNDEF LinkDynamically}
- function OCICollMax(env:POCIEnv; coll:POCIColl):sb4;cdecl;external ocilib name 'OCICollMax';
- {$ELSE}
- OCICollMax : function (env:POCIEnv; coll:POCIColl):sb4;cdecl;
- {$ENDIF}
- {
- NAME: OCICollMax - OCIColl return MAXimum size (upper-bound) of the
- given collection (in number of elements)
- PARAMETERS:
- env(IN) - pointer to OCI environment handle
- coll (IN) - collection whose upper-bound in number of elements
- is returned
- DESCRIPTION:
- Returns the max number of elements that the given collection can hold.
- A value 0 indicates that the collection has no upper-bound.
- REQUIRES:
- coll must point to a valid collection descriptor
- RETURNS:
- upper-bound of the given collection
- }
- {-------------------------- OCICollGetElem --------------------------------- }
- {$IFNDEF LinkDynamically}
- function OCICollGetElem(env:POCIEnv; err:POCIError; coll:POCIColl; index:sb4; exists:Pboolean;
- elem:PPdvoid; elemind:PPdvoid):sword;cdecl;external ocilib name 'OCICollGetElem';
- {$ELSE}
- OCICollGetElem : function (env:POCIEnv; err:POCIError; coll:POCIColl; index:sb4; exists:Pboolean;
- elem:PPdvoid; elemind:PPdvoid):sword;cdecl;
- {$ENDIF}
- {
- NAME: OCICollGetElem - OCIColl GET pointer to the element at the given index
- PARAMETERS:
- env (IN/OUT) - OCI environment handle initialized in object mode.
- err (IN/OUT) - error handle. If there is an error, it is
- recorded in 'err' and this function returns OCI_ERROR.
- The error recorded in 'err' can be retrieved by calling
- OCIErrorGet().
- coll (IN) - pointer to the element in this collection is returned
- index (IN) - index of the element whose pointer is returned
- exists (OUT) - set to FALSE if element at the specified index does
- not exist else TRUE
- elem (OUT) - address of the desired element is returned
- elemind (OUT) [optional] - address of the null indicator information
- is returned; if (elemind == NULL) then the null indicator
- information will NOT be returned
- DESCRIPTION:
- Get the address of the element at the given position. Optionally
- this function also returns the address of the element's null indicator
- information.
-
- The following table describes for each collection element type
- what the corresponding element pointer type is. The element pointer
- is returned via the 'elem' parameter of OCICollGetElem().
-
- Element Type *elem is set to
- ----------------------- ---------------
- Oracle Number (OCINumber) OCINumber*
- Date (OCIDate) OCIDate*
- Variable-length string (OCIString*) OCIString**
- Variable-length raw (OCIRaw*) OCIRaw**
- object reference (OCIRef*) OCIRef**
- lob locator (OCILobLocator*) OCILobLocator**
- object type (e.g. person) person*
-
- The element pointer returned by OCICollGetElem() is in a form
- such that it can not only be used to access the
- element data but also is in a form that can be used as the target
- (i.e left-hand-side) of an assignment statement.
-
- For example, assume the user is iterating over the elements of
- a collection whose element type is object reference (OCIRef*). A call
- to OCICollGetElem() returns pointer to a reference handle
- (i.e. OCIRef**). After getting, the pointer to the collection
- element, the user may wish to modify it by assigning a new reference.
- This can be accomplished via the ref assignment function shown below:
-
- sword OCIRefAssign( OCIEnv *env, OCIError *err, CONST OCIRef *source,
- OCIRef **target );
-
- Note that the 'target' parameter of OCIRefAssign() is of type
- 'OCIRef**'. Hence OCICollGetElem() returns 'OCIRef**'.
- If '*target == NULL' a new ref will be allocated by OCIRefAssign()
- and returned via the 'target' parameter.
-
- Similarly, if the collection element was of type string (OCIString*),
- OCICollGetElem() returns pointer to string handle
- (i.e. OCIString**). If a new string is assigned, via
- OCIStringAssign() or OCIStringAssignText() the type of the target
- must be 'OCIString **'.
-
- If the collection element is of type Oracle number, OCICollGetElem()
- returns OCINumber*. The prototype of OCINumberAssign() is shown below:
-
- sword OCINumberAssign(OCIError *err, CONST OCINumber *from,
- OCINumber *to);
- RETURNS:
- OCI_SUCCESS if the function completes successfully.
- OCI_INVALID_HANDLE if 'env' or 'err' is NULL.
- OCI_ERROR if
- any of the input parameters is null
- }
- {------------------------- OCICollGetElemArray ----------------------------- }
- {$IFNDEF LinkDynamically}
- function OCICollGetElemArray(env:POCIEnv; err:POCIError; coll:POCIColl; index:sb4; exists:Pboolean;
- elem:PPdvoid; elemind:PPdvoid; nelems:Puword):sword;cdecl;external ocilib name 'OCICollGetElemArray';
- {$ELSE}
- OCICollGetElemArray : function (env:POCIEnv; err:POCIError; coll:POCIColl; index:sb4; exists:Pboolean;
- elem:PPdvoid; elemind:PPdvoid; nelems:Puword):sword;cdecl;
- {$ENDIF}
- {
- NAME: OCICollGetElemArray - OCIColl GET pointers to elements from given index
- PARAMETERS:
- env (IN/OUT) - OCI environment handle initialized in object mode.
- err (IN/OUT) - error handle. If there is an error, it is
- recorded in 'err' and this function returns OCI_ERROR.
- The error recorded in 'err' can be retrieved by calling
- OCIErrorGet().
- coll (IN) - pointers to the elements in this collection is returned
- index (IN) - starting index of the element
- exists (OUT) - set to FALSE if element at the specified index does
- not exist else TRUE
- elem (OUT) - address of the desired elements is returned
- elemind (OUT) [optional] - address of the null indicators information
- is returned; if (elemind == NULL) then the null indicator
- information will NOT be returned
- nelems(IN/OUT) - Upper bound of elem and/or elemind array
- DESCRIPTION:
- Get the address of the elements from the given position. Optionally
- this function also returns the address of the element's null indicator
- information.
-
- The following table describes for each collection element type
- what the corresponding element pointer type is. The element pointer
- is returned via the 'elem' parameter of OCICollGetElem().
-
- Element Type *elem is set to
- ----------------------- ---------------
- Oracle Number (OCINumber) OCINumber*
- Date (OCIDate) OCIDate*
- Variable-length string (OCIString*) OCIString**
- Variable-length raw (OCIRaw*) OCIRaw**
- object reference (OCIRef*) OCIRef**
- lob locator (OCILobLocator*) OCILobLocator**
- object type (e.g. person) person*
-
- The element pointer returned by OCICollGetElem() is in a form
- such that it can not only be used to access the
- element data but also is in a form that can be used as the target
- (i.e left-hand-side) of an assignment statement.
-
- For example, assume the user is iterating over the elements of
- a collection whose element type is object reference (OCIRef*). A call
- to OCICollGetElem() returns pointer to a reference handle
- (i.e. OCIRef**). After getting, the pointer to the collection
- element, the user may wish to modify it by assigning a new reference.
- This can be accomplished via the ref assignment function shown below:
-
- sword OCIRefAssign( OCIEnv *env, OCIError *err, CONST OCIRef *source,
- OCIRef **target );
-
- Note that the 'target' parameter of OCIRefAssign() is of type
- 'OCIRef**'. Hence OCICollGetElem() returns 'OCIRef**'.
- If '*target == NULL' a new ref will be allocated by OCIRefAssign()
- and returned via the 'target' parameter.
-
- Similarly, if the collection element was of type string (OCIString*),
- OCICollGetElem() returns pointer to string handle
- (i.e. OCIString**). If a new string is assigned, via
- OCIStringAssign() or OCIStringAssignText() the type of the target
- must be 'OCIString **'.
-
- If the collection element is of type Oracle number, OCICollGetElem()
- returns OCINumber*. The prototype of OCINumberAssign() is shown below:
-
- sword OCINumberAssign(OCIError *err, CONST OCINumber *from,
- OCINumber *to);
- RETURNS:
- OCI_SUCCESS if the function completes successfully.
- OCI_INVALID_HANDLE if 'env' or 'err' is NULL.
- OCI_ERROR if
- any of the input parameters is null
- }
- {----------------------- OCICollAssignElem --------------------------------- }
- {$IFNDEF LinkDynamically}
- function OCICollAssignElem(env:POCIEnv; err:POCIError; index:sb4; elem:Pdvoid; elemind:Pdvoid;
- coll:POCIColl):sword;cdecl;external ocilib name 'OCICollAssignElem';
- {$ELSE}
- OCICollAssignElem : function (env:POCIEnv; err:POCIError; index:sb4; elem:Pdvoid; elemind:Pdvoid;
- coll:POCIColl):sword;cdecl;
- {$ENDIF}
- {
- NAME: OCICollAssignElem - OCIColl ASsign Element
- PARAMETERS:
- env (IN/OUT) - OCI environment handle initialized in object mode.
- err (IN/OUT) - error handle. If there is an error, it is
- recorded in 'err' and this function returns OCI_ERROR.
- The error recorded in 'err' can be retrieved by calling
- OCIErrorGet().
- index (IN) - index of the element whose is assigned to
- elem (IN) - element which is assigned from (source element)
- elemind (IN) [optional] - pointer to the element's null indicator
- information; if (elemind == NULL) then the null indicator
- information of the assigned element will be set to non-null.
- coll (IN/OUT) - collection to be updated
- DESCRIPTION:
- Assign the given element value 'elem' to the element at coll[index].
- If the collection is of type nested table, the element at the given
- index may not exist (i.e. may have been deleted). In this case, the
- given element is inserted at index 'index'.
- Otherwise, the element at index 'index' is updated with the value
- of 'elem'.
-
- Note that the given element is deep-copied and
- 'elem' is strictly an input parameter.
- RETURNS:
- OCI_SUCCESS if the function completes successfully.
- OCI_INVALID_HANDLE if 'env' or 'err' is NULL.
- OCI_ERROR if
- any of the input parameters is null
- out of memory error
- given index is out of bounds of the given collection
- }
- {--------------------------- OCICollAssign --------------------------------- }
- {$IFNDEF LinkDynamically}
- function OCICollAssign(env:POCIEnv; err:POCIError; rhs:POCIColl; lhs:POCIColl):sword;cdecl;external ocilib name 'OCICollAssign';
- {$ELSE}
- OCICollAssign : function (env:POCIEnv; err:POCIError; rhs:POCIColl; lhs:POCIColl):sword;cdecl;
- {$ENDIF}
- {
- NAME: OCICollAssign - OCIColl ASsiGn collection
- PARAMETERS:
- env (IN/OUT) - OCI environment handle initialized in object mode.
- err (IN/OUT) - error handle. If there is an error, it is
- recorded in 'err' and this function returns OCI_ERROR.
- The error recorded in 'err' can be retrieved by calling
- OCIErrorGet().
- rhs (IN) - collection to be assigned from
- lhs (OUT) - collection to be assigned to
- DESCRIPTION:
- Assign 'rhs' to 'lhs'. The 'lhs' collection may be decreased or
- increased depending upon the size of 'rhs'. If the 'lhs' contains
- any elements then the elements will be deleted prior to the
- assignment. This function performs a deep-copy. The memory for the
- elements comes from the object cache.
-
- An error is returned if the element types of the lhs and rhs
- collections do not match. Also, an error is returned if the
- upper-bound of the lhs collection is less than the current number of
- elements in the rhs collection.
- RETURNS:
- OCI_SUCCESS if the function completes successfully.
- OCI_INVALID_HANDLE if 'env' or 'err' is NULL.
- OCI_ERROR if
- any of the input parameters is null
- out of memory error
- type mis-match of lhs and rhs collections
- upper-bound of lhs collection is less than the current number of
- elements in the rhs collection
- }
- {--------------------------- OCICollAppend --------------------------------- }
- {$IFNDEF LinkDynamically}
- function OCICollAppend(env:POCIEnv; err:POCIError; elem:Pdvoid; elemind:Pdvoid; coll:POCIColl):sword;cdecl;external ocilib name 'OCICollAppend';
- {$ELSE}
- OCICollAppend : function (env:POCIEnv; err:POCIError; elem:Pdvoid; elemind:Pdvoid; coll:POCIColl):sword;cdecl;
- {$ENDIF}
- {
- NAME: OCICollAppend - OCIColl APPend collection
- PARAMETERS:
- env (IN/OUT) - OCI environment handle initialized in object mode.
- err (IN/OUT) - error handle. If there is an error, it is
- recorded in 'err' and this function returns OCI_ERROR.
- The error recorded in 'err' can be retrieved by calling
- OCIErrorGet().
- elem (IN) - pointer to the element which is appended to the end
- of the given collection
- elemind (IN) [optional] - pointer to the element's null indicator
- information; if (elemind == NULL) then the null indicator
- information of the appended element will be set to non-null.
- coll (IN/OUT) - updated collection
- DESCRIPTION:
- Append the given element to the end of the given collection.
- Appending an element is equivalent to:
- - increasing the size of the collection by 1 element
- - updating (deep-copying) the last element's data with the given
- element's data
-
- Note that the pointer to the given element 'elem' will not be saved
- by this function. So 'elem' is strictly an input parameter.
- An error is returned if the current size of the collection
- is equal to the max size (upper-bound) of the collection prior to
- appending the element.
- RETURNS:
- OCI_SUCCESS if the function completes successfully.
- OCI_INVALID_HANDLE if 'env' or 'err' is NULL.
- OCI_ERROR if
- any of the input parameters is null
- out of memory error
- current size of collection == max size of the collection
- }
- {----------------------------- OCICollTrim --------------------------------- }
- {$IFNDEF LinkDynamically}
- function OCICollTrim(env:POCIEnv; err:POCIError; trim_num:sb4; coll:POCIColl):sword;cdecl;external ocilib name 'OCICollTrim';
- {$ELSE}
- OCICollTrim : function (env:POCIEnv; err:POCIError; trim_num:sb4; coll:POCIColl):sword;cdecl;
- {$ENDIF}
- {
- NAME: OCICollTrim - OCIColl Trim elements from the end of the collection
- PARAMETERS:
- env (IN/OUT) - OCI environment handle initialized in object mode.
- err (IN/OUT) - error handle. If there is an error, it is
- recorded in 'err' and this function returns OCI_ERROR.
- The error recorded in 'err' can be retrieved by calling
- OCIErrorGet().
- trim_num (IN) - number of elements to trim
- coll (IN/OUT) - 'trim_num' of elements are removed (freed) from the
- end of the collection
- DESCRIPTION:
- Trim the collection by the given number of elements. The elements are
- removed from the end of the collection.
-
- An error is returned if the 'trim_num' is greater than the current
- size of the collection.
- RETURNS:
- OCI_SUCCESS if the function completes successfully.
- OCI_INVALID_HANDLE if 'env' or 'err' is NULL.
- OCI_ERROR if
- any of the input parameters is null
- 'trim_num' is greater than the current size of the collection.
- }
- {--------------------------- OCICollIsLocator ------------------------------ }
- {$IFNDEF LinkDynamically}
- function OCICollIsLocator(env:POCIEnv; err:POCIError; coll:POCIColl; result:Pboolean):sword;cdecl;external ocilib name 'OCICollIsLocator';
- {$ELSE}
- OCICollIsLocator : function (env:POCIEnv; err:POCIError; coll:POCIColl; result:Pboolean):sword;cdecl;
- {$ENDIF}
- {
- Name: OCICollIsLocator - OCIColl indicates whether a collection is locator
- based or not.
- Parameters:
- env(IN) - pointer to OCI environment handle
- err (IN/OUT) - error handle. If there is an error, it is
- recorded in 'err' and this function returns OCI_ERROR.
- The error recorded in 'err' can be retrieved by calling
- OCIErrorGet().
- coll (IN) - collection item.
- result (OUT) - TRUE if the collection item is a locator, FALSE
- otherwise
- Description:
- Returns TRUE in the result OUT parameter if the collection item is a
- locator, otherwise returns FALSE.
- Returns:
- OCI_SUCCESS if the function completes successfully.
- OCI_INVALID_HANDLE if 'env' or 'err' is NULL.
- }
- {---------------------------- OCIIterCreate -------------------------------- }
- {$IFNDEF LinkDynamically}
- function OCIIterCreate(env:POCIEnv; err:POCIError; coll:POCIColl; var itr:POCIIter):sword;cdecl;external ocilib name 'OCIIterCreate';
- {$ELSE}
- OCIIterCreate : function (env:POCIEnv; err:POCIError; coll:POCIColl; var itr:POCIIter):sword;cdecl;
- {$ENDIF}
- {
- NAME: OCIIterCreate - OCIColl Create an ITerator to scan the collection
- elements
- PARAMETERS:
- env (IN/OUT) - OCI environment handle initialized in object mode.
- err (IN/OUT) - error handle. If there is an error, it is
- recorded in 'err' and this function returns OCI_ERROR.
- The error recorded in 'err' can be retrieved by calling
- OCIErrorGet().
- coll (IN) - collection which will be scanned; the different
- collection types are varray and nested table
- itr (OUT) - address to the allocated collection iterator is
- returned by this function
- DESCRIPTION:
- Create an iterator to scan the elements of the collection. The
- iterator is created in the object cache. The iterator is initialized
- to point to the beginning of the collection.
-
- If the next function (OCIIterNext) is called immediately
- after creating the iterator then the first element of the collection
- is returned.
- If the previous function (OCIIterPrev) is called immediately after
- creating the iterator then "at beginning of collection" error is
- returned.
- RETURNS:
- OCI_SUCCESS if the function completes successfully.
- OCI_INVALID_HANDLE if 'env' or 'err' is NULL.
- OCI_ERROR if
- any of the input parameters is null
- out of memory error
- }
- {----------------------------- OCIIterDelete ------------------------------ }
- {$IFNDEF LinkDynamically}
- function OCIIterDelete(env:POCIEnv; err:POCIError; var itr:POCIIter):sword;cdecl;external ocilib name 'OCIIterDelete';
- {$ELSE}
- OCIIterDelete : function (env:POCIEnv; err:POCIError; var itr:POCIIter):sword;cdecl;
- {$ENDIF}
- {
- NAME: OCIIterDelete - OCIColl Delete ITerator
- PARAMETERS:
- env (IN/OUT) - OCI environment handle initialized in object mode.
- err (IN/OUT) - error handle. If there is an error, it is
- recorded in 'err' and this function returns OCI_ERROR.
- The error recorded in 'err' can be retrieved by calling
- OCIErrorGet().
- itr (IN/OUT) - the allocated collection iterator is destroyed and
- the 'itr' is set to NULL prior to returning
- DESCRIPTION:
- Delete the iterator which was previously created by a call to
- OCIIterCreate.
- RETURNS:
- OCI_SUCCESS if the function completes successfully.
- OCI_INVALID_HANDLE if 'env' or 'err' is NULL.
- OCI_ERROR if
- any of the input parameters is null
- to be discovered
- }
- {----------------------------- OCIIterInit --------------------------------- }
- {$IFNDEF LinkDynamically}
- function OCIIterInit(env:POCIEnv; err:POCIError; coll:POCIColl; itr:POCIIter):sword;cdecl;external ocilib name 'OCIIterInit';
- {$ELSE}
- OCIIterInit : function (env:POCIEnv; err:POCIError; coll:POCIColl; itr:POCIIter):sword;cdecl;
- {$ENDIF}
- {
- NAME: OCIIterInit - OCIColl Initialize ITerator to scan the given
- collection
- PARAMETERS:
- env (IN/OUT) - OCI environment handle initialized in object mode.
- err (IN/OUT) - error handle. If there is an error, it is
- recorded in 'err' and this function returns OCI_ERROR.
- The error recorded in 'err' can be retrieved by calling
- OCIErrorGet().
- coll (IN) - collection which will be scanned; the different
- collection types are varray and nested table
- itr (IN/OUT) - pointer to an allocated collection iterator
- DESCRIPTION:
- Initializes the given iterator to point to the beginning of the
- given collection. This function can be used to:
-
- a. reset an iterator to point back to the beginning of the collection
- b. reuse an allocated iterator to scan a different collection
- RETURNS:
- OCI_SUCCESS if the function completes successfully.
- OCI_INVALID_HANDLE if 'env' or 'err' is NULL.
- OCI_ERROR if
- any of the input parameters is null
- }
- {------------------------ OCIIterGetCurrent -------------------------------- }
- {$IFNDEF LinkDynamically}
- function OCIIterGetCurrent(env:POCIEnv; err:POCIError; itr:POCIIter; elem:PPdvoid; elemind:PPdvoid):sword;cdecl;external ocilib name 'OCIIterGetCurrent';
- {$ELSE}
- OCIIterGetCurrent : function (env:POCIEnv; err:POCIError; itr:POCIIter; elem:PPdvoid; elemind:PPdvoid):sword;cdecl;
- {$ENDIF}
- {
- NAME: OCIIterGetCurrent - OCIColl Iterator based, get CURrent collection
- element
- PARAMETERS:
- env (IN/OUT) - OCI environment handle initialized in object mode.
- err (IN/OUT) - error handle. If there is an error, it is
- recorded in 'err' and this function returns OCI_ERROR.
- The error recorded in 'err' can be retrieved by calling
- OCIErrorGet().
- itr (IN) - iterator which points to the current element
- elem (OUT) - address of the element pointed by the iterator is returned
- elemind (OUT) [optional] - address of the element's null indicator
- information is returned; if (elemind == NULL) then the null
- indicator information will NOT be returned
- DESCRIPTION:
- Returns pointer to the current element and its corresponding null
- information.
- RETURNS:
- OCI_SUCCESS if the function completes successfully.
- OCI_INVALID_HANDLE if 'env' or 'err' is NULL.
- OCI_ERROR if
- any of the input parameters is null
- }
- {------------------------------ OCIIterNext -------------------------------- }
- {$IFNDEF LinkDynamically}
- function OCIIterNext(env:POCIEnv; err:POCIError; itr:POCIIter; elem:PPdvoid; elemind:PPdvoid;
- eoc:Pboolean):sword;cdecl;external ocilib name 'OCIIterNext';
- {$ELSE}
- OCIIterNext : function (env:POCIEnv; err:POCIError; itr:POCIIter; elem:PPdvoid; elemind:PPdvoid;
- eoc:Pboolean):sword;cdecl;
- {$ENDIF}
- {
- NAME: OCIIterNext - OCIColl Iterator based, get NeXT collection element
- PARAMETERS:
- env (IN/OUT) - OCI environment handle initialized in object mode.
- err (IN/OUT) - error handle. If there is an error, it is
- recorded in 'err' and this function returns OCI_ERROR.
- The error recorded in 'err' can be retrieved by calling
- OCIErrorGet().
- itr (IN/OUT) - iterator is updated to point to the next element
- elem (OUT) - after updating the iterator to point to the next element,
- address of the element is returned
- elemind (OUT) [optional] - address of the element's null indicator
- information is returned; if (elemind == NULL) then the null
- indicator information will NOT be returned
- eoc (OUT) - TRUE if iterator is at End Of Collection (i.e. next
- element does not exist) else FALSE
- DESCRIPTION:
- Returns pointer to the next element and its corresponding null
- information. The iterator is updated to point to the next element.
-
- If the iterator is pointing to the last element of the collection
- prior to executing this function, then calling this function will
- set eoc flag to TRUE. The iterator will be left unchanged in this
- situation.
- RETURNS:
- OCI_SUCCESS if the function completes successfully.
- OCI_INVALID_HANDLE if 'env' or 'err' is NULL.
- OCI_ERROR if
- any of the input parameters is null
- }
- {------------------------------ OCIIterPrev -------------------------------- }
- {$IFNDEF LinkDynamically}
- function OCIIterPrev(env:POCIEnv; err:POCIError; itr:POCIIter; elem:PPdvoid; elemind:PPdvoid;
- boc:Pboolean):sword;cdecl;external ocilib name 'OCIIterPrev';
- {$ELSE}
- OCIIterPrev : function (env:POCIEnv; err:POCIError; itr:POCIIter; elem:PPdvoid; elemind:PPdvoid;
- boc:Pboolean):sword;cdecl;
- {$ENDIF}
- {
- NAME: OCIIterPrev - OCIColl Iterator based, get PReVious collection element
- PARAMETERS:
- env (IN/OUT) - OCI environment handle initialized in object mode.
- err (IN/OUT) - error handle. If there is an error, it is
- recorded in 'err' and this function returns OCI_ERROR.
- The error recorded in 'err' can be retrieved by calling
- OCIErrorGet().
- itr (IN/OUT) - iterator is updated to point to the previous
- element
- elem (OUT) - after updating the iterator to point to the previous
- element, address of the element is returned
- elemind (OUT) [optional] - address of the element's null indicator
- information is returned; if (elemind == NULL) then the null
- indicator information will NOT be returned
- boc (OUT) - TRUE if iterator is at Beginning Of Collection (i.e.
- previous element does not exist) else FALSE.
- DESCRIPTION:
- Returns pointer to the previous element and its corresponding null
- information. The iterator is updated to point to the previous element.
-
- If the iterator is pointing to the first element of the collection
- prior to executing this function, then calling this function will
- set 'boc' to TRUE. The iterator will be left unchanged in this
- situation.
- RETURNS:
- OCI_SUCCESS if the function completes successfully.
- OCI_INVALID_HANDLE if 'env' or 'err' is NULL.
- OCI_ERROR if
- any of the input parameters is null
- }
- {*************************************************************************** }
- { FUNCTIONS WHICH OPERATE ONLY ON NESTED TABLE OCITable*() }
- {*************************************************************************** }
- {---------------------------- OCITableSize --------------------------------- }
- {$IFNDEF LinkDynamically}
- function OCITableSize(env:POCIEnv; err:POCIError; tbl:POCITable; size:Psb4):sword;cdecl;external ocilib name 'OCITableSize';
- {$ELSE}
- OCITableSize : function (env:POCIEnv; err:POCIError; tbl:POCITable; size:Psb4):sword;cdecl;
- {$ENDIF}
- {
- NAME: OCITableSize - OCITable return current SIZe of the given
- nested table (not including deleted elements)
- PARAMETERS:
- env(IN) - pointer to OCI environment handle
- err (IN/OUT) - error handle. If there is an error, it is
- recorded in 'err' and this function returns OCI_ERROR.
- The error recorded in 'err' can be retrieved by calling
- OCIErrorGet().
- tbl (IN) - nested table whose number of elements is returned
- size (OUT) - current number of elements in the nested table. The count
- does not include deleted elements.
- DESCRIPTION:
- Returns the count of elements in the given nested table.
-
- The count returned by OCITableSize() will be decremented upon
- deleting elements from the nested table. So, this count DOES NOT
- includes any "holes" created by deleting elements.
- For example:
-
- OCITableSize(...);
- // assume 'size' returned is equal to 5
- OCITableDelete(...); // delete one element
- OCITableSize(...);
- // 'size' returned will be equal to 4
-
- To get the count plus the count of deleted elements use
- OCICollSize(). Continuing the above example,
-
- OCICollSize(...)
- // 'size' returned will still be equal to 5
- RETURNS:
- OCI_SUCCESS if the function completes successfully.
- OCI_INVALID_HANDLE if 'env' or 'err' is NULL.
- OCI_ERROR if
- error during loading of nested table into object cache
- any of the input parameters is null
- }
- {---------------------- OCITableExists --------------------------------- }
- {$IFNDEF LinkDynamically}
- function OCITableExists(env:POCIEnv; err:POCIError; tbl:POCITable; index:sb4; exists:Pboolean):sword;cdecl;external ocilib name 'OCITableExists';
- {$ELSE}
- OCITableExists : function (env:POCIEnv; err:POCIError; tbl:POCITable; index:sb4; exists:Pboolean):sword;cdecl;
- {$ENDIF}
- {
- NAME: OCITableExists - OCITable test whether element at the given index
- EXIsts
- PARAMETERS:
- env (IN/OUT) - OCI environment handle initialized in object mode.
- err (IN/OUT) - error handle. If there is an error, it is
- recorded in 'err' and this function returns OCI_ERROR.
- The error recorded in 'err' can be retrieved by calling
- OCIErrorGet().
- tbl (IN) - table in which the given index is checked
- index (IN) - index of the element which is checked for existence
- exists (OUT) - set to TRUE if element at given 'index' exists
- else set to FALSE
- DESCRIPTION:
- Test whether an element exists at the given 'index'.
- RETURNS:
- OCI_SUCCESS if the function completes successfully.
- OCI_INVALID_HANDLE if 'env' or 'err' is NULL.
- OCI_ERROR if
- any of the input parameters is null
- }
- {--------------------------- OCITableDelete ------------------------------- }
- {$IFNDEF LinkDynamically}
- function OCITableDelete(env:POCIEnv; err:POCIError; index:sb4; tbl:POCITable):sword;cdecl;external ocilib name 'OCITableDelete';
- {$ELSE}
- OCITableDelete : function (env:POCIEnv; err:POCIError; index:sb4; tbl:POCITable):sword;cdecl;
- {$ENDIF}
- {
- NAME: OCITableDelete - OCITable DELete element at the specified index
- PARAMETERS:
- env (IN/OUT) - OCI environment handle initialized in object mode.
- err (IN/OUT) - error handle. If there is an error, it is
- recorded in 'err' and this function returns OCI_ERROR.
- The error recorded in 'err' can be retrieved by calling
- OCIErrorGet().
- index (IN) - index of the element which must be deleted
- tbl (IN) - table whose element is deleted
- DESCRIPTION:
- Delete the element at the given 'index'. Note that the position
- ordinals of the remaining elements of the table is not changed by the
- delete operation. So delete creates "holes" in the table.
-
- An error is returned if the element at the specified 'index' has
- been previously deleted.
- RETURNS:
- OCI_SUCCESS if the function completes successfully.
- OCI_INVALID_HANDLE if 'env' or 'err' is NULL.
- OCI_ERROR if
- any of the input parameters is null
- given index is not valid
- }
- {--------------------------- OCITableFirst --------------------------------- }
- {$IFNDEF LinkDynamically}
- function OCITableFirst(env:POCIEnv; err:POCIError; tbl:POCITable; index:Psb4):sword;cdecl;external ocilib name 'OCITableFirst';
- {$ELSE}
- OCITableFirst : function (env:POCIEnv; err:POCIError; tbl:POCITable; index:Psb4):sword;cdecl;
- {$ENDIF}
- {
- NAME: OCITableFirst - OCITable return FirST index of table
- PARAMETERS:
- env (IN/OUT) - OCI environment handle initialized in object mode.
- err (IN/OUT) - error handle. If there is an error, it is
- recorded in 'err' and this function returns OCI_ERROR.
- The error recorded in 'err' can be retrieved by calling
- OCIErrorGet().
- tbl (IN) - table which is scanned
- index (OUT) - first index of the element which exists in the given
- table is returned
- DESCRIPTION:
- Return the first index of the element which exists in the given
- table.
- RETURNS:
- OCI_SUCCESS if the function completes successfully.
- OCI_INVALID_HANDLE if 'env' or 'err' is NULL.
- OCI_ERROR if
- table is empty
- }
- {---------------------------- OCITableLast --------------------------------- }
- {$IFNDEF LinkDynamically}
- function OCITableLast(env:POCIEnv; err:POCIError; tbl:POCITable; index:Psb4):sword;cdecl;external ocilib name 'OCITableLast';
- {$ELSE}
- OCITableLast : function (env:POCIEnv; err:POCIError; tbl:POCITable; index:Psb4):sword;cdecl;
- {$ENDIF}
- {
- NAME: OCITableFirst - OCITable return LaST index of table
- PARAMETERS:
- env (IN/OUT) - OCI environment handle initialized in object mode.
- err (IN/OUT) - error handle. If there is an error, it is
- recorded in 'err' and this function returns OCI_ERROR.
- The error recorded in 'err' can be retrieved by calling
- OCIErrorGet().
- tbl (IN) - table which is scanned
- index (OUT) - last index of the element which exists in the given
- table is returned
- DESCRIPTION:
- Return the last index of the element which exists in the given
- table.
- RETURNS:
- OCI_SUCCESS if the function completes successfully.
- OCI_INVALID_HANDLE if 'env' or 'err' is NULL.
- OCI_ERROR if
- table is empty
- }
- {---------------------------- OCITableNext --------------------------------- }
- {$IFNDEF LinkDynamically}
- function OCITableNext(env:POCIEnv; err:POCIError; index:sb4; tbl:POCITable; next_index:Psb4;
- exists:Pboolean):sword;cdecl;external ocilib name 'OCITableNext';
- {$ELSE}
- OCITableNext : function (env:POCIEnv; err:POCIError; index:sb4; tbl:POCITable; next_index:Psb4;
- exists:Pboolean):sword;cdecl;
- {$ENDIF}
- {
- NAME: OCITableNext - OCITable return NeXT available index of table
- PARAMETERS:
- env (IN/OUT) - OCI environment handle initialized in object mode.
- err (IN/OUT) - error handle. If there is an error, it is
- recorded in 'err' and this function returns OCI_ERROR.
- The error recorded in 'err' can be retrieved by calling
- OCIErrorGet().
- index (IN) - starting at 'index' the index of the next element
- which exists is returned
- tbl (IN) - table which is scanned
- next_index (OUT) - index of the next element which exists
- is returned
- exists (OUT) - FALSE if no next index available else TRUE
- DESCRIPTION:
- Return the smallest position j, greater than 'index', such that
- exists(j) is TRUE.
- RETURNS:
- OCI_SUCCESS if the function completes successfully.
- OCI_INVALID_HANDLE if 'env' or 'err' is NULL.
- OCI_ERROR if
- no next index available
- }
- {---------------------------- OCITablePrev --------------------------------- }
- {$IFNDEF LinkDynamically}
- function OCITablePrev(env:POCIEnv; err:POCIError; index:sb4; tbl:POCITable; prev_index:Psb4;
- exists:Pboolean):sword;cdecl;external ocilib name 'OCITablePrev';
- {$ELSE}
- OCITablePrev : function (env:POCIEnv; err:POCIError; index:sb4; tbl:POCITable; prev_index:Psb4;
- exists:Pboolean):sword;cdecl;
- {$ENDIF}
- {
- NAME: OCITablePrev - OCITable return PReVious available index of table
- PARAMETERS:
- env (IN/OUT) - OCI environment handle initialized in object mode.
- err (IN/OUT) - error handle. If there is an error, it is
- recorded in 'err' and this function returns OCI_ERROR.
- The error recorded in 'err' can be retrieved by calling
- OCIErrorGet().
- index (IN) - starting at 'index' the index of the previous element
- which exists is returned
- tbl (IN) - table which is scanned
- prev_index (OUT) - index of the previous element which exists
- is returned
- exists (OUT) - FALSE if no next index available else TRUE
- DESCRIPTION:
- Return the largest position j, less than 'index', such that
- exists(j) is TRUE.
- RETURNS:
- OCI_SUCCESS if the function completes successfully.
- OCI_INVALID_HANDLE if 'env' or 'err' is NULL.
- OCI_ERROR if
- no previous index available
- }
- {------------------------ OCINumberToLnx ----------------------------------- }
- { void OCINumberToLnx(/o_ OCINumber *num _o/); }
- { was #define dname(params) para_def_expr }
- { argument types are unknown }
- // function OCINumberToLnx(num : longint) : Plnxnum_t;
- {
- NAME: OCINumberToLnx
- PARAMETERS:
- num (IN) - OCINumber to convert ;
- DESCRIPTION:
- Converts OCINumber to its internal lnx format
- This is not to be used in Public interfaces , but
- has been provided due to special requirements from
- SQLPLUS development group as they require to call
- Core funtions directly .
- }
- type
- { OCI representation of XMLType }
- POCIXMLType = pointer;
- { OCI representation of OCIDomDocument }
- POCIDOMDocument = pointer;
- {implementation
- function OCINumberToLnx(num : longint) : Plnxnum_t;
- begin
- OCINumberToLnx:=Plnxnum_t(num);
- end;
- end.}
|