⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 tds.h

📁 ncbi源码
💻 H
📖 第 1 页 / 共 2 页
字号:
#define TDS_STR_CLCHARSET	"client charset"#define TDS_STR_LANGUAGE	"language"#define TDS_STR_APPENDMODE	"dump file append"#define TDS_STR_DATEFMT	"date format"#define TDS_MAX_LOGIN_STR_SZ 30#define TDS_MAX_LIBRARY_STR_SZ 11typedef struct tds_login {	TDS_CHAR  host_name[TDS_MAX_LOGIN_STR_SZ+1];	TDS_CHAR  user_name[TDS_MAX_LOGIN_STR_SZ+1];	/* FIXME temporary fix, 40 pwd max len */	TDS_CHAR  password[40+1];	TDS_TINYINT bulk_copy; 	TDS_CHAR  app_name[TDS_MAX_LOGIN_STR_SZ+1];	TDS_CHAR  server_name[TDS_MAX_LOGIN_STR_SZ+1];	TDS_TINYINT  major_version; /* TDS version */	TDS_TINYINT  minor_version; /* TDS version */	/* Ct-Library, DB-Library,  TDS-Library or ODBC */	TDS_CHAR  library[TDS_MAX_LIBRARY_STR_SZ+1];	TDS_CHAR language[TDS_MAX_LOGIN_STR_SZ+1]; /* ie us-english */	TDS_TINYINT encrypted; 	TDS_CHAR char_set[TDS_MAX_LOGIN_STR_SZ+1]; /*  ie iso_1 */	TDS_SMALLINT block_size; 	TDS_TINYINT suppress_language;     TDS_INT connect_timeout;     TDS_INT query_timeout;     TDS_INT longquery_timeout;     void (*longquery_func)(long lHint);     long longquery_param;	unsigned char capabilities[TDS_MAX_CAPABILITY];	int port;} TDSLOGIN;#ifdef NCBI_FTDS#define NCBI_NUM_SERVERS 8#endiftypedef struct tds_config_info {        char *server_name;        char *host;#ifdef NCBI_FTDS        char *ip_addr[NCBI_NUM_SERVERS];        int port[NCBI_NUM_SERVERS];#else        char *ip_addr;        int port;#endif        TDS_SMALLINT minor_version;        TDS_SMALLINT major_version;        int block_size;        char *language;        char *char_set;        char *database;        char *dump_file;        int broken_dates;        int broken_money;        int timeout;        int connect_timeout;        char *host_name;        char *default_domain;        int try_server_login;        int try_domain_login;        int xdomain_auth;        int debug_level;        int emul_little_endian;        int text_size;        char *app_name;        char *user_name;        char *password;        char *library;        int bulk_copy;	   int suppress_language;	   int encrypted;        char *client_charset;} TDSCONFIGINFO;typedef struct tds_loc_info {        char *language;        char *char_set;        char *date_fmt;} TDSLOCINFO;/* structure for storing data about regular and compute rows */ typedef struct tds_column_info {	TDS_SMALLINT column_type;	TDS_SMALLINT column_type_save;	TDS_SMALLINT column_usertype;	TDS_SMALLINT column_flags;	TDS_INT column_size;	TDS_INT column_offset;	TDS_TINYINT column_namelen;	TDS_TINYINT column_varint_size;#ifdef NCBI_FTDS    TDS_CHAR column_name[140];     TDS_CHAR full_column_name[140];#else   TDS_CHAR column_name[256];#endif	TDS_SMALLINT column_bindtype;	TDS_SMALLINT column_bindfmt;	TDS_UINT column_bindlen;	TDS_CHAR *column_nullbind;	TDS_CHAR *varaddr;	TDS_CHAR *column_lenbind;	TDS_SMALLINT column_prec;	TDS_SMALLINT column_scale;	TDS_INT column_textsize;	TDS_INT column_textpos;	TDS_INT column_text_sqlgetdatapos;	TDS_CHAR column_textptr[16];	TDS_CHAR column_timestamp[8];	TDS_CHAR *column_textvalue;	TDS_TINYINT column_nullable;	TDS_TINYINT column_writeable;	TDS_TINYINT column_identity;	TDS_TINYINT column_unicodedata;    TDS_CHAR    collation[5];	TDS_INT cur_row_size; /* size of this column in the current row */} TDSCOLINFO;typedef struct tds_result_info {	TDS_SMALLINT  rows_exist;	TDS_INT       row_count;	TDS_INT       row_size;	TDS_SMALLINT  num_cols;	TDS_TINYINT   more_results;	TDSCOLINFO    **columns;	int           null_info_size;	unsigned char *current_row;} TDSRESULTINFO;/* values for tds->state */enum {	TDS_QUERYING,	TDS_PENDING,	TDS_COMPLETED,	TDS_CANCELED,	TDS_DEAD};#define TDS_DBG_FUNC    7  #define TDS_DBG_INFO2   6#define TDS_DBG_INFO1   5#define TDS_DBG_NETWORK 4#define TDS_DBG_WARN    3#define TDS_DBG_ERROR   2#define TDS_DBG_SEVERE  1typedef struct tds_compute_info {        TDS_SMALLINT num_cols;	TDS_INT row_size;        TDSCOLINFO **columns;	int           null_info_size;	unsigned char *current_row;} TDSCOMPUTEINFO;typedef struct tds_param_info {        TDS_SMALLINT num_cols;	TDS_INT row_size;        TDSCOLINFO **columns;	int           null_info_size;	unsigned char *current_row;} TDSPARAMINFO;typedef struct tds_input_param {	TDS_SMALLINT column_type;	TDS_CHAR *varaddr;	TDS_UINT column_bindlen;	TDS_CHAR is_null;} TDSINPUTPARAM;typedef struct tds_msg_info {      TDS_SMALLINT priv_msg_type;      TDS_SMALLINT line_number;      TDS_UINT msg_number;      TDS_SMALLINT msg_state;      TDS_SMALLINT msg_level;      TDS_CHAR *server;      TDS_CHAR *message;      TDS_CHAR *proc_name;      TDS_CHAR *sql_state;} TDSMSGINFO;#ifdef NCBI_FTDStypedef struct tds_blob_info {        TDS_CHAR *textvalue;        TDS_CHAR textptr[16];        TDS_CHAR timestamp[8];} TDSBLOBINFO;#endif/*** This is the current environment as reported by the server*/typedef struct tds_env_info {	int block_size;	char *language;	char *charset;	char *database;} TDSENVINFO;typedef struct tds_dynamic {	char id[30];	int dyn_state;	TDSRESULTINFO *res_info;	int num_params;	TDSINPUTPARAM **params;} TDSDYNAMIC;/* forward declaration */typedef struct tds_context TDSCONTEXT;typedef struct tds_socket  TDSSOCKET;struct tds_context {	TDSLOCINFO *locale;	void *parent;	/* handler */	int (*msg_handler)(TDSCONTEXT*, TDSSOCKET*, TDSMSGINFO*);	int (*err_handler)(TDSCONTEXT*, TDSSOCKET*, TDSMSGINFO*);};struct tds_socket {	/* fixed and connect time */        int s;	TDS_SMALLINT major_version;	TDS_SMALLINT minor_version;	unsigned char capabilities[TDS_MAX_CAPABILITY];	unsigned char broken_dates;	/* in/out buffers */	unsigned char *in_buf;	unsigned char *out_buf;	unsigned int in_buf_max;	unsigned in_pos;	unsigned out_pos;	unsigned in_len;	unsigned out_len;	unsigned char out_flag;	unsigned char last_packet;	void *parent;	/* info about current query */	TDSRESULTINFO *res_info;        TDSCOMPUTEINFO *comp_info;        TDSPARAMINFO *param_info;	TDS_TINYINT   has_status;	TDS_INT       ret_status;	TDSMSGINFO *msg_info;	TDS_TINYINT   state;	int rows_affected;	/* timeout stuff from Jeff */	TDS_INT timeout;	TDS_INT longquery_timeout;	void (*longquery_func)(long lHint);	long longquery_param;	time_t queryStarttime;	TDSENVINFO *env;	/* dynamic placeholder stuff */	int num_dyns;	int cur_dyn_elem;	TDSDYNAMIC **dyns;	int emul_little_endian;	char *date_fmt;	TDSCONTEXT *tds_ctx;	void *iconv_info;#ifdef NCBI_FTDS    /* bcp stuff */    int                packet_count;     int                f_batch;     int                rows_in_batch;#endif   	/** config for login stuff. After login this field is NULL */	TDSCONFIGINFO *config;};void tds_set_longquery_handler(TDSLOGIN * tds_login, void (* longquery_func)(long), long longquery_param);void tds_set_timeouts(TDSLOGIN *tds_login, int connect, int query, int longquery);int tds_write_packet(TDSSOCKET *tds,unsigned char final);int tds_init_write_buf(TDSSOCKET *tds);void tds_free_result_info(TDSRESULTINFO *info);void tds_free_socket(TDSSOCKET *tds);void tds_free_config(TDSCONFIGINFO *config);void tds_free_all_results(TDSSOCKET *tds);void tds_free_results(TDSRESULTINFO *res_info);void tds_free_param_results(TDSPARAMINFO *param_info);void tds_free_column(TDSCOLINFO *column);void tds_free_msg(TDSMSGINFO *msg_info);int tds_put_n(TDSSOCKET *tds, const unsigned char *buf, int n);int tds_put_string(TDSSOCKET *tds, const char *buf, int n);int tds_put_int(TDSSOCKET *tds, TDS_INT i);int tds_put_smallint(TDSSOCKET *tds, TDS_SMALLINT si);int tds_put_tinyint(TDSSOCKET *tds, TDS_TINYINT ti);int tds_put_byte(TDSSOCKET *tds, unsigned char c);unsigned char tds_get_byte(TDSSOCKET *tds);void tds_unget_byte(TDSSOCKET *tds);TDS_INT tds_get_int(TDSSOCKET *tds);TDS_SMALLINT tds_get_smallint(TDSSOCKET *tds);char *tds_get_n(TDSSOCKET *tds, void *dest, int n);char *tds_get_string(TDSSOCKET *tds, void *dest, int n);char *tds_get_ntstring(TDSSOCKET *tds, char *dest, int n);TDSRESULTINFO *tds_alloc_results(int num_cols);TDSCOMPUTEINFO *tds_alloc_compute_results(int num_cols);TDSCONTEXT *tds_alloc_context();void tds_free_context(TDSCONTEXT *locale);TDSSOCKET *tds_alloc_socket(TDSCONTEXT *context, int bufsize);TDSCONFIGINFO *tds_get_config(TDSSOCKET *tds, TDSLOGIN *login, TDSLOCINFO *locale);TDSLOCINFO *tds_get_locale();void *tds_alloc_row(TDSRESULTINFO *res_info);char *tds_msg_get_proc_name(TDSSOCKET *tds);TDSLOGIN *tds_alloc_login();TDSDYNAMIC *tds_alloc_dynamic(TDSSOCKET *tds, char *id);void tds_free_login(TDSLOGIN *login);TDSCONFIGINFO *tds_alloc_config(TDSLOCINFO *locale);TDSLOCINFO *tds_alloc_locale();void tds_free_locale(TDSLOCINFO *locale);TDSSOCKET *tds_connect(TDSLOGIN *login, TDSCONTEXT *context, void *parent);TDSINPUTPARAM *tds_add_input_param(TDSDYNAMIC *dyn);void tds_set_packet(TDSLOGIN *tds_login, short packet_size);void tds_set_port(TDSLOGIN *tds_login, int port);void tds_set_passwd(TDSLOGIN *tds_login, char *password);void tds_set_bulk(TDSLOGIN *tds_login, TDS_TINYINT enabled);void tds_set_user(TDSLOGIN *tds_login, char *username);void tds_set_app(TDSLOGIN *tds_login, char *application);void tds_set_host(TDSLOGIN *tds_login, char *hostname);void tds_set_library(TDSLOGIN *tds_login, char *library);void tds_set_server(TDSLOGIN *tds_login, char *server);void tds_set_charset(TDSLOGIN *tds_login, char *charset);void tds_set_language(TDSLOGIN *tds_login, char *language);void tds_set_version(TDSLOGIN *tds_login, short major_ver, short minor_ver);void tds_set_capabilities(TDSLOGIN *tds_login, unsigned char *capabilities, int size);int tds_submit_query(TDSSOCKET *tds, char *query);int tds_process_result_tokens(TDSSOCKET *tds);int tds_process_row_tokens(TDSSOCKET *tds);int tds_process_env_chg(TDSSOCKET *tds);int tds_process_default_tokens(TDSSOCKET *tds, int marker);TDS_INT tds_process_end(TDSSOCKET *tds, int marker, int *more, int *canceled);int tds_client_msg(TDSCONTEXT *tds_ctx, TDSSOCKET *tds, int msgnum, int level, int state, int line, char *message);int tds_reset_msg_info(TDSMSGINFO *msg_info);void  tds_set_parent(TDSSOCKET* tds, void* the_parent);void* tds_get_parent(TDSSOCKET* tds);void tds_set_null(unsigned char *current_row, int column);void tds_clr_null(unsigned char *current_row, int column);int tds_get_null(unsigned char *current_row, int column);int tds7_send_login(TDSSOCKET *tds, TDSCONFIGINFO *config);unsigned char *tds7_crypt_pass(const unsigned char *clear_pass, int len, unsigned char *crypt_pass);int tds_lookup_dynamic(TDSSOCKET *tds, char *id);/* iconv.c */void tds_iconv_open(TDSSOCKET *tds, char *charset);void tds_iconv_close(TDSSOCKET *tds);unsigned char *tds7_ascii2unicode(TDSSOCKET *tds, const char *in_string, char *out_string, int maxlen);char *tds7_unicode2ascii(TDSSOCKET *tds, const char *in_string, char *out_string, int len); /* threadsafe.c */char *tds_timestamp_str(char *str, int maxlen);struct hostent *tds_gethostbyname_r(const char *servername, struct hostent *result, char *buffer, int buflen, int *h_errnop);struct hostent *tds_gethostbyaddr_r(const char *addr, int len, int type, struct hostent *result, char *buffer, int buflen, int *h_errnop);struct servent *tds_getservbyname_r(const char *name, char *proto, struct servent *result, char *buffer, int buflen);char *tds_strtok_r(char *s, const char *delim, char **ptrptr);typedef struct tds_answer{	unsigned char lm_resp[24];	unsigned char nt_resp[24];} TDSANSWER;void tds_answer_challenge(char *passwd, char *challenge,TDSANSWER* answer);#define IS_TDS42(x) (x->major_version==4 && x->minor_version==2)#define IS_TDS46(x) (x->major_version==4 && x->minor_version==6)#define IS_TDS50(x) (x->major_version==5 && x->minor_version==0)#define IS_TDS70(x) (x->major_version==7 && x->minor_version==0)#define IS_TDS80(x) (x->major_version==8 && x->minor_version==0)#define IS_TDS7_PLUS(x) ( IS_TDS70(x) || IS_TDS80(x) )#ifdef __cplusplus}#endif #endif /* _tds_h_ */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -