00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020 #ifndef _tdsconvert_h_
00021 #define _tdsconvert_h_
00022
00023 #if defined(__GNUC__) && __GNUC__ >= 4 && !defined(__MINGW32__)
00024 #pragma GCC visibility push(hidden)
00025 #endif
00026
00027 #ifdef __cplusplus
00028 extern "C"
00029 {
00030 #if 0
00031 }
00032 #endif
00033 #endif
00034
00035
00036
00037 typedef union conv_result
00038 {
00039 TDS_TINYINT ti;
00040 TDS_SMALLINT si;
00041 TDS_INT i;
00042 TDS_INT8 bi;
00043 TDS_FLOAT f;
00044 TDS_REAL r;
00045 TDS_CHAR *c;
00046 TDS_MONEY m;
00047 TDS_MONEY4 m4;
00048 TDS_DATETIME dt;
00049 TDS_DATETIME4 dt4;
00050 TDS_DATETIMEALL dta;
00051 TDS_NUMERIC n;
00052 TDS_CHAR *ib;
00053 TDS_UNIQUE u;
00054
00055 struct cc_t {
00056 TDS_CHAR *c;
00057 TDS_UINT len;
00058 } cc;
00059 struct cb_t {
00060 TDS_CHAR *ib;
00061 TDS_UINT len;
00062 } cb;
00063 }
00064 CONV_RESULT;
00065
00066
00067
00068
00069 #define TDS_CONVERT_FAIL -1
00070 #define TDS_CONVERT_NOAVAIL -2
00071 #define TDS_CONVERT_SYNTAX -3
00072 #define TDS_CONVERT_NOMEM -4
00073 #define TDS_CONVERT_OVERFLOW -5
00074
00075
00076 #define TDS_CONVERT_CHAR 256
00077 #define TDS_CONVERT_BINARY 257
00078
00079 unsigned char tds_willconvert(int srctype, int desttype);
00080
00081 TDS_INT tds_get_null_type(int srctype);
00082 TDS_INT tds_char2hex(TDS_CHAR *dest, TDS_UINT destlen, const TDS_CHAR * src, TDS_UINT srclen);
00083 TDS_INT tds_convert(const TDSCONTEXT * context, int srctype, const TDS_CHAR * src, TDS_UINT srclen, int desttype, CONV_RESULT * cr);
00084
00085 size_t tds_strftime(char *buf, size_t maxsize, const char *format, const TDSDATEREC * timeptr, int prec);
00086
00087 #ifdef __cplusplus
00088 #if 0
00089 {
00090 #endif
00091 }
00092 #endif
00093
00094 #if defined(__GNUC__) && __GNUC__ >= 4 && !defined(__MINGW32__)
00095 #pragma GCC visibility pop
00096 #endif
00097
00098 #endif