/* FreeTDS - Library of routines accessing Sybase and Microsoft databases * Copyright (C) 1998-1999 Brian Bruns * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Library General Public * License as published by the Free Software Foundation; either * version 2 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Library General Public License for more details. * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the * Free Software Foundation, Inc., 59 Temple Place - Suite 330, * Boston, MA 02111-1307, USA. */ #ifndef _tdsconvert_h_ #define _tdsconvert_h_ #ifdef __cplusplus extern "C" { #if 0 } #endif #endif static const char rcsid_tdsconvert_h[] = "$Id: tdsconvert.h,v 1.21 2005/04/15 11:51:56 freddy77 Exp $"; static const void *const no_unused_tdsconvert_h_warn[] = { rcsid_tdsconvert_h, no_unused_tdsconvert_h_warn }; typedef union conv_result { TDS_TINYINT ti; TDS_SMALLINT si; TDS_INT i; TDS_INT8 bi; TDS_FLOAT f; TDS_REAL r; TDS_CHAR *c; TDS_MONEY m; TDS_MONEY4 m4; TDS_DATETIME dt; TDS_DATETIME4 dt4; TDS_NUMERIC n; TDS_CHAR *ib; TDS_UNIQUE u; } CONV_RESULT; /* * Failure return codes for tds_convert() */ #define TDS_CONVERT_FAIL -1 /* unspecified failure */ #define TDS_CONVERT_NOAVAIL -2 /* conversion does not exist */ #define TDS_CONVERT_SYNTAX -3 /* syntax error in source field */ #define TDS_CONVERT_NOMEM -4 /* insufficient memory */ #define TDS_CONVERT_OVERFLOW -5 /* result too large */ struct tds_time { int tm_year; /**< year (0=1900) */ int tm_mon; /**< month (0-11) */ int tm_mday; /**< month day (1-31) */ int tm_hour; /**< hours (0-23) */ int tm_min; /**< minutes (0-59) */ int tm_sec; /**< seconds (0-59) */ int tm_ms; /**< milliseconds (0-999) */ }; unsigned char tds_willconvert(int srctype, int desttype); TDS_INT tds_get_null_type(int srctype); TDS_INT tds_convert(const TDSCONTEXT * context, int srctype, const TDS_CHAR * src, TDS_UINT srclen, int desttype, CONV_RESULT * cr); size_t tds_strftime(char *buf, size_t maxsize, const char *format, const TDSDATEREC * timeptr); #ifdef __cplusplus #if 0 { #endif } #endif #endif /* _tdsconvert_h_ */