FreeTDS API
Classes | Macros | Typedefs | Functions
data.c File Reference

Handle different data handling from network. More...

#include <config.h>
#include <stdarg.h>
#include <stdio.h>
#include <assert.h>
#include <freetds/utils.h>
#include <freetds/tds.h>
#include <freetds/bytes.h>
#include <freetds/iconv.h>
#include <freetds/checks.h>
#include <freetds/stream.h>
#include <freetds/data.h>
#include <freetds/pushvis.h>
#include <freetds/popvis.h>
#include "tds_types.h"
Include dependency graph for data.c:

Classes

struct  tds_varmax_stream
 

Macros

#define TDS_DECLARE_FUNCS(name)   extern const TDSCOLUMNFUNCS tds_ ## name ## _funcs
 
#define TDS_DONT_DEFINE_DEFAULT_FUNCTIONS
 
#define USE_ICONV   (tds->conn->use_iconv)
 

Typedefs

typedef struct tds_varmax_stream TDSVARMAXSTREAM
 

Functions

static TDSRET tds72_get_varmax (TDSSOCKET *tds, TDSCOLUMN *curcol)
 
TDSRET tds_clrudt_get_info (TDSSOCKET *tds, TDSCOLUMN *col)
 
TDSRET tds_clrudt_put_info (TDSSOCKET *tds, TDSCOLUMN *col TDS_UNUSED)
 
TDS_INT tds_clrudt_row_len (TDSCOLUMN *col)
 
 TDS_COMPILE_CHECK (variant_size, sizeof(TDSBLOB) >=sizeof(TDSVARIANT))
 
 TDS_COMPILE_CHECK (tds_variant_size, sizeof(((TDSVARIANT *) 0) ->data)==sizeof(((TDSBLOB *) 0) ->textvalue))
 
 TDS_COMPILE_CHECK (tds_variant_offset, TDS_OFFSET(TDSVARIANT, data)==TDS_OFFSET(TDSBLOB, textvalue))
 
 TDS_DECLARE_FUNCS (generic)
 
 TDS_DECLARE_FUNCS (numeric)
 
 TDS_DECLARE_FUNCS (variant)
 
 TDS_DECLARE_FUNCS (msdatetime)
 
 TDS_DECLARE_FUNCS (clrudt)
 
 TDS_DECLARE_FUNCS (sybbigtime)
 
 TDS_DECLARE_FUNCS (invalid)
 
 TDS_DECLARE_FUNCS (mstabletype)
 
TDSRET tds_generic_get (TDSSOCKET *tds, TDSCOLUMN *curcol)
 Read a data from wire. More...
 
TDSRET tds_generic_get_info (TDSSOCKET *tds, TDSCOLUMN *col)
 
TDSRET tds_generic_put (TDSSOCKET *tds, TDSCOLUMN *curcol, int bcp7)
 Write data to wire. More...
 
TDSRET tds_generic_put_info (TDSSOCKET *tds, TDSCOLUMN *col)
 Put data information to wire. More...
 
TDS_INT tds_generic_row_len (TDSCOLUMN *col)
 
TDS_SERVER_TYPE tds_get_cardinal_type (TDS_SERVER_TYPE datatype, int usertype)
 
static TDSRET tds_get_char_dynamic (TDSSOCKET *tds, TDSCOLUMN *curcol, void **pp, size_t allocated, TDSINSTREAM *r_stream)
 
static const TDSCOLUMNFUNCStds_get_column_funcs (TDSCONNECTION *conn, int type)
 
TDSRET tds_invalid_get (TDSSOCKET *tds TDS_UNUSED, TDSCOLUMN *col TDS_UNUSED)
 
TDSRET tds_invalid_get_info (TDSSOCKET *tds TDS_UNUSED, TDSCOLUMN *col TDS_UNUSED)
 
TDSRET tds_invalid_put (TDSSOCKET *tds TDS_UNUSED, TDSCOLUMN *col TDS_UNUSED, int bcp7 TDS_UNUSED)
 
TDSRET tds_invalid_put_info (TDSSOCKET *tds TDS_UNUSED, TDSCOLUMN *col TDS_UNUSED)
 
TDS_INT tds_invalid_row_len (TDSCOLUMN *col TDS_UNUSED)
 
TDSRET tds_msdatetime_get (TDSSOCKET *tds, TDSCOLUMN *col)
 
TDSRET tds_msdatetime_get_info (TDSSOCKET *tds, TDSCOLUMN *col)
 
TDSRET tds_msdatetime_put (TDSSOCKET *tds, TDSCOLUMN *col, int bcp7 TDS_UNUSED)
 
TDSRET tds_msdatetime_put_info (TDSSOCKET *tds, TDSCOLUMN *col)
 
TDS_INT tds_msdatetime_row_len (TDSCOLUMN *col TDS_UNUSED)
 
