00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035 #ifndef OCILIB_OCI_IMPORT_H_INCLUDED
00036 #define OCILIB_OCI_IMPORT_H_INCLUDED
00037
00038 #ifdef OCI_IMPORT_LINKAGE
00039
00040
00041
00042
00043
00044 #ifdef __cplusplus
00045 extern "C" {
00046 #endif
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
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
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
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
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 OCIRAWALLOCSIZE OCIRawAllocSize;
00214 extern OCIRAWSIZE OCIRawSize;
00215 extern OCIOBJECTNEW OCIObjectNew;
00216 extern OCIOBJECTFREE OCIObjectFree;
00217 extern OCIOBJECTSETATTR OCIObjectSetAttr;
00218 extern OCIOBJECTGETATTR OCIObjectGetAttr;
00219 extern OCIOBJECTPIN OCIObjectPin;
00220 extern OCIOBJECTUNPIN OCIObjectUnpin;
00221 extern OCIOBJECTCOPY OCIObjectCopy;
00222 extern OCIOBJECTGETOBJECTREF OCIObjectGetObjectRef;
00223 extern OCIOBJECTGETPROPERTY OCIObjectGetProperty;
00224 extern OCIOBJECTGETIND OCIObjectGetInd;
00225 extern OCIREFASSIGN OCIRefAssign;
00226 extern OCIREFISNULL OCIRefIsNull;
00227 extern OCIREFCLEAR OCIRefClear;
00228 extern OCIREFTOHEX OCIRefToHex;
00229 extern OCIREFHEXSIZE OCIRefHexSize;
00230 extern OCITHREADPROCESSINIT OCIThreadProcessInit;
00231 extern OCITHREADINIT OCIThreadInit;
00232 extern OCITHREADTERM OCIThreadTerm;
00233 extern OCITHREADIDINIT OCIThreadIdInit;
00234 extern OCITHREADIDDESTROY OCIThreadIdDestroy;
00235 extern OCITHREADHNDINIT OCIThreadHndInit;
00236 extern OCITHREADHNDDESTROY OCIThreadHndDestroy;
00237 extern OCITHREADCREATE OCIThreadCreate;
00238 extern OCITHREADJOIN OCIThreadJoin;
00239 extern OCITHREADCLOSE OCIThreadClose;
00240 extern OCITHREADMUTEXINIT OCIThreadMutexInit;
00241 extern OCITHREADMUTEXDESTROY OCIThreadMutexDestroy;
00242 extern OCITHREADMUTEXACQUIRE OCIThreadMutexAcquire;
00243 extern OCITHREADMUTEXRELEASE OCIThreadMutexRelease;
00244 extern OCITHREADKEYINIT OCIThreadKeyInit;
00245 extern OCITHREADKEYDESTROY OCIThreadKeyDestroy;
00246 extern OCITHREADKEYSET OCIThreadKeySet;
00247 extern OCITHREADKEYGET OCIThreadKeyGet;
00248 extern OCICONNECTIONPOOLCREATE OCIConnectionPoolCreate;
00249 extern OCICONNECTIONPOOLDESTROY OCIConnectionPoolDestroy;
00250 extern OCISESSIONPOOLCREATE OCISessionPoolCreate ;
00251 extern OCISESSIONPOOLDESTROY OCISessionPoolDestroy;
00252 extern OCISESSIONGET OCISessionGet;
00253 extern OCISESSIONRELEASE OCISessionRelease;
00254 extern OCICOLLSIZE OCICollSize;
00255 extern OCICOLLMAX OCICollMax;
00256 extern OCICOLLGETITEM OCICollGetElem;
00257 extern OCICOLLASSIGNELEM OCICollAssignElem;
00258 extern OCICOLLASSIGN OCICollAssign;
00259 extern OCICOLLAPPEND OCICollAppend;
00260 extern OCICOLLTRIM OCICollTrim;
00261 extern OCIITERCREATE OCIIterCreate;
00262 extern OCIITERDELETE OCIIterDelete;
00263 extern OCIITERINIT OCIIterInit;
00264 extern OCIITERNEXT OCIIterNext;
00265 extern OCIITERPREV OCIIterPrev;
00266
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
00278 extern OCICACHEFREE OCICacheFree;
00279
00280 extern OCIPING OCIPing;
00281
00282 extern OCIAQENQ OCIAQEnq;
00283 extern OCIAQDEQ OCIAQDeq;
00284 extern OCIAQLISTEN OCIAQListen;
00285
00286 #ifdef ORAXB8_DEFINED
00287
00288 extern OCILOBCOPY2 OCILobCopy2;
00289 extern OCILOBERASE2 OCILobErase2;
00290 extern OCILOBGETLENGTH2 OCILobGetLength2;
00291 extern OCILOBLOADFROMFILE2 OCILobLoadFromFile2;
00292 extern OCILOBREAD2 OCILobRead2;
00293 extern OCILOBTRIM2 OCILobTrim2;
00294 extern OCILOBWRITE2 OCILobWrite2;
00295 extern OCILOBWRITEAPPEND2 OCILobWriteAppend2;
00296
00297 extern OCIDBSTARTUP OCIDBStartup;
00298 extern OCIDBSHUTDOWN OCIDBShutdown;
00299
00300 extern OCISTMTPREPARE2 OCIStmtPrepare2;
00301 extern OCISTMTRELEASE OCIStmtRelease;
00302
00303 extern OCISUBSCRIPTIONREGISTER OCISubscriptionRegister;
00304 extern OCISUBSCRIPTIONUNREGISTER OCISubscriptionUnRegister;
00305
00306 #endif
00307
00308 #define OCIDateGetTime(date, hour, min, sec) \
00309 { \
00310 *hour = (date)->OCIDateTime.OCITimeHH; \
00311 *min = (date)->OCIDateTime.OCITimeMI; \
00312 *sec = (date)->OCIDateTime.OCITimeSS; \
00313 }
00314
00315 #define OCIDateGetDate(date, year, month, day) \
00316 { \
00317 *year = (date)->OCIDateYYYY; \
00318 *month = (date)->OCIDateMM; \
00319 *day = (date)->OCIDateDD; \
00320 }
00321
00322 #define OCIDateSetTime(date, hour, min, sec) \
00323 { \
00324 (date)->OCIDateTime.OCITimeHH = hour; \
00325 (date)->OCIDateTime.OCITimeMI = min; \
00326 (date)->OCIDateTime.OCITimeSS = sec; \
00327 }
00328
00329 #define OCIDateSetDate(date, year, month, day) \
00330 { \
00331 (date)->OCIDateYYYY = year; \
00332 (date)->OCIDateMM = month; \
00333 (date)->OCIDateDD = day; \
00334 }
00335
00336 #endif
00337
00338 #endif
00339