4 #ifdef TDS_ICONV_ENCODING_TABLES
7 {
"ISO-8859-1", 1, 1, 0},
10 {
"UCS-2BE", 2, 2, 3},
11 {
"ARMSCII-8", 1, 1, 4},
13 {
"BIG5-HKSCS", 1, 2, 6},
15 {
"CHINESE", 1, 1, 8},
18 {
"CN-GB-ISOIR165", 1, 1, 11},
19 {
"CP1133", 1, 1, 12},
20 {
"CP1250", 1, 1, 13},
21 {
"CP1251", 1, 1, 14},
22 {
"CP1252", 1, 1, 15},
23 {
"CP1253", 1, 1, 16},
24 {
"CP1254", 1, 1, 17},
25 {
"CP1255", 1, 1, 18},
26 {
"CP1256", 1, 1, 19},
27 {
"CP1257", 1, 1, 20},
28 {
"CP1258", 1, 1, 21},
29 {
"CP1361", 1, 2, 22},
39 {
"EUC-JP", 1, 3, 32},
40 {
"EUC-KR", 1, 2, 33},
41 {
"EUC-TW", 1, 4, 34},
42 {
"GB18030", 1, 4, 35},
43 {
"GEORGIAN-ACADEMY", 1, 1, 36},
44 {
"GEORGIAN-PS", 1, 1, 37},
46 {
"ISO-2022-CN", 1, 4, 39},
47 {
"ISO-2022-CN-EXT", 1, 4, 40},
48 {
"ISO-2022-JP", 1, 1, 41},
49 {
"ISO-2022-JP-1", 1, 1, 42},
50 {
"ISO-2022-JP-2", 1, 1, 43},
51 {
"ISO-2022-KR", 1, 2, 44},
52 {
"ISO-8859-10", 1, 1, 45},
53 {
"ISO-8859-13", 1, 1, 46},
54 {
"ISO-8859-14", 1, 1, 47},
55 {
"ISO-8859-15", 1, 1, 48},
56 {
"ISO-8859-16", 1, 1, 49},
57 {
"ISO-8859-2", 1, 1, 50},
58 {
"ISO-8859-3", 1, 1, 51},
59 {
"ISO-8859-4", 1, 1, 52},
60 {
"ISO-8859-5", 1, 1, 53},
61 {
"ISO-8859-6", 1, 1, 54},
62 {
"ISO-8859-7", 1, 1, 55},
63 {
"ISO-8859-8", 1, 1, 56},
64 {
"ISO-8859-9", 1, 1, 57},
65 {
"ISO-IR-14", 1, 1, 58},
66 {
"ISO-IR-149", 1, 1, 59},
67 {
"ISO-IR-159", 1, 1, 60},
68 {
"ISO-IR-166", 1, 1, 61},
69 {
"ISO-IR-87", 1, 1, 62},
71 {
"JISX0201-1976", 1, 1, 64},
72 {
"KOI8-R", 1, 1, 65},
73 {
"KOI8-RU", 1, 1, 66},
74 {
"KOI8-T", 1, 1, 67},
75 {
"KOI8-U", 1, 1, 68},
77 {
"MACARABIC", 1, 1, 70},
78 {
"MACCENTRALEUROPE", 1, 1, 71},
79 {
"MACCROATIAN", 1, 1, 72},
80 {
"MACCYRILLIC", 1, 1, 73},
81 {
"MACGREEK", 1, 1, 74},
82 {
"MACHEBREW", 1, 1, 75},
83 {
"MACICELAND", 1, 1, 76},
84 {
"MACROMANIA", 1, 1, 77},
85 {
"MACTHAI", 1, 1, 78},
86 {
"MACTURKISH", 1, 1, 79},
87 {
"MACUKRAINE", 1, 1, 80},
88 {
"MULELAO-1", 1, 1, 81},
89 {
"NEXTSTEP", 1, 1, 82},
90 {
"ROMAN8", 1, 1, 83},
93 {
"UCS-4BE", 4, 4, 86},
94 {
"UCS-4LE", 4, 4, 87},
95 {
"US-ASCII", 1, 1, 88},
96 {
"UTF-16BE", 2, 4, 89},
97 {
"UTF-16LE", 2, 4, 90},
98 {
"UTF-32BE", 4, 4, 91},
99 {
"UTF-32LE", 4, 4, 92},
100 {
"UTF-7", 1, 4, 93},
101 {
"VISCII", 1, 1, 94},
109 {
"ANSI_X3.4-1968", 88 },
110 {
"ANSI_X3.4-1986", 88 },
126 {
"CN-GB-ISOIR165", 11 },
152 {
"CSEUCPKDFMTJAPANESE", 32 },
155 {
"CSHALFWIDTHKATAKANA", 64 },
156 {
"CSHPROMAN8", 83 },
158 {
"CSISO14JISC6220RO", 58 },
159 {
"CSISO159JISX02121990", 60 },
160 {
"CSISO2022CN", 39 },
161 {
"CSISO2022JP", 41 },
162 {
"CSISO2022JP2", 43 },
163 {
"CSISO2022KR", 44 },
164 {
"CSISO57GB1988", 9 },
165 {
"CSISO58GB231280", 8 },
166 {
"CSISO87JISX0208", 62 },
167 {
"CSISOLATIN1", 0 },
168 {
"CSISOLATIN2", 50 },
169 {
"CSISOLATIN3", 51 },
170 {
"CSISOLATIN4", 52 },
171 {
"CSISOLATIN5", 57 },
172 {
"CSISOLATIN6", 45 },
173 {
"CSISOLATINARABIC", 54 },
174 {
"CSISOLATINCYRILLIC", 53 },
175 {
"CSISOLATINGREEK", 55 },
176 {
"CSISOLATINHEBREW", 56 },
178 {
"CSKSC56011987", 59 },
179 {
"CSMACINTOSH", 69 },
180 {
"CSPC850MULTILINGUAL", 24 },
181 {
"CSPC862LATINHEBREW", 25 },
182 {
"CSSHIFTJIS", 84 },
183 {
"CSUNICODE11", 3 },
184 {
"CSUNICODE11UTF7", 93 },
198 {
"EXTENDED_UNIX_CODE_PACKED_FORMAT_FOR_JAPANESE", 32 },
204 {
"GEORGIAN-ACADEMY", 36 },
205 {
"GEORGIAN-PS", 37 },
211 {
"HZ-GB-2312", 38 },
212 {
"IBM-CP1133", 12 },
219 {
"ISO-2022-CN", 39 },
220 {
"ISO-2022-CN-EXT", 40 },
221 {
"ISO-2022-JP", 41 },
222 {
"ISO-2022-JP-1", 42 },
223 {
"ISO-2022-JP-2", 43 },
224 {
"ISO-2022-KR", 44 },
226 {
"ISO-8859-10", 45 },
227 {
"ISO-8859-13", 46 },
228 {
"ISO-8859-14", 47 },
229 {
"ISO-8859-15", 48 },
230 {
"ISO-8859-16", 49 },
231 {
"ISO-8859-2", 50 },
232 {
"ISO-8859-3", 51 },
233 {
"ISO-8859-4", 52 },
234 {
"ISO-8859-5", 53 },
235 {
"ISO-8859-6", 54 },
236 {
"ISO-8859-7", 55 },
237 {
"ISO-8859-8", 56 },
238 {
"ISO-8859-9", 57 },
239 {
"ISO-CELTIC", 47 },
241 {
"ISO-IR-101", 50 },
242 {
"ISO-IR-109", 51 },
243 {
"ISO-IR-110", 52 },
244 {
"ISO-IR-126", 55 },
245 {
"ISO-IR-127", 54 },
246 {
"ISO-IR-138", 56 },
248 {
"ISO-IR-144", 53 },
249 {
"ISO-IR-148", 57 },
250 {
"ISO-IR-149", 59 },
251 {
"ISO-IR-157", 45 },
252 {
"ISO-IR-159", 60 },
253 {
"ISO-IR-165", 11 },
254 {
"ISO-IR-166", 61 },
255 {
"ISO-IR-179", 46 },
256 {
"ISO-IR-199", 47 },
257 {
"ISO-IR-203", 48 },
258 {
"ISO-IR-226", 49 },
267 {
"ISO8859-10", 45 },
268 {
"ISO8859-15", 48 },
276 {
"ISO_646.IRV:1991", 88 },
278 {
"ISO_8859-10", 45 },
279 {
"ISO_8859-10:1992", 45 },
280 {
"ISO_8859-13", 46 },
281 {
"ISO_8859-14", 47 },
282 {
"ISO_8859-14:1998", 47 },
283 {
"ISO_8859-15", 48 },
284 {
"ISO_8859-15:1998", 48 },
285 {
"ISO_8859-16", 49 },
286 {
"ISO_8859-16:2000", 49 },
287 {
"ISO_8859-1:1987", 0 },
288 {
"ISO_8859-2", 50 },
289 {
"ISO_8859-2:1987", 50 },
290 {
"ISO_8859-3", 51 },
291 {
"ISO_8859-3:1988", 51 },
292 {
"ISO_8859-4", 52 },
293 {
"ISO_8859-4:1988", 52 },
294 {
"ISO_8859-5", 53 },
295 {
"ISO_8859-5:1988", 53 },
296 {
"ISO_8859-6", 54 },
297 {
"ISO_8859-6:1987", 54 },
298 {
"ISO_8859-7", 55 },
299 {
"ISO_8859-7:1987", 55 },
300 {
"ISO_8859-8", 56 },
301 {
"ISO_8859-8:1988", 56 },
302 {
"ISO_8859-9", 57 },
303 {
"ISO_8859-9:1989", 57 },
306 {
"JISX0201-1976", 64 },
307 {
"JIS_C6220-1969-RO", 58 },
308 {
"JIS_C6226-1983", 62 },
311 {
"JIS_X0208-1983", 62 },
312 {
"JIS_X0208-1990", 62 },
314 {
"JIS_X0212-1990", 60 },
315 {
"JIS_X0212.1990-0", 60 },
324 {
"KS_C_5601-1987", 59 },
325 {
"KS_C_5601-1989", 59 },
344 {
"MACCENTRALEUROPE", 71 },
345 {
"MACCROATIAN", 72 },
346 {
"MACCYRILLIC", 73 },
349 {
"MACICELAND", 76 },
352 {
"MACROMANIA", 77 },
354 {
"MACTURKISH", 79 },
355 {
"MACUKRAINE", 80 },
373 {
"TCVN5712-1", 85 },
374 {
"TCVN5712-1:1993", 85 },
378 {
"TIS620.2529-1", 61 },
379 {
"TIS620.2533-0", 61 },
380 {
"TIS620.2533-1", 61 },
386 {
"UNICODE-1-1", 3 },
387 {
"UNICODE-1-1-UTF-7", 93 },
389 {
"UNICODELITTLE", 2 },
401 {
"VISCII1.1-1", 94 },
402 {
"WINBALTRIM", 20 },
403 {
"WINDOWS-1250", 13 },
404 {
"WINDOWS-1251", 14 },
405 {
"WINDOWS-1252", 15 },
406 {
"WINDOWS-1253", 16 },
407 {
"WINDOWS-1254", 17 },
408 {
"WINDOWS-1255", 18 },
409 {
"WINDOWS-1256", 19 },
410 {
"WINDOWS-1257", 20 },
411 {
"WINDOWS-1258", 21 },
412 {
"WINDOWS-874", 27 },
467 TDS_CHARSET_ISO_8859_1 = 0,
468 TDS_CHARSET_UTF_8 = 1,
469 TDS_CHARSET_UCS_2LE = 2,
470 TDS_CHARSET_UCS_2BE = 3,
471 TDS_CHARSET_ARMSCII_8 = 4,
472 TDS_CHARSET_BIG_5 = 5,
473 TDS_CHARSET_BIG5_HKSCS = 6,
475 TDS_CHARSET_CHINESE = 8,
477 TDS_CHARSET_CN_GB = 10,
478 TDS_CHARSET_CN_GB_ISOIR165 = 11,
479 TDS_CHARSET_CP1133 = 12,
480 TDS_CHARSET_CP1250 = 13,
481 TDS_CHARSET_CP1251 = 14,
482 TDS_CHARSET_CP1252 = 15,
483 TDS_CHARSET_CP1253 = 16,
484 TDS_CHARSET_CP1254 = 17,
485 TDS_CHARSET_CP1255 = 18,
486 TDS_CHARSET_CP1256 = 19,
487 TDS_CHARSET_CP1257 = 20,
488 TDS_CHARSET_CP1258 = 21,
489 TDS_CHARSET_CP1361 = 22,
490 TDS_CHARSET_CP437 = 23,
491 TDS_CHARSET_CP850 = 24,
492 TDS_CHARSET_CP862 = 25,
493 TDS_CHARSET_CP866 = 26,
494 TDS_CHARSET_CP874 = 27,
495 TDS_CHARSET_CP932 = 28,
496 TDS_CHARSET_CP936 = 29,
497 TDS_CHARSET_CP949 = 30,
498 TDS_CHARSET_CP950 = 31,
499 TDS_CHARSET_EUC_JP = 32,
500 TDS_CHARSET_EUC_KR = 33,
501 TDS_CHARSET_EUC_TW = 34,
502 TDS_CHARSET_GB18030 = 35,
503 TDS_CHARSET_GEORGIAN_ACADEMY = 36,
504 TDS_CHARSET_GEORGIAN_PS = 37,
506 TDS_CHARSET_ISO_2022_CN = 39,
507 TDS_CHARSET_ISO_2022_CN_EXT = 40,
508 TDS_CHARSET_ISO_2022_JP = 41,
509 TDS_CHARSET_ISO_2022_JP_1 = 42,
510 TDS_CHARSET_ISO_2022_JP_2 = 43,
511 TDS_CHARSET_ISO_2022_KR = 44,
512 TDS_CHARSET_ISO_8859_10 = 45,
513 TDS_CHARSET_ISO_8859_13 = 46,
514 TDS_CHARSET_ISO_8859_14 = 47,
515 TDS_CHARSET_ISO_8859_15 = 48,
516 TDS_CHARSET_ISO_8859_16 = 49,
517 TDS_CHARSET_ISO_8859_2 = 50,
518 TDS_CHARSET_ISO_8859_3 = 51,
519 TDS_CHARSET_ISO_8859_4 = 52,
520 TDS_CHARSET_ISO_8859_5 = 53,
521 TDS_CHARSET_ISO_8859_6 = 54,
522 TDS_CHARSET_ISO_8859_7 = 55,
523 TDS_CHARSET_ISO_8859_8 = 56,
524 TDS_CHARSET_ISO_8859_9 = 57,
525 TDS_CHARSET_ISO_IR_14 = 58,
526 TDS_CHARSET_ISO_IR_149 = 59,
527 TDS_CHARSET_ISO_IR_159 = 60,
528 TDS_CHARSET_ISO_IR_166 = 61,
529 TDS_CHARSET_ISO_IR_87 = 62,
530 TDS_CHARSET_JAVA = 63,
531 TDS_CHARSET_JISX0201_1976 = 64,
532 TDS_CHARSET_KOI8_R = 65,
533 TDS_CHARSET_KOI8_RU = 66,
534 TDS_CHARSET_KOI8_T = 67,
535 TDS_CHARSET_KOI8_U = 68,
536 TDS_CHARSET_MAC = 69,
537 TDS_CHARSET_MACARABIC = 70,
538 TDS_CHARSET_MACCENTRALEUROPE = 71,
539 TDS_CHARSET_MACCROATIAN = 72,
540 TDS_CHARSET_MACCYRILLIC = 73,
541 TDS_CHARSET_MACGREEK = 74,
542 TDS_CHARSET_MACHEBREW = 75,
543 TDS_CHARSET_MACICELAND = 76,
544 TDS_CHARSET_MACROMANIA = 77,
545 TDS_CHARSET_MACTHAI = 78,
546 TDS_CHARSET_MACTURKISH = 79,
547 TDS_CHARSET_MACUKRAINE = 80,
548 TDS_CHARSET_MULELAO_1 = 81,
549 TDS_CHARSET_NEXTSTEP = 82,
550 TDS_CHARSET_ROMAN8 = 83,
551 TDS_CHARSET_SJIS = 84,
552 TDS_CHARSET_TCVN = 85,
553 TDS_CHARSET_UCS_4BE = 86,
554 TDS_CHARSET_UCS_4LE = 87,
555 TDS_CHARSET_US_ASCII = 88,
556 TDS_CHARSET_UTF_16BE = 89,
557 TDS_CHARSET_UTF_16LE = 90,
558 TDS_CHARSET_UTF_32BE = 91,
559 TDS_CHARSET_UTF_32LE = 92,
560 TDS_CHARSET_UTF_7 = 93,
561 TDS_CHARSET_VISCII = 94,
562 TDS_NUM_CHARSETS = 95
TDSRET tds_dynamic_stream_init(TDSDYNAMICSTREAM *stream, void **ptr, size_t allocated)
Initialize a dynamic output stream.
Definition: stream.c:354
int tm_mon
month (0-11)
Definition: convert.c:57
Store variant informations.
Definition: tds.h:605
TDSRET tds_get_char_data(TDSSOCKET *tds, char *row_buffer, size_t wire_size, TDSCOLUMN *curcol)
Fetch character data the wire.
Definition: read.c:195
TDS_INT month
month number (0-11)
Definition: tds.h:163
TDS_INT second
0-59
Definition: tds.h:169
int tm_sec
seconds (0-59)
Definition: convert.c:61
size_t size
size of data inside buffer
Definition: stream.h:106
unsigned char * in_buf
Input buffer.
Definition: tds.h:1178
TDSRET tds_copy_stream(TDSINSTREAM *istream, TDSOUTSTREAM *ostream)
Reads and writes from a stream to another.
Definition: stream.c:163
TDS_INT timezone
-840 - 840 minutes from UTC
Definition: tds.h:171
TDSRET tds_convert_stream(TDSSOCKET *tds, TDSICONV *char_conv, TDS_ICONV_DIRECTION direction, TDSINSTREAM *istream, TDSOUTSTREAM *ostream)
Reads and writes from a stream converting characters.
Definition: stream.c:71
int(* read)(struct tds_input_stream *stream, void *ptr, size_t len)
read some data Return 0 if end of stream Return <0 if error (actually not defined)
Definition: stream.h:35
Information about blobs (e.g.
Definition: tds.h:594
TDS_INT year
year
Definition: tds.h:161
int tm_mday
month day (1-31)
Definition: convert.c:58
TDS_TINYINT column_prec
precision for decimal/numeric
Definition: tds.h:704
int tm_min
minutes (0-59)
Definition: convert.c:60
this structure is not directed connected to a TDS protocol but keeps any DATE/TIME information.
Definition: tds.h:147
int tds_get_varint_size(TDSCONNECTION *conn, int datatype)
tds_get_varint_size() returns the size of a variable length integer returned in a result string
Definition: tds_types.h:57
Information for a server connection.
Definition: tds.h:1164
TDSRET tds_generic_get(TDSSOCKET *tds, TDSCOLUMN *curcol)
Read a data from wire.
Definition: data.c:709
const char * tds_convert_string(TDSSOCKET *tds, TDSICONV *char_conv, const char *s, int len, size_t *out_len)
Convert a string in an allocated buffer.
Definition: query.c:126
const int tds_numeric_bytes_per_prec[]
The following little table is indexed by precision and will tell us the number of bytes required to s...
Definition: numeric.c:41
TDS_UINT tds_get_uint(TDSSOCKET *tds)
Get an int32 from the server.
Definition: read.c:127
Information relevant to libiconv.
Definition: tds.h:619
unsigned char tds_willconvert(int srctype, int desttype)
Test if a conversion is possible.
Definition: convert.c:3056
static const char * parse_numeric(const char *buf, const char *pend, bool *p_negative, size_t *p_digits, size_t *p_decimals)
Parse a string for numbers.
Definition: convert.c:3385
void tds_set_param_type(TDSCONNECTION *conn, TDSCOLUMN *curcol, TDS_SERVER_TYPE type)
Set type of column initializing all dependency.
Definition: data.c:249
const char * tds_prtype(int type)
Returns string representation of the given type.
Definition: token.c:3052
static TDS_INT string_to_uint8(const char *buf, const char *pend, TDS_UINT8 *res)
convert a number in string to TDS_UINT8
Definition: convert.c:3347
TDSRET tds_generic_put_info(TDSSOCKET *tds, TDSCOLUMN *col)
Put data information to wire.
Definition: data.c:871
size_t tds_strftime(char *buf, size_t maxsize, const char *format, const TDSDATEREC *dr, int prec)
format a date string according to an "extended" strftime(3) formatting definition.
Definition: convert.c:2968
unsigned char tds_get_byte(TDSSOCKET *tds)
Return a single byte from the input buffer.
Definition: read.c:72
struct tds_blob TDSBLOB
Information about blobs (e.g.
static int string_to_numeric(const char *instr, const char *pend, CONV_RESULT *cr)
convert a number in string to a TDSNUMERIC
Definition: convert.c:2266
bool tds_get_n(TDSSOCKET *tds, void *dest, size_t need)
Get N bytes from the buffer and return them in the already allocated space given to us.
Definition: read.c:230
void tdsdump_log(const char *file, unsigned int level_line, const char *fmt,...)
Write a message to the debug log.
Definition: log.c:354
TDS_INT tds_convert(const TDSCONTEXT *tds_ctx, int srctype, const void *src, TDS_UINT srclen, int desttype, CONV_RESULT *cr)
tds_convert convert a type to another.
Definition: convert.c:1878
TDS_INT column_size
maximun size of data.
Definition: tds.h:695
static int stringz_to_numeric(const char *instr, CONV_RESULT *cr)
convert a zero terminated string to NUMERIC
Definition: convert.c:2260
TDS_SERVER_TYPE tds_get_null_type(TDS_SERVER_TYPE srctype)
Get same type but nullable.
Definition: convert.c:2913
DSTR * tds_dstr_get(TDSSOCKET *tds, DSTR *s, size_t len)
Reads a string from wire and put in a DSTR.
Definition: read.c:293
static TDS_INT string_to_result(int desttype, const char *s, CONV_RESULT *cr)
Copy a terminated string to result and return len or TDS_CONVERT_NOMEM.
Definition: convert.c:161
void tds_datain_stream_init(TDSDATAINSTREAM *stream, TDSSOCKET *tds, size_t wire_size)
Initialize a data input stream.
Definition: stream.c:204
TDS_INT quarter
quarter (0-3)
Definition: tds.h:162
size_t tds_get_string(TDSSOCKET *tds, size_t string_len, char *dest, size_t dest_size)
Fetch a string from the wire.
Definition: read.c:166
TDS_INT minute
0-59
Definition: tds.h:168
size_t wire_size
bytes still to read
Definition: stream.h:65
static TDS_INT string_to_int8(const char *buf, const char *pend, TDS_INT8 *res)
convert a number in string to TDS_INT8
Definition: convert.c:3318
TDSRET tds_generic_put(TDSSOCKET *tds, TDSCOLUMN *curcol, int bcp7)
Write data to wire.
Definition: data.c:915
TDS_TINYINT column_scale
scale for decimal/numeric
Definition: tds.h:705
TDS_INT decimicrosecond
0-9999999
Definition: tds.h:170
define a stream of data used for input
Definition: stream.h:30
TDS_INT day
day of month (1-31)
Definition: tds.h:164
TDS_SERVER_TYPE tds_get_conversion_type(TDS_SERVER_TYPE srctype, int colsize)
Return type suitable for conversions (convert all nullable types to fixed type)
Definition: tds_types.h:125
char * tds_strndup(const void *s, TDS_INTPTR len)
Copy a string of length len to a new allocated buffer This function does not read more than len bytes...
Definition: util.c:408
TDSICONV * tds_iconv_from_collate(TDSCONNECTION *conn, TDS_UCHAR collate[5])
Get iconv information from a LCID (to support different column encoding under MSSQL2K)
Definition: iconv.c:1234
TDS_INT column_cur_size
size written in variable (ie: char, text, binary).
Definition: tds.h:737
TDSICONV * char_conv
refers to previously allocated iconv information
Definition: tds.h:713
TDS_TINYINT column_varint_size
size of length when reading from wire (0, 1, 2 or 4)
Definition: tds.h:702
TDS_SMALLINT offset
time offset
Definition: tds.h:150
TDS_INT weekday
day of week (0-6, 0 = sunday)
Definition: tds.h:166
static TDS_INT parse_int8(const char *buf, const char *pend, TDS_UINT8 *res, bool *p_negative)
convert a number in string to TDS_INT8
Definition: convert.c:3288
input stream to read data from tds protocol
Definition: stream.h:63
TDS_UINT8 time
time, 7 digit precision
Definition: tds.h:148
Used by tds_datecrack.
Definition: tds.h:160
int tds_get_size_by_type(TDS_SERVER_TYPE servertype)
Return the number of bytes needed by specified type.
Definition: tds_types.h:9
void tds_set_column_type(TDSCONNECTION *conn, TDSCOLUMN *curcol, TDS_SERVER_TYPE type)
Set type of column initializing all dependency.
Definition: data.c:227
TDS_USMALLINT tds_get_usmallint(TDSSOCKET *tds)
Get an int16 from the server.
Definition: read.c:113
TDSRET tds_datecrack(TDS_INT datetype, const void *di, TDSDATEREC *dr)
Convert from db date format to a structured date format.
Definition: convert.c:3122
Metadata about columns in regular and compute rows.
Definition: tds.h:690
TDS_INT hour
0-23
Definition: tds.h:167
size_t tds_fix_column_size(TDSSOCKET *tds, TDSCOLUMN *curcol)
Get column size for wire.
Definition: query.c:1491
int tm_hour
hours (0-23)
Definition: convert.c:59
TDS_INT dayofyear
day of year (1-366)
Definition: tds.h:165
TDS_SERVER_TYPE column_type
This type can be different from wire type because conversion (e.g.
Definition: tds.h:697
static TDS_INT binary_to_result(int desttype, const void *data, size_t len, CONV_RESULT *cr)
Copy binary data to to result and return len or TDS_CONVERT_NOMEM.
Definition: convert.c:179
int tm_year
year (0=1900)
Definition: convert.c:56
static void tds_swap_numeric(TDS_NUMERIC *num)
Converts numeric from Microsoft representation to internal one (Sybase).
Definition: data.c:1667
int tm_ns
nanoseconds (0-999999999)
Definition: convert.c:62
output stream to write data to a dynamic buffer
Definition: stream.h:99
unsigned in_pos
current position in in_buf
Definition: tds.h:1193
TDS_INT date
date, 0 = 1900-01-01
Definition: tds.h:149
TDS_INT tds_numeric_to_string(const TDS_NUMERIC *numeric, char *s)
Definition: numeric.c:95
static int store_monthname(const char *, struct tds_time *)
Test if a string is a month name and store correct month number.
Definition: convert.c:2706
static TDS_INT string_to_int(const char *buf, const char *pend, TDS_INT *res)
convert a number in string to TDS_INT
Definition: convert.c:3249