20#ifndef _tdsguard_gH4tOYBTzynx4DgqFzOEbB_
21#define _tdsguard_gH4tOYBTzynx4DgqFzOEbB_
24#include <freetds/tds/convert.h>
25#include <freetds/utils/string.h>
26#include <freetds/bool.h>
32#include <freetds/pushvis.h>
50 bool cs_expose_formats;
51 bool cs_note_empty_data;
62 CS_CLIENTMSG clientmsg;
69 CS_CHAR text[CS_MAX_MSG];
77 CS_BYTE sqlstate[CS_SQLSTATE_SIZE];
85 CS_CHAR text[CS_MAX_MSG];
93 CS_BYTE sqlstate[CS_SQLSTATE_SIZE];
101 CS_CHAR text[CS_MAX_MSG];
108 CS_BYTE sqlstate[CS_SQLSTATE_SIZE];
136 CS_INT date_convert_fmt;
137 CS_INT cs_errhandletype;
138 CS_INT cs_diag_msglimit;
143 CS_INT cs_diag_msglimit_client;
144 CS_INT cs_diag_msglimit_server;
145 CS_INT cs_diag_msglimit_total;
152 CS_CSLIBMSG_FUNC cslibmsg_cb;
153 CS_CLIENTMSG_FUNC clientmsg_cb;
154 CS_SERVERMSG_FUNC servermsg_cb;
155 CS_INTERRUPT_FUNC interrupt_cb;
172static inline size_t cs_servermsg_len(CS_CONTEXT *ctx)
184 TDS_SMALLINT *indicator;
194 TDSSOCKET *tds_socket;
195 CS_CLIENTMSG_FUNC clientmsg_cb;
196 CS_SERVERMSG_FUNC servermsg_cb;
197 CS_INTERRUPT_FUNC interrupt_cb;
225 CS_INT datalen_value;
226 CS_SMALLINT indicator_value;
234typedef CS_PARAM CSREMOTE_PROC_PARAM;
240 CSREMOTE_PROC_PARAM *param_list;
248typedef CS_PARAM CS_DYNAMIC_PARAM;
255 CS_DYNAMIC_PARAM *param_list;
260#define CS_DYNAMIC_CMD 160
261#define CS_CUR_CMD 161
265#define _CS_RES_NONE -1
266#define _CS_RES_INIT 0
267#define _CS_RES_RESULTSET_EMPTY 1
268#define _CS_RES_RESULTSET_ROWS 2
269#define _CS_RES_STATUS 3
270#define _CS_RES_CMD_DONE 4
271#define _CS_RES_CMD_SUCCEED 5
272#define _CS_RES_END_RESULTS 6
273#define _CS_RES_DESCRIBE_RESULT 7
277#define _CS_COMMAND_IDLE 0
278#define _CS_COMMAND_BUILDING 1
279#define _CS_COMMAND_READY 2
280#define _CS_COMMAND_SENT 3
283#define _CS_CANCEL_NOCANCEL 0
284#define _CS_CANCEL_PENDING 1
289 CS_INT command_state;
290 CS_INT results_state;
299 int curr_result_type;
302 int get_data_bytes_returned;
304 CS_INT send_data_started;
306 CS_PARAM *input_params;
307 CS_INT client_cursor_id;
319#define _CS_ERRHAND_INLINE 1
320#define _CS_ERRHAND_CB 2
332#define _CS_CURS_TYPE_UNACTIONED TDS_CURSOR_STATE_UNACTIONED
333#define _CS_CURS_TYPE_REQUESTED TDS_CURSOR_STATE_REQUESTED
334#define _CS_CURS_TYPE_SENT TDS_CURSOR_STATE_SENT
383#if ENABLE_EXTRA_CHECKS
384#define CS_QUERY_HAS_FOR_UPDATE 9500
390TDSRET _ct_handle_server_message(
const TDSCONTEXT * ctxptr, TDSSOCKET * tdsptr, TDSMESSAGE * msgptr);
391int _ct_handle_client_message(
const TDSCONTEXT * ctxptr, TDSSOCKET * tdsptr, TDSMESSAGE * msgptr);
392int _ct_handle_interrupt(
void * ptr);
393TDS_SERVER_TYPE _ct_get_server_type(TDSSOCKET *tds,
int datatype);
394int _ct_bind_data(CS_CONTEXT *ctx, TDSRESULTINFO * resinfo, TDSRESULTINFO *bindinfo, CS_INT offset);
395int _ct_get_client_type(
const TDSCOLUMN *col,
bool describe);
396void _ctclient_msg(CS_CONTEXT *ctx, CS_CONNECTION * con,
const char *funcname,
397 int layer,
int origin,
int severity,
int number,
398 const char *fmt, ...);
399CS_INT _ct_diag_clearmsg(CS_CONTEXT * context, CS_INT type);
400void _cs_locale_free(CS_LOCALE *locale);
401CS_LOCALE *_cs_locale_copy(CS_LOCALE *orig);
402int _cs_locale_copy_inplace(CS_LOCALE *new_locale, CS_LOCALE *orig);
403CS_INT _ct_get_string_length(
const char *buf, CS_INT buflen);
405int _cs_convert_not_client(CS_CONTEXT *ctx,
const TDSCOLUMN *curcol, CONV_RESULT *convert_buffer,
unsigned char **p_src);
407TDS_INT _cs_cs2tds(CS_CONTEXT * ctx,
const CS_DATAFMT_COMMON * srcfmt,
const void *srcdata,
int desttype, CONV_RESULT * cres);
408CS_RETCODE _cs_convert(CS_CONTEXT * ctx,
const CS_DATAFMT_COMMON * srcfmt, CS_VOID * srcdata,
410bool _ct_is_large_identifiers_version(CS_INT version);
411const CS_DATAFMT_COMMON * _ct_datafmt_common(CS_CONTEXT * ctx,
const CS_DATAFMT * datafmt);
416CS_RETCODE _ct_props_dstr(CS_CONNECTION * con,
DSTR *s, CS_INT action, CS_VOID * buffer, CS_INT buflen, CS_INT * outlen);
425#include <freetds/popvis.h>
Main include file for libtds.
struct tds_dynamic TDSDYNAMIC
Holds information for a dynamic (also called prepared) query.
struct tds_cursor TDSCURSOR
Holds information about a cursor.
struct tds_dstr * DSTR
Structure to hold a string.
int login_timeout
not used unless positive
Definition ctlib.h:162
bool use_large_identifiers
structures uses large identifiers
Definition ctlib.h:166
int query_timeout
not used unless positive
Definition ctlib.h:163
CS_INT version
version passed to cs_ctx_alloc/ct_init (CS_VERSION_xxx)
Definition ctlib.h:169