TDSRET tds_mstabletype_get (TDSSOCKET *tds TDS_UNUSED, TDSCOLUMN *col TDS_UNUSED)
 
TDSRET tds_mstabletype_get_info (TDSSOCKET *tds TDS_UNUSED, TDSCOLUMN *col TDS_UNUSED)
 
TDSRET tds_mstabletype_put (TDSSOCKET *tds, TDSCOLUMN *col, int bcp7 TDS_UNUSED)
 
TDSRET tds_mstabletype_put_info (TDSSOCKET *tds, TDSCOLUMN *col)
 
TDS_INT tds_mstabletype_row_len (TDSCOLUMN *col TDS_UNUSED)
 
TDSRET tds_numeric_get (TDSSOCKET *tds, TDSCOLUMN *curcol)
 
TDSRET tds_numeric_get_info (TDSSOCKET *tds, TDSCOLUMN *col)
 
TDSRET tds_numeric_put (TDSSOCKET *tds, TDSCOLUMN *col, int bcp7 TDS_UNUSED)
 
TDSRET tds_numeric_put_info (TDSSOCKET *tds, TDSCOLUMN *col)
 
TDS_INT tds_numeric_row_len (TDSCOLUMN *col TDS_UNUSED)
 
void tds_set_column_type (TDSCONNECTION *conn, TDSCOLUMN *curcol, TDS_SERVER_TYPE type)
 Set type of column initializing all dependency. More...
 
void tds_set_param_type (TDSCONNECTION *conn, TDSCOLUMN *curcol, TDS_SERVER_TYPE type)
 Set type of column initializing all dependency. More...
 
static void tds_swap_numeric (TDS_NUMERIC *num)
 Converts numeric from Microsoft representation to internal one (Sybase). More...
 
TDSRET tds_sybbigtime_get (TDSSOCKET *tds, TDSCOLUMN *col)
 
TDSRET tds_sybbigtime_get_info (TDSSOCKET *tds, TDSCOLUMN *col)
 
TDSRET tds_sybbigtime_put (TDSSOCKET *tds, TDSCOLUMN *col, int bcp7 TDS_UNUSED)
 
TDSRET tds_sybbigtime_put_info (TDSSOCKET *tds, TDSCOLUMN *col TDS_UNUSED)
 
TDS_INT tds_sybbigtime_row_len (TDSCOLUMN *col TDS_UNUSED)
 
TDSRET tds_variant_get (TDSSOCKET *tds, TDSCOLUMN *curcol)
 
TDSRET tds_variant_put (TDSSOCKET *tds TDS_UNUSED, TDSCOLUMN *col TDS_UNUSED, int bcp7 TDS_UNUSED)
 
TDSRET tds_variant_put_info (TDSSOCKET *tds TDS_UNUSED, TDSCOLUMN *col TDS_UNUSED)
 
static int tds_varmax_stream_read (TDSINSTREAM *stream, void *ptr, size_t len)
 

Detailed Description

Handle different data handling from network.

Function Documentation

◆ tds_generic_get()

TDSRET tds_generic_get ( TDSSOCKET tds,
TDSCOLUMN curcol 
)

Read a data from wire.

Parameters
tdsstate information for the socket and the TDS protocol
curcolcolumn where store column information
Returns
TDS_FAIL on error or TDS_SUCCESS

◆ tds_generic_put()

TDSRET tds_generic_put ( TDSSOCKET tds,
TDSCOLUMN curcol,
int  bcp7 
)

Write data to wire.

Parameters
tdsstate information for the socket and the TDS protocol
curcolcolumn where store column information
Returns
TDS_FAIL on error or TDS_SUCCESS
Here is the call graph for this function:

◆ tds_generic_put_info()

TDSRET tds_generic_put_info ( TDSSOCKET tds,
TDSCOLUMN col 
)

Put data information to wire.

Parameters
tdsstate information for the socket and the TDS protocol
colcolumn where to store information
Returns
TDS_SUCCESS or TDS_FAIL
Here is the call graph for this function:

◆ tds_set_column_type()

void tds_set_column_type ( TDSCONNECTION conn,
TDSCOLUMN curcol,
TDS_SERVER_TYPE  type 
)

Set type of column initializing all dependency.

column_usertype should already be set.

Parameters
curcolcolumn to set
typetype to set

◆ tds_set_param_type()

void tds_set_param_type ( TDSCONNECTION conn,
TDSCOLUMN curcol,
TDS_SERVER_TYPE  type 
)

Set type of column initializing all dependency.

Parameters
tdsstate information for the socket and the TDS protocol
curcolcolumn to set
typetype to set

◆ tds_swap_numeric()

static void tds_swap_numeric ( TDS_NUMERIC num)
static

Converts numeric from Microsoft representation to internal one (Sybase).

Parameters
numnumeric data to convert