OCILIB (C Driver for Oracle) 3.9.2
D:/Perso/dev/ocilib/ocilib/src/oci_import.h
00001 /*
00002     +-----------------------------------------------------------------------------------------+
00003     |                                                                                         |
00004     |                               OCILIB - C Driver for Oracle                              |
00005     |                                                                                         |
00006     |                                (C Wrapper for Oracle OCI)                               |
00007     |                                                                                         |
00008     |                              Website : http://www.ocilib.net                            |
00009     |                                                                                         |
00010     |             Copyright (c) 2007-2011 Vincent ROGIER <vince.rogier@ocilib.net>            |
00011     |                                                                                         |
00012     +-----------------------------------------------------------------------------------------+
00013     |                                                                                         |
00014     |             This library is free software; you can redistribute it and/or               |
00015     |             modify it under the terms of the GNU Lesser General Public                  |
00016     |             License as published by the Free Software Foundation; either                |
00017     |             version 2 of the License, or (at your option) any later version.            |
00018     |                                                                                         |
00019     |             This library is distributed in the hope that it will be useful,             |
00020     |             but WITHOUT ANY WARRANTY; without even the implied warranty of              |
00021     |             MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU           |
00022     |             Lesser General Public License for more details.                             |
00023     |                                                                                         |
00024     |             You should have received a copy of the GNU Lesser General Public            |
00025     |             License along with this library; if not, write to the Free                  |
00026     |             Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.          |
00027     |                                                                                         |
00028     +-----------------------------------------------------------------------------------------+
00029 */
00030 
00031 /* --------------------------------------------------------------------------------------------- *
00032  * $Id: oci_import.h, v 3.9.2 2011-07-13 00:00 Vincent Rogier $
00033  * --------------------------------------------------------------------------------------------- */
00034 
00035 #ifndef OCILIB_OCI_IMPORT_H_INCLUDED
00036 #define OCILIB_OCI_IMPORT_H_INCLUDED
00037 
00038 #ifdef OCI_IMPORT_LINKAGE
00039 
00040 /* this is necessary because some Oracle headers do NOT include C++ checks !
00041    By example, the file orid.h is not protected !
00042 */
00043 
00044   #ifdef __cplusplus
00045 extern "C" {
00046   #endif /* __cplusplus */
00047 
00048   #include <oci.h>
00049   #include <orid.h>
00050   #include <oci8dp.h>
00051 
00052   #ifdef  __cplusplus
00053 }
00054   #endif
00055 
00056   #ifdef _MSC_VER
00057     #pragma comment(lib, "oci.lib")
00058   #endif
00059 
00060 #else
00061 
00062   #include "oci_loader.h"
00063   #include "oci_api.h"
00064 
00065 /* Setup Oracle shared library name if not provided */
00066 
00067   #ifndef OCI_DL
00068     #if defined(_WINDOWS)
00069       #define OCI_DL                   oci.dll
00070     #elif defined(__APPLE__)
00071       #define OCI_DL                   libclntsh.dylib
00072     #elif defined(__hppa)
00073       #define OCI_DL                   libclntsh.sl
00074     #else
00075       #define OCI_DL                   libclntsh.so
00076     #endif
00077   #endif
00078 
00079 /* ANSI string version of Oracle shared lib */
00080 
00081   #define OCI_DL_ANSI_GET(s)  OCI_DL_ANSI_CVT(s)
00082   #define OCI_DL_ANSI_CVT(s)  # s
00083   #define OCI_DL_ANSI_NAME    OCI_DL_ANSI_GET(OCI_DL)
00084 
00085 /* Meta string version of Oracle shared lib */
00086 
00087   #define OCI_DL_META_GET(s)  OCI_DL_META_CVT(s)
00088   #define OCI_DL_META_CVT(s)  MT(# s)
00089   #define OCI_DL_META_NAME    OCI_DL_META_GET(OCI_DL)
00090 
00091 /* symbol list */
00092 
00093 extern OCIENVCREATE                 OCIEnvCreate;
00094 extern OCISERVERATTACH              OCIServerAttach;
00095 extern OCISERVERDETACH              OCIServerDetach;
00096 extern OCIHANDLEALLOC               OCIHandleAlloc;
00097 extern OCIHANDLEFREE                OCIHandleFree;
00098 extern OCIDESCRIPTORALLOC           OCIDescriptorAlloc;
00099 extern OCIDESCRIPTORFREE            OCIDescriptorFree;
00100 extern OCISESSIONBEGIN              OCISessionBegin;
00101 extern OCISESSIONEND                OCISessionEnd;
00102 extern OCIPASSWORDCHANGE            OCIPasswordChange;
00103 extern OCIBINDBYPOS                 OCIBindByPos;
00104 extern OCIBINDBYNAME                OCIBindByName;
00105 extern OCIBINDDYNAMIC               OCIBindDynamic;
00106 extern OCIBINDOBJECT                OCIBindObject;
00107 extern OCIDEFINEBYPOS               OCIDefineByPos;
00108 extern OCIDEFINEOBJECT              OCIDefineObject;
00109 extern OCISTMTPREPARE               OCIStmtPrepare;
00110 extern OCISTMTEXECUTE               OCIStmtExecute;
00111 extern OCISTMTFETCH                 OCIStmtFetch;
00112 extern OCISTMTFETCH2                OCIStmtFetch2;
00113 extern OCISTMTGETPIECEINFO          OCIStmtGetPieceInfo;
00114 extern OCISTMTSETPIECEINFO          OCIStmtSetPieceInfo;
00115 extern OCIPARAMGET                  OCIParamGet;
00116 extern OCIPARAMSET                  OCIParamSet;
00117 extern OCITRANSSTART                OCITransStart;
00118 extern OCITRANSDETACH               OCITransDetach;
00119 extern OCITRANSPREPARE              OCITransPrepare;
00120 extern OCITRANSFORGET               OCITransForget;
00121 extern OCITRANSCOMMIT               OCITransCommit;
00122 extern OCITRANSROLLBACK             OCITransRollback;
00123 extern OCIERRORGET                  OCIErrorGet;
00124 extern OCILOBCREATETEMPORARY        OCILobCreateTemporary;
00125 extern OCILOBFREETEMPORARY          OCILobFreeTemporary;
00126 extern OCILOBISTEMPORARY            OCILobIsTemporary;
00127 extern OCILOBAPPEND                 OCILobAppend;
00128 extern OCILOBCOPY                   OCILobCopy;
00129 extern OCILOBGETLENGTH              OCILobGetLength;
00130 extern OCILOBGETCHUNKSIZE           OCILobGetChunkSize;
00131 extern OCILOBREAD                   OCILobRead;
00132 extern OCILOBWRITE                  OCILobWrite;
00133 extern OCILOBTRIM                   OCILobTrim;
00134 extern OCILOBERASE                  OCILobErase;
00135 extern OCILOBOPEN                   OCILobOpen;
00136 extern OCILOBCLOSE                  OCILobClose;
00137 extern OCILOBLOCATORASSIGN          OCILobLocatorAssign;
00138 extern OCILOBASSIGN                 OCILobAssign;
00139 extern OCILOBISEQUAL                OCILobIsEqual;
00140 extern OCILOBFLUSHBUFFER            OCILobFlushBuffer;
00141 extern OCILOBGETSTORAGELIMIT        OCILobGetStorageLimit;
00142 extern OCILOBENABLEBUFFERING        OCILobEnableBuffering;
00143 extern OCILOBDISABLEBUFFERING       OCILobDisableBuffering;
00144 extern OCILOBFILEOPEN               OCILobFileOpen;
00145 extern OCILOBFILECLOSE              OCILobFileClose;
00146 extern OCILOBFILECLOSEALL           OCILobFileCloseAll;
00147 extern OCILOBFILEISOPEN             OCILobFileIsOpen;
00148 extern OCILOBFILEEXISTS             OCILobFileExists;
00149 extern OCILOBFIELGETNAME            OCILobFileGetName;
00150 extern OCILOBFILESETNAME            OCILobFileSetName;
00151 extern OCILOBLOADFROMFILE           OCILobLoadFromFile;
00152 extern OCILOBWRITEAPPEND            OCILobWriteAppend;
00153 extern OCISERVERVERSION             OCIServerVersion;
00154 extern OCIBREAK                     OCIBreak;
00155 extern OCIATTRGET                   OCIAttrGet;
00156 extern OCIATTRSET                   OCIAttrSet;
00157 extern OCIDATEASSIGN                OCIDateAssign;
00158 extern OCIDATETOTEXT                OCIDateToText;
00159 extern OCIDATEFROMTEXT              OCIDateFromText;
00160 extern OCIDATECOMPARE               OCIDateCompare;
00161 extern OCIDATEADDMONTHS             OCIDateAddMonths;
00162 extern OCIDATEADDDAYS               OCIDateAddDays;
00163 extern OCIDATELASTDAY               OCIDateLastDay;
00164 extern OCIDATEDAYSBETWEEN           OCIDateDaysBetween;
00165 extern OCIDATEZONETOZONE            OCIDateZoneToZone;
00166 extern OCIDATENEXTDAY               OCIDateNextDay;
00167 extern OCIDATECHECK                 OCIDateCheck;
00168 extern OCIDATESYSDATE               OCIDateSysDate;
00169 extern OCIDESCRIBEANY               OCIDescribeAny;
00170 extern OCIINTERVALASSIGN            OCIIntervalAssign;
00171 extern OCIINTERVALCHECK             OCIIntervalCheck;
00172 extern OCIINTERVALCOMPARE           OCIIntervalCompare;
00173 extern OCIINTERVALFROMTEXT          OCIIntervalFromText;
00174 extern OCIINTERVALTOTEXT            OCIIntervalToText;
00175 extern OCIINTERVALFROMTZ            OCIIntervalFromTZ;
00176 extern OCIINTERVALGETDAYSECOND      OCIIntervalGetDaySecond;
00177 extern OCIINTERVALGETYEARMONTH      OCIIntervalGetYearMonth;
00178 extern OCIINTERVALSETDAYSECOND      OCIIntervalSetDaySecond;
00179 extern OCIINTERVALSETYEARMONTH      OCIIntervalSetYearMonth;
00180 extern OCIINTERVALSUBTRACT          OCIIntervalSubtract;
00181 extern OCIINTERVALADD               OCIIntervalAdd;
00182 extern OCIDATETIMEASSIGN            OCIDateTimeAssign;
00183 extern OCIDATETIMECHECK             OCIDateTimeCheck;
00184 extern OCIDATETIMECOMPARE           OCIDateTimeCompare;
00185 extern OCIDATETIMECONSTRUCT         OCIDateTimeConstruct;
00186 extern OCIDATETIMECONVERT           OCIDateTimeConvert;
00187 extern OCIDATETIMEFROMARRAY         OCIDateTimeFromArray;
00188 extern OCIDATETIMETOARRAY           OCIDateTimeToArray;
00189 extern OCIDATETIMEFROMTEXT          OCIDateTimeFromText;
00190 extern OCIDATETIMETOTEXT            OCIDateTimeToText;
00191 extern OCIDATETIMEGETDATE           OCIDateTimeGetDate;
00192 extern OCIDATETIMEGETTIME           OCIDateTimeGetTime;
00193 extern OCIDATETIMEGETTIMEZONENAME   OCIDateTimeGetTimeZoneName;
00194 extern OCIDATETIMEGETTIMEZONEOFFSET OCIDateTimeGetTimeZoneOffset;
00195 extern OCIDATETIMEINTERVALADD       OCIDateTimeIntervalAdd;
00196 extern OCIDATETIMEINTERVALSUB       OCIDateTimeIntervalSub;
00197 extern OCIDATETIMESUBTRACT          OCIDateTimeSubtract;
00198 extern OCIDATETIMESYSTIMESTAMP      OCIDateTimeSysTimeStamp;
00199 extern OCIARRAYDESCRIPTORALLOC      OCIArrayDescriptorAlloc;
00200 extern OCIARRAYDESCRIPTORFREE       OCIArrayDescriptorFree;
00201 extern OCICLIENTVERSION             OCIClientVersion;
00202 extern OCITYPEBYNAME                OCITypeByName;
00203 extern OCINUMBERTOINT               OCINumberToInt;
00204 extern OCINUMBERFROMINT             OCINumberFromInt;
00205 extern OCINUMBERTOREAL              OCINumberToReal;
00206 extern OCINUMBERFROMREAL            OCINumberFromReal;
00207 extern OCINUMBERTOTEXT              OCINumberToText;
00208 extern OCINUMBERFROMTEXT            OCINumberFromText;
00209 extern OCISTRINGPTR                 OCIStringPtr;
00210 extern OCISTRINGASSIGNTEXT          OCIStringAssignText;
00211 extern OCIRAWPTR                    OCIRawPtr;
00212 extern OCIRAWASSIGNBYTES            OCIRawAssignBytes;
00213 extern OCIRAWRESIZE                 OCIRawResize;
00214 extern OCIRAWALLOCSIZE              OCIRawAllocSize;
00215 extern OCIRAWSIZE                   OCIRawSize;
00216 extern OCIOBJECTNEW                 OCIObjectNew;
00217 extern OCIOBJECTFREE                OCIObjectFree;
00218 extern OCIOBJECTSETATTR             OCIObjectSetAttr;
00219 extern OCIOBJECTGETATTR             OCIObjectGetAttr;
00220 extern OCIOBJECTPIN                 OCIObjectPin;
00221 extern OCIOBJECTUNPIN               OCIObjectUnpin;
00222 extern OCIOBJECTCOPY                OCIObjectCopy;
00223 extern OCIOBJECTGETOBJECTREF        OCIObjectGetObjectRef;
00224 extern OCIOBJECTGETPROPERTY         OCIObjectGetProperty;
00225 extern OCIOBJECTGETIND              OCIObjectGetInd;
00226 extern OCIREFASSIGN                 OCIRefAssign;
00227 extern OCIREFISNULL                 OCIRefIsNull;
00228 extern OCIREFCLEAR                  OCIRefClear;
00229 extern OCIREFTOHEX                  OCIRefToHex;
00230 extern OCIREFHEXSIZE                OCIRefHexSize;
00231 extern OCITHREADPROCESSINIT         OCIThreadProcessInit;
00232 extern OCITHREADINIT                OCIThreadInit;
00233 extern OCITHREADTERM                OCIThreadTerm;
00234 extern OCITHREADIDINIT              OCIThreadIdInit;
00235 extern OCITHREADIDDESTROY           OCIThreadIdDestroy;
00236 extern OCITHREADHNDINIT             OCIThreadHndInit;
00237 extern OCITHREADHNDDESTROY          OCIThreadHndDestroy;
00238 extern OCITHREADCREATE              OCIThreadCreate;
00239 extern OCITHREADJOIN                OCIThreadJoin;
00240 extern OCITHREADCLOSE               OCIThreadClose;
00241 extern OCITHREADMUTEXINIT           OCIThreadMutexInit;
00242 extern OCITHREADMUTEXDESTROY        OCIThreadMutexDestroy;
00243 extern OCITHREADMUTEXACQUIRE        OCIThreadMutexAcquire;
00244 extern OCITHREADMUTEXRELEASE        OCIThreadMutexRelease;
00245 extern OCITHREADKEYINIT             OCIThreadKeyInit;
00246 extern OCITHREADKEYDESTROY          OCIThreadKeyDestroy;
00247 extern OCITHREADKEYSET              OCIThreadKeySet;
00248 extern OCITHREADKEYGET              OCIThreadKeyGet;
00249 extern OCICONNECTIONPOOLCREATE      OCIConnectionPoolCreate;
00250 extern OCICONNECTIONPOOLDESTROY     OCIConnectionPoolDestroy;
00251 extern OCISESSIONPOOLCREATE         OCISessionPoolCreate ;
00252 extern OCISESSIONPOOLDESTROY        OCISessionPoolDestroy;
00253 extern OCISESSIONGET                OCISessionGet;
00254 extern OCISESSIONRELEASE            OCISessionRelease;
00255 extern OCICOLLSIZE                  OCICollSize;
00256 extern OCICOLLMAX                   OCICollMax;
00257 extern OCICOLLGETITEM               OCICollGetElem;
00258 extern OCICOLLASSIGNELEM            OCICollAssignElem;
00259 extern OCICOLLASSIGN                OCICollAssign;
00260 extern OCICOLLAPPEND                OCICollAppend;
00261 extern OCICOLLTRIM                  OCICollTrim;
00262 extern OCIITERCREATE                OCIIterCreate;
00263 extern OCIITERDELETE                OCIIterDelete;
00264 extern OCIITERINIT                  OCIIterInit;
00265 extern OCIITERNEXT                  OCIIterNext;
00266 extern OCIITERPREV                  OCIIterPrev;
00267 extern OCIDIRPATHABORT              OCIDirPathAbort;
00268 extern OCIDIRPATHDATASAVE           OCIDirPathDataSave;
00269 extern OCIDIRPATHFINISH             OCIDirPathFinish;
00270 extern OCIDIRPATHPREPARE            OCIDirPathPrepare;
00271 extern OCIDIRPATHLOADSTREAM         OCIDirPathLoadStream;
00272 extern OCIDIRPATHCOLARRAYENTRYSET   OCIDirPathColArrayEntrySet;
00273 extern OCIDIRPATHCOLARRAYRESET      OCIDirPathColArrayReset;
00274 extern OCIDIRPATHCOLARRAYTOSTREAM   OCIDirPathColArrayToStream;
00275 extern OCIDIRPATHSTREAMRESET        OCIDirPathStreamReset;
00276 extern OCIDIRPATHFLUSHROW           OCIDirPathFlushRow;
00277 extern OCICACHEFREE                 OCICacheFree;
00278 extern OCIPING                      OCIPing;
00279 extern OCIAQENQ                     OCIAQEnq;
00280 extern OCIAQDEQ                     OCIAQDeq;
00281 extern OCIAQLISTEN                  OCIAQListen;
00282 extern OCIDBSTARTUP                 OCIDBStartup;
00283 extern OCIDBSHUTDOWN                OCIDBShutdown;
00284 extern OCISTMTPREPARE2              OCIStmtPrepare2;
00285 extern OCISTMTRELEASE               OCIStmtRelease;
00286 extern OCISUBSCRIPTIONREGISTER      OCISubscriptionRegister;
00287 extern OCISUBSCRIPTIONUNREGISTER    OCISubscriptionUnRegister;
00288 extern XAOSVCCTX                    xaoSvcCtx;
00289 extern XAOENV                       xaoEnv;
00290 
00291 #ifdef ORAXB8_DEFINED
00292 
00293 extern OCILOBCOPY2                  OCILobCopy2;
00294 extern OCILOBERASE2                 OCILobErase2;
00295 extern OCILOBGETLENGTH2             OCILobGetLength2;
00296 extern OCILOBLOADFROMFILE2          OCILobLoadFromFile2;
00297 extern OCILOBREAD2                  OCILobRead2;
00298 extern OCILOBTRIM2                  OCILobTrim2;
00299 extern OCILOBWRITE2                 OCILobWrite2;
00300 extern OCILOBWRITEAPPEND2           OCILobWriteAppend2;
00301 
00302 #endif
00303 
00304   #define OCIDateGetTime(date, hour, min, sec) \
00305     { \
00306         *hour = (date)->OCIDateTime.OCITimeHH; \
00307         *min  = (date)->OCIDateTime.OCITimeMI; \
00308         *sec  = (date)->OCIDateTime.OCITimeSS; \
00309     }
00310 
00311   #define OCIDateGetDate(date, year, month, day) \
00312     { \
00313         *year  = (date)->OCIDateYYYY; \
00314         *month = (date)->OCIDateMM; \
00315         *day   = (date)->OCIDateDD; \
00316     }
00317 
00318   #define OCIDateSetTime(date, hour, min, sec) \
00319     { \
00320         (date)->OCIDateTime.OCITimeHH = hour; \
00321         (date)->OCIDateTime.OCITimeMI = min; \
00322         (date)->OCIDateTime.OCITimeSS = sec; \
00323     }
00324 
00325   #define OCIDateSetDate(date, year, month, day) \
00326     { \
00327         (date)->OCIDateYYYY = year; \
00328         (date)->OCIDateMM   = month; \
00329         (date)->OCIDateDD   = day; \
00330     }
00331 
00332 #endif
00333 
00334 #endif    /* OCILIB_OCI_IMPORT_H_INCLUDED */
00335