36 #include <freetds/odbc.h>
39 #define SET_INFO(type, prefix, suffix) do { \
40 drec->sql_desc_literal_prefix = prefix; \
41 drec->sql_desc_literal_suffix = suffix; \
42 drec->sql_desc_type_name = type; \
45 #define SET_INFO2(type, prefix, suffix, len) do { \
46 drec->sql_desc_length = (len); \
47 SET_INFO(type, prefix, suffix); \
61 SET_INFO2(
"time",
"'",
"'", 8 + decimals);
73 SET_INFO2(
"datetimeoffset",
"'",
"'", 26 + decimals);
80 SET_INFO2(
"datetime2",
"'",
"'", 19 + decimals);
200 #if (ODBCVER >= 0x0300)
227 #if (ODBCVER >= 0x0300)
233 SET_INFO2(
"unsigned bigint",
"",
"", 20);
246 SET_INFO2(
"unsigned smallint",
"",
"", 5);
359 #if (ODBCVER >= 0x0300)
368 SET_INFO2(
"uniqueidentifier",
"'",
"'", 36);
406 # define TDS_DEFINE_FUNCS(name) \
407 const TDS_FUNCS tds_ ## name ## _funcs = { \
408 TDS_COMMON_FUNCS(name), \
409 data_ ## name ## _set_type_info, \
static void data_invalid_set_type_info(TDSCOLUMN *col, struct _drecord *drec, SQLINTEGER odbc_ver)
static void data_sybbigtime_set_type_info(TDSCOLUMN *col, struct _drecord *drec, SQLINTEGER odbc_ver)
static void data_clrudt_set_type_info(TDSCOLUMN *col, struct _drecord *drec, SQLINTEGER odbc_ver)
void odbc_set_sql_type_info(TDSCOLUMN *col, struct _drecord *drec, SQLINTEGER odbc_ver)
static void data_variant_set_type_info(TDSCOLUMN *col, struct _drecord *drec, SQLINTEGER odbc_ver)
#define SET_INFO(type, prefix, suffix)
#define SET_INFO2(type, prefix, suffix, len)
#define TDS_DEFINE_FUNCS(name)
static void data_generic_set_type_info(TDSCOLUMN *col, struct _drecord *drec, SQLINTEGER odbc_ver)
static void data_msdatetime_set_type_info(TDSCOLUMN *col, struct _drecord *drec, SQLINTEGER odbc_ver)
static void data_numeric_set_type_info(TDSCOLUMN *col, struct _drecord *drec, SQLINTEGER odbc_ver)
#define SQL_SS_TIMESTAMPOFFSET
struct tagSS_TIME2_STRUCT SQL_SS_TIME2_STRUCT
#define SQL_SS_LENGTH_UNLIMITED
struct tagSS_TIMESTAMPOFFSET_STRUCT SQL_SS_TIMESTAMPOFFSET_STRUCT
#define SYBMSDATETIMEOFFSET
#define tds_get_conversion_type
#define SQL_TYPE_TIMESTAMP
#define SQL_CODE_TIMESTAMP
#define SQL_LONGVARBINARY
struct tagDATE_STRUCT DATE_STRUCT
struct tagTIMESTAMP_STRUCT TIMESTAMP_STRUCT
SQLINTEGER sql_desc_num_prec_radix
SQLINTEGER sql_desc_display_size
SQLINTEGER sql_desc_octet_length
SQLSMALLINT sql_desc_unsigned
SQLUINTEGER sql_desc_length
SQLSMALLINT sql_desc_scale
SQLSMALLINT sql_desc_precision
SQLSMALLINT sql_desc_datetime_interval_code
SQLSMALLINT sql_desc_type
SQLSMALLINT sql_desc_concise_type
Metadata about columns in regular and compute rows.
TDS_INT column_size
maximun size of data.
const TDSCOLUMNFUNCS * funcs
TDS_TINYINT column_prec
precision for decimal/numeric
TDS_SERVER_TYPE column_type
This type can be different from wire type because conversion (e.g.
TDS_TINYINT column_scale
scale for decimal/numeric
struct tds_column::@124 on_server
static const char * type_name(CS_INT value)