1 /* 2 * This file contains stuff needed to be as compatible to Informix as possible. 3 * src/interfaces/ecpg/include/ecpg_informix.h 4 */ 5 #ifndef _ECPG_INFORMIX_H 6 #define _ECPG_INFORMIX_H 7 8 #include <ecpglib.h> 9 #include <pgtypes_date.h> 10 #include <pgtypes_interval.h> 11 #include <pgtypes_numeric.h> 12 #include <pgtypes_timestamp.h> 13 14 #define SQLNOTFOUND 100 15 16 #define ECPG_INFORMIX_NUM_OVERFLOW -1200 17 #define ECPG_INFORMIX_NUM_UNDERFLOW -1201 18 #define ECPG_INFORMIX_DIVIDE_ZERO -1202 19 #define ECPG_INFORMIX_BAD_YEAR -1204 20 #define ECPG_INFORMIX_BAD_MONTH -1205 21 #define ECPG_INFORMIX_BAD_DAY -1206 22 #define ECPG_INFORMIX_ENOSHORTDATE -1209 23 #define ECPG_INFORMIX_DATE_CONVERT -1210 24 #define ECPG_INFORMIX_OUT_OF_MEMORY -1211 25 #define ECPG_INFORMIX_ENOTDMY -1212 26 #define ECPG_INFORMIX_BAD_NUMERIC -1213 27 #define ECPG_INFORMIX_BAD_EXPONENT -1216 28 #define ECPG_INFORMIX_BAD_DATE -1218 29 #define ECPG_INFORMIX_EXTRA_CHARS -1264 30 31 #ifdef __cplusplus 32 extern "C" 33 { 34 #endif 35 36 extern int rdatestr(date, char *); 37 extern void rtoday(date *); 38 extern int rjulmdy(date, short *); 39 extern int rdefmtdate(date *, const char *, const char *); 40 extern int rfmtdate(date, const char *, char *); 41 extern int rmdyjul(short *, date *); 42 extern int rstrdate(const char *, date *); 43 extern int rdayofweek(date); 44 45 extern int rfmtlong(long, const char *, char *); 46 extern int rgetmsg(int, char *, int); 47 extern int risnull(int, const char *); 48 extern int rsetnull(int, char *); 49 extern int rtypalign(int, int); 50 extern int rtypmsize(int, int); 51 extern int rtypwidth(int, int); 52 extern void rupshift(char *); 53 54 extern int byleng(char *, int); 55 extern void ldchar(char *, int, char *); 56 57 extern void ECPG_informix_set_var(int, void *, int); 58 extern void *ECPG_informix_get_var(int); 59 extern void ECPG_informix_reset_sqlca(void); 60 61 /* Informix defines these in decimal.h */ 62 int decadd(decimal *, decimal *, decimal *); 63 int deccmp(decimal *, decimal *); 64 void deccopy(decimal *, decimal *); 65 int deccvasc(const char *, int, decimal *); 66 int deccvdbl(double, decimal *); 67 int deccvint(int, decimal *); 68 int deccvlong(long, decimal *); 69 int decdiv(decimal *, decimal *, decimal *); 70 int decmul(decimal *, decimal *, decimal *); 71 int decsub(decimal *, decimal *, decimal *); 72 int dectoasc(decimal *, char *, int, int); 73 int dectodbl(decimal *, double *); 74 int dectoint(decimal *, int *); 75 int dectolong(decimal *, long *); 76 77 /* Informix defines these in datetime.h */ 78 extern void dtcurrent(timestamp *); 79 extern int dtcvasc(char *, timestamp *); 80 extern int dtsub(timestamp *, timestamp *, interval *); 81 extern int dttoasc(timestamp *, char *); 82 extern int dttofmtasc(timestamp *, char *, int, char *); 83 extern int intoasc(interval *, char *); 84 extern int dtcvfmtasc(char *, char *, timestamp *); 85 86 #ifdef __cplusplus 87 } 88 #endif 89 90 #endif /* ndef _ECPG_INFORMIX_H */ 91