OCILIB (C Driver for Oracle) 3.9.2
|
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