00001 00002 /* 00003 * THIS FILE IS UNDER RCS - DO NOT MODIFY UNLESS YOU HAVE 00004 * CHECKED IT OUT USING THE COMMAND CHECKOUT. 00005 * 00006 * $Id: localoci_8h-source.html 2161 2006-05-19 16:55:03Z paulf $ 00007 * 00008 * Revision history: 00009 * $Log$ 00009 * Revision 1.1 2006/05/19 16:55:02 paulf 00009 * first inclusion 00009 * 00010 * Revision 1.1 2000/02/14 20:05:54 lucky 00011 * Initial revision 00012 * 00013 * 00014 */ 00015 00016 /* 00017 * localoci.h 00018 * 00019 * Does all the basic Oracle OCI includes required 00020 * 00021 * Also contains some useful definitions to use with OCI 7.3 00022 * (Not everything is nicely defined in the Oracle header files) 00023 * -Lynn Dietz 00024 * 00025 * NOTE: When you need to test the VALUE of a return code from an 00026 * OCI function, always use the rc field of the Cda_Def structure 00027 * instead of the actual returned value. The rc value will 00028 * always be positive (it's an unsigned 2-byte int in OCI 7.3). 00029 * 00030 * The actual return value (which is the same as the 00031 * outdated v2_rc field of the Cda_Def structure) may have 00032 * a different sign or value than the rc field and could 00033 * cause one to become very confused. LDD 00034 * 00035 */ 00036 00037 #ifndef LOCALOCI_H 00038 #define LOCALOCI_H 00039 00040 /* Basic Oracle OCI includes: 00041 ****************************/ 00042 #include <oratypes.h> 00043 #include <ocidfn.h> 00044 #ifdef __STDC__ /* if ANSI C compiler */ 00045 #include <ociapr.h> 00046 #else 00047 #include <ocikpr.h> 00048 #endif 00049 00050 /* Useful local definitions start here: */ 00051 00052 /* Oracle DataType Codes 00053 * internal/external datatype codes 00054 **********************************/ 00055 #define VARCHAR2_TYPE 1 /* char[n], n<=2000 */ 00056 #define NUMBER_TYPE 2 /* unsigned char[21] */ 00057 #define INT_TYPE 3 /* signed char,short,int, or long */ 00058 #define FLOAT_TYPE 4 /* float, double */ 00059 #define STRING_TYPE 5 /* char[n+1] (null-terminated-string)*/ 00060 #define ROWID_TYPE 11 /* char[n] */ 00061 #define DATE_TYPE 12 /* char[7] */ 00062 #define LONGVARRAW_TYPE 24 /* unsigned char[n+ilen] */ 00063 #define UNSIGNED_TYPE 68 /* unsigned integers */ 00064 #define CHAR_TYPE 96 /* fixed-length char[n] n<=255 */ 00065 00066 /* Oracle OCI oparse flags 00067 *************************/ 00068 #define NATIVE 1 00069 #define VERSION_7 2 00070 #define OCI_NTS -1 /* null-terminated string */ 00071 #define OCI_IGNORED_FIELD -1 00072 #define OCI_MORE_FETCH_PIECES 3130 00073 #define OCI_MORE_INSERT_PIECES 3129 00074 #define OCI_NO_MORE_DATA 1403 /* got all data */ 00075 #define OCI_NULL_COLUMN 1405 /* fetched a null column */ 00076 #define OCI_TRUNCATED_COLUMN 1406 /* truncated a column */ 00077 #define OCI_DEFER_FULL_PARSE 1 00078 #define OCI_NODEFER_FULL_PARSE 0 00079 #define OCI_NATIVE_BEHAVIOR 1 /* expect native behavior of the version you're connected to */ 00080 #define OCI_VERSION_7 2 /* expect behavior of Oracle version7 */ 00081 00082 /* Possible "indicator variable" values 00083 ("indp" argument of obndrv,obndrn) 00084 **************************************/ 00085 #define OCI_VALID_DATA 0 00086 #define OCI_NULL_DATA -1 00087 00088 /* Arguments for oexfet 00089 **********************/ 00090 #define CANCEL_CURSOR 1 /* cancel cursor (same as ocan) after fetch */ 00091 #define KEEP_CURSOR 0 /* keep cursor active, do more fetches w/ofen */ 00092 00093 /* Oracle return codes to check for on ofetch,oexfet,ofen 00094 ********************************************************/ 00095 #define OCI_SUCCESS 0 /* no errors */ 00096 #define OCI_NO_DATA_FOUND 1403 /* no more rows were selected */ 00097 #define OCI_NULL_COLUMN 1405 /* null item retrieved for a column */ 00098 #define OCI_TRUNCATED 1406 /* item fetched was truncated */ 00099 #define OCI_INVALID_CONV 1454 /* invalid conversion requested */ 00100 #define OCI_REALOVERFLOW 1456 /* item would overflow a floating-point */ 00101 /* number on this machine */ 00102 #define OCI_UNSUPPORTED 3115 /* unsupported datatype */ 00103 00104 /* OCI function code labels, 00105 * corresponding to the fc numbers 00106 * in the cursor data area. 00107 **********************************/ 00108 CONST text *oci_func_tab[] = {(text *) "not used", 00109 /* 1-2 */ (text *) "not used", (text *) "OSQL", 00110 /* 3-4 */ (text *) "not used", (text *) "OEXEC, OEXN", 00111 /* 5-6 */ (text *) "not used", (text *) "OBIND", 00112 /* 7-8 */ (text *) "not used", (text *) "ODEFIN", 00113 /* 9-10 */ (text *) "not used", (text *) "ODSRBN", 00114 /* 11-12 */ (text *) "not used", (text *) "OFETCH, OFEN", 00115 /* 13-14 */ (text *) "not used", (text *) "OOPEN", 00116 /* 15-16 */ (text *) "not used", (text *) "OCLOSE", 00117 /* 17-18 */ (text *) "not used", (text *) "not used", 00118 /* 19-20 */ (text *) "not used", (text *) "not used", 00119 /* 21-22 */ (text *) "not used", (text *) "ODSC", 00120 /* 23-24 */ (text *) "not used", (text *) "ONAME", 00121 /* 25-26 */ (text *) "not used", (text *) "OSQL3", 00122 /* 27-28 */ (text *) "not used", (text *) "OBNDRV", 00123 /* 29-30 */ (text *) "not used", (text *) "OBNDRN", 00124 /* 31-32 */ (text *) "not used", (text *) "not used", 00125 /* 33-34 */ (text *) "not used", (text *) "OOPT", 00126 /* 35-36 */ (text *) "not used", (text *) "not used", 00127 /* 37-38 */ (text *) "not used", (text *) "not used", 00128 /* 39-40 */ (text *) "not used", (text *) "not used", 00129 /* 41-42 */ (text *) "not used", (text *) "not used", 00130 /* 43-44 */ (text *) "not used", (text *) "not used", 00131 /* 45-46 */ (text *) "not used", (text *) "not used", 00132 /* 47-48 */ (text *) "not used", (text *) "not used", 00133 /* 49-50 */ (text *) "not used", (text *) "not used", 00134 /* 51-52 */ (text *) "not used", (text *) "OCAN", 00135 /* 53-54 */ (text *) "not used", (text *) "OPARSE", 00136 /* 55-56 */ (text *) "not used", (text *) "OEXFET", 00137 /* 57-58 */ (text *) "not used", (text *) "OFLNG", 00138 /* 59-60 */ (text *) "not used", (text *) "ODESCR", 00139 /* 61-62 */ (text *) "not used", (text *) "OBNDRA" 00140 }; 00141 00142 #endif /* LOCALOCI_H */ 00143