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

📄 ct.c

📁 ncbi源码
💻 C
📖 第 1 页 / 共 3 页
字号:
CS_RETCODE ct_compute_info(CS_COMMAND *cmd, CS_INT type, CS_INT colnum, CS_VOID *buffer, CS_INT buflen, CS_INT *outlen){	tdsdump_log(TDS_DBG_FUNC, "%L inside ct_compute_info()\n");	return CS_SUCCEED;}CS_RETCODE ct_get_data(CS_COMMAND *cmd, CS_INT item, CS_VOID *buffer, CS_INT buflen, CS_INT *outlen){	tdsdump_log(TDS_DBG_FUNC, "%L inside ct_get_data()\n");	return CS_SUCCEED;}CS_RETCODE ct_send_data(CS_COMMAND *cmd, CS_VOID *buffer, CS_INT buflen){	tdsdump_log(TDS_DBG_FUNC, "%L inside ct_send_data()\n");	return CS_SUCCEED;}CS_RETCODE ct_data_info(CS_COMMAND *cmd, CS_INT action, CS_INT colnum,CS_IODESC *iodesc){	tdsdump_log(TDS_DBG_FUNC, "%L inside ct_data_info()\n");	return CS_SUCCEED;}CS_RETCODE ct_capability(CS_CONNECTION *con, CS_INT action, CS_INT type, CS_INT capability, CS_VOID *value){TDSLOGIN *login;unsigned char *mask;		tdsdump_log(TDS_DBG_FUNC, "%L inside ct_capability()\n");	login = (TDSLOGIN *) con->tds_login;	mask = login->capabilities;	if (action==CS_SET && type==CS_CAP_RESPONSE) {		if (*((CS_BOOL *)value)==CS_TRUE) {			switch(capability) {			case CS_DATA_NOBOUNDARY:				mask[13]|=0x01;break;			case CS_DATA_NOTDSDEBUG:				mask[13]|=0x02;break;			case CS_RES_NOSTRIPBLANKS:				mask[13]|=0x04;break;			case CS_DATA_NOINT8:				mask[13]|=0x08;break;			case CS_DATA_NOINTN:				mask[14]|=0x01;break;			case CS_DATA_NODATETIMEN:				mask[14]|=0x02;break;			case CS_DATA_NOMONEYN:				mask[14]|=0x04;break;			case CS_CON_NOOOB:				mask[14]|=0x08;break;			case CS_CON_NOINBAND:				mask[14]|=0x10;break;			case CS_PROTO_NOTEXT:				mask[14]|=0x20;break;			case CS_PROTO_NOBULK:				mask[14]|=0x40;break;			case CS_DATA_NOSENSITIVITY:				mask[14]|=0x80;break;			case CS_DATA_NOFLT4:				mask[15]|=0x01;break;			case CS_DATA_NOFLT8:				mask[15]|=0x02;break;			case CS_DATA_NONUM:				mask[15]|=0x04;break;			case CS_DATA_NOTEXT:				mask[15]|=0x08;break;			case CS_DATA_NOIMAGE:				mask[15]|=0x10;break;			case CS_DATA_NODEC:				mask[15]|=0x20;break;			case CS_DATA_NOLCHAR:				mask[15]|=0x40;break;			case CS_DATA_NOLBIN:				mask[15]|=0x80;break;			case CS_DATA_NOCHAR:				mask[16]|=0x01;break;			case CS_DATA_NOVCHAR:				mask[16]|=0x02;break;			case CS_DATA_NOBIN:				mask[16]|=0x04;break;			case CS_DATA_NOVBIN:				mask[16]|=0x08;break;			case CS_DATA_NOMNY8:				mask[16]|=0x10;break;			case CS_DATA_NOMNY4:				mask[16]|=0x20;break;			case CS_DATA_NODATE8:				mask[16]|=0x40;break;			case CS_DATA_NODATE4:				mask[16]|=0x80;break;			case CS_RES_NOMSG:				mask[17]|=0x02;break;			case CS_RES_NOEED:				mask[17]|=0x04;break;			case CS_RES_NOPARAM:				mask[17]|=0x08;break;			case CS_DATA_NOINT1:				mask[17]|=0x10;break;			case CS_DATA_NOINT2:				mask[17]|=0x20;break;			case CS_DATA_NOINT4:				mask[17]|=0x40;break;			case CS_DATA_NOBIT:				mask[17]|=0x80;break;			}		} else {			switch(capability) {			case CS_DATA_NOBOUNDARY:				mask[13]&=(!0x01);break;			case CS_DATA_NOTDSDEBUG:				mask[13]&=(!0x02);break;			case CS_RES_NOSTRIPBLANKS:				mask[13]&=(!0x04);break;			case CS_DATA_NOINT8:				mask[13]&=(!0x08);break;			case CS_DATA_NOINTN:				mask[14]&=(!0x01);break;			case CS_DATA_NODATETIMEN:				mask[14]&=(!0x02);break;			case CS_DATA_NOMONEYN:				mask[14]&=(!0x04);break;			case CS_CON_NOOOB:				mask[14]&=(!0x08);break;			case CS_CON_NOINBAND:				mask[14]&=(!0x10);break;			case CS_PROTO_NOTEXT:				mask[14]&=(!0x20);break;			case CS_PROTO_NOBULK:				mask[14]&=(!0x40);break;			case CS_DATA_NOSENSITIVITY:				mask[14]&=(!0x80);break;			case CS_DATA_NOFLT4:				mask[15]&=(!0x01);break;			case CS_DATA_NOFLT8:				mask[15]&=(!0x02);break;			case CS_DATA_NONUM:				mask[15]&=(!0x04);break;			case CS_DATA_NOTEXT:				mask[15]&=(!0x08);break;			case CS_DATA_NOIMAGE:				mask[15]&=(!0x10);break;			case CS_DATA_NODEC:				mask[15]&=(!0x20);break;			case CS_DATA_NOLCHAR:				mask[15]&=(!0x40);break;			case CS_DATA_NOLBIN:				mask[15]&=(!0x80);break;			case CS_DATA_NOCHAR:				mask[16]&=(!0x01);break;			case CS_DATA_NOVCHAR:				mask[16]&=(!0x02);break;			case CS_DATA_NOBIN:				mask[16]&=(!0x04);break;			case CS_DATA_NOVBIN:				mask[16]&=(!0x08);break;			case CS_DATA_NOMNY8:				mask[16]&=(!0x10);break;			case CS_DATA_NOMNY4:				mask[16]&=(!0x20);break;			case CS_DATA_NODATE8:				mask[16]&=(!0x40);break;			case CS_DATA_NODATE4:				mask[16]&=(!0x80);break;			case CS_RES_NOMSG:				mask[17]&=(!0x02);break;			case CS_RES_NOEED:				mask[17]&=(!0x04);break;			case CS_RES_NOPARAM:				mask[17]&=(!0x08);break;			case CS_DATA_NOINT1:				mask[17]&=(!0x10);break;			case CS_DATA_NOINT2:				mask[17]&=(!0x20);break;			case CS_DATA_NOINT4:				mask[17]&=(!0x40);break;			case CS_DATA_NOBIT:				mask[17]&=(!0x80);break;			}		}	} else if (action==CS_GET && type==CS_CAP_RESPONSE) {		switch (capability) {		case CS_DATA_NOBOUNDARY:			*((CS_BOOL *)value)=mask[13]&0x01 ? CS_TRUE : CS_FALSE;break;		case CS_DATA_NOTDSDEBUG:			*((CS_BOOL *)value)=mask[13]&0x02 ? CS_TRUE : CS_FALSE;break;		case CS_RES_NOSTRIPBLANKS:			*((CS_BOOL *)value)=mask[13]&0x04 ? CS_TRUE : CS_FALSE;break;		case CS_DATA_NOINT8:			*((CS_BOOL *)value)=mask[13]&0x08 ? CS_TRUE : CS_FALSE;break;		case CS_DATA_NOINTN:			*((CS_BOOL *)value)=mask[14]&0x01 ? CS_TRUE : CS_FALSE;break;		case CS_DATA_NODATETIMEN:			*((CS_BOOL *)value)=mask[14]&0x02 ? CS_TRUE : CS_FALSE;break;		case CS_DATA_NOMONEYN:			*((CS_BOOL *)value)=mask[14]&0x04 ? CS_TRUE : CS_FALSE;break;		case CS_CON_NOOOB:			*((CS_BOOL *)value)=mask[14]&0x08 ? CS_TRUE : CS_FALSE;break;		case CS_CON_NOINBAND:			*((CS_BOOL *)value)=mask[14]&0x10 ? CS_TRUE : CS_FALSE;break;		case CS_PROTO_NOTEXT:			*((CS_BOOL *)value)=mask[14]&0x20 ? CS_TRUE : CS_FALSE;break;		case CS_PROTO_NOBULK:			*((CS_BOOL *)value)=mask[14]&0x40 ? CS_TRUE : CS_FALSE;break;		case CS_DATA_NOSENSITIVITY:			*((CS_BOOL *)value)=mask[14]&0x80 ? CS_TRUE : CS_FALSE;break;		case CS_DATA_NOFLT4:			*((CS_BOOL *)value)=mask[15]&0x01 ? CS_TRUE : CS_FALSE;break;		case CS_DATA_NOFLT8:			*((CS_BOOL *)value)=mask[15]&0x02 ? CS_TRUE : CS_FALSE;break;		case CS_DATA_NONUM:			*((CS_BOOL *)value)=mask[15]&0x04 ? CS_TRUE : CS_FALSE;break;		case CS_DATA_NOTEXT:			*((CS_BOOL *)value)=mask[15]&0x08 ? CS_TRUE : CS_FALSE;break;		case CS_DATA_NOIMAGE:			*((CS_BOOL *)value)=mask[15]&0x10 ? CS_TRUE : CS_FALSE;break;		case CS_DATA_NODEC:			*((CS_BOOL *)value)=mask[15]&0x20 ? CS_TRUE : CS_FALSE;break;		case CS_DATA_NOLCHAR:			*((CS_BOOL *)value)=mask[15]&0x40 ? CS_TRUE : CS_FALSE;break;		case CS_DATA_NOLBIN:			*((CS_BOOL *)value)=mask[15]&0x80 ? CS_TRUE : CS_FALSE;break;		case CS_DATA_NOCHAR:			*((CS_BOOL *)value)=mask[16]&0x01 ? CS_TRUE : CS_FALSE;break;		case CS_DATA_NOVCHAR:			*((CS_BOOL *)value)=mask[16]&0x02 ? CS_TRUE : CS_FALSE;break;		case CS_DATA_NOBIN:			*((CS_BOOL *)value)=mask[16]&0x04 ? CS_TRUE : CS_FALSE;break;		case CS_DATA_NOVBIN:			*((CS_BOOL *)value)=mask[16]&0x08 ? CS_TRUE : CS_FALSE;break;		case CS_DATA_NOMNY8:			*((CS_BOOL *)value)=mask[16]&0x10 ? CS_TRUE : CS_FALSE;break;		case CS_DATA_NOMNY4:			*((CS_BOOL *)value)=mask[16]&0x20 ? CS_TRUE : CS_FALSE;break;		case CS_DATA_NODATE8:			*((CS_BOOL *)value)=mask[16]&0x40 ? CS_TRUE : CS_FALSE;break;		case CS_DATA_NODATE4:			*((CS_BOOL *)value)=mask[16]&0x80 ? CS_TRUE : CS_FALSE;break;		case CS_RES_NOMSG:			*((CS_BOOL *)value)=mask[17]&0x02 ? CS_TRUE : CS_FALSE;break;		case CS_RES_NOEED:			*((CS_BOOL *)value)=mask[17]&0x04 ? CS_TRUE : CS_FALSE;break;		case CS_RES_NOPARAM:			*((CS_BOOL *)value)=mask[17]&0x08 ? CS_TRUE : CS_FALSE;break;		case CS_DATA_NOINT1:			*((CS_BOOL *)value)=mask[17]&0x10 ? CS_TRUE : CS_FALSE;break;		case CS_DATA_NOINT2:			*((CS_BOOL *)value)=mask[17]&0x20 ? CS_TRUE : CS_FALSE;break;		case CS_DATA_NOINT4:			*((CS_BOOL *)value)=mask[17]&0x40 ? CS_TRUE : CS_FALSE;break;		case CS_DATA_NOBIT:			*((CS_BOOL *)value)=mask[17]&0x80 ? CS_TRUE : CS_FALSE;break;		}	} else if (action==CS_GET && type==CS_CAP_REQUEST) {		switch (capability) {		case CS_PROTO_DYNPROC:			*((CS_BOOL *)value)=mask[2]&0x01 ? CS_TRUE : CS_FALSE;break;		case CS_DATA_FLTN:			*((CS_BOOL *)value)=mask[2]&0x02 ? CS_TRUE : CS_FALSE;break;		case CS_DATA_BITN:			*((CS_BOOL *)value)=mask[2]&0x04 ? CS_TRUE : CS_FALSE;break;		case CS_DATA_INT8:			*((CS_BOOL *)value)=mask[2]&0x08 ? CS_TRUE : CS_FALSE;break;		case CS_DATA_VOID:			*((CS_BOOL *)value)=mask[2]&0x10 ? CS_TRUE : CS_FALSE;break;		case CS_CON_INBAND:			*((CS_BOOL *)value)=mask[3]&0x01 ? CS_TRUE : CS_FALSE;break;		case CS_CON_LOGICAL:			*((CS_BOOL *)value)=mask[3]&0x02 ? CS_TRUE : CS_FALSE;break;		case CS_PROTO_TEXT:			*((CS_BOOL *)value)=mask[3]&0x04 ? CS_TRUE : CS_FALSE;break;		case CS_PROTO_BULK:			*((CS_BOOL *)value)=mask[3]&0x08 ? CS_TRUE : CS_FALSE;break;		case CS_REQ_URGNOTIF:			*((CS_BOOL *)value)=mask[3]&0x10 ? CS_TRUE : CS_FALSE;break;		case CS_DATA_SENSITIVITY:			*((CS_BOOL *)value)=mask[3]&0x20 ? CS_TRUE : CS_FALSE;break;		case CS_DATA_BOUNDARY:			*((CS_BOOL *)value)=mask[3]&0x40 ? CS_TRUE : CS_FALSE;break;		case CS_PROTO_DYNAMIC:			*((CS_BOOL *)value)=mask[3]&0x80 ? CS_TRUE : CS_FALSE;break;		case CS_DATA_MONEYN:			*((CS_BOOL *)value)=mask[4]&0x01 ? CS_TRUE : CS_FALSE;break;		case CS_CSR_PREV:			*((CS_BOOL *)value)=mask[4]&0x02 ? CS_TRUE : CS_FALSE;break;		case CS_CSR_FIRST:			*((CS_BOOL *)value)=mask[4]&0x04 ? CS_TRUE : CS_FALSE;break;		case CS_CSR_LAST:			*((CS_BOOL *)value)=mask[4]&0x08 ? CS_TRUE : CS_FALSE;break;		case CS_CSR_ABS:			*((CS_BOOL *)value)=mask[4]&0x10 ? CS_TRUE : CS_FALSE;break;		case CS_CSR_REL:			*((CS_BOOL *)value)=mask[4]&0x20 ? CS_TRUE : CS_FALSE;break;		case CS_CSR_MULTI:			*((CS_BOOL *)value)=mask[4]&0x40 ? CS_TRUE : CS_FALSE;break;		case CS_CON_OOB:			*((CS_BOOL *)value)=mask[4]&0x80 ? CS_TRUE : CS_FALSE;break;		case CS_DATA_NUM:			*((CS_BOOL *)value)=mask[5]&0x01 ? CS_TRUE : CS_FALSE;break;		case CS_DATA_TEXT:			*((CS_BOOL *)value)=mask[5]&0x02 ? CS_TRUE : CS_FALSE;break;		case CS_DATA_IMAGE:			*((CS_BOOL *)value)=mask[5]&0x04 ? CS_TRUE : CS_FALSE;break;		case CS_DATA_DEC:			*((CS_BOOL *)value)=mask[5]&0x08 ? CS_TRUE : CS_FALSE;break;		case CS_DATA_LCHAR:			*((CS_BOOL *)value)=mask[5]&0x10 ? CS_TRUE : CS_FALSE;break;		case CS_DATA_LBIN:			*((CS_BOOL *)value)=mask[5]&0x20 ? CS_TRUE : CS_FALSE;break;		case CS_DATA_INTN:			*((CS_BOOL *)value)=mask[5]&0x40 ? CS_TRUE : CS_FALSE;break;		case CS_DATA_DATETIMEN:			*((CS_BOOL *)value)=mask[5]&0x80 ? CS_TRUE : CS_FALSE;break;		case CS_DATA_BIN:			*((CS_BOOL *)value)=mask[6]&0x01 ? CS_TRUE : CS_FALSE;break;		case CS_DATA_VBIN:			*((CS_BOOL *)value)=mask[6]&0x02 ? CS_TRUE : CS_FALSE;break;		case CS_DATA_MNY8:			*((CS_BOOL *)value)=mask[6]&0x04 ? CS_TRUE : CS_FALSE;break;		case CS_DATA_MNY4:			*((CS_BOOL *)value)=mask[6]&0x08 ? CS_TRUE : CS_FALSE;break;		case CS_DATA_DATE8:			*((CS_BOOL *)value)=mask[6]&0x10 ? CS_TRUE : CS_FALSE;break;		case CS_DATA_DATE4:			*((CS_BOOL *)value)=mask[6]&0x20 ? CS_TRUE : CS_FALSE;break;		case CS_DATA_FLT4:			*((CS_BOOL *)value)=mask[6]&0x40 ? CS_TRUE : CS_FALSE;break;		case CS_DATA_FLT8:			*((CS_BOOL *)value)=mask[6]&0x80 ? CS_TRUE : CS_FALSE;break;		case CS_REQ_MSG:			*((CS_BOOL *)value)=mask[7]&0x01 ? CS_TRUE : CS_FALSE;break;		case CS_REQ_PARAM:			*((CS_BOOL *)value)=mask[7]&0x02 ? CS_TRUE : CS_FALSE;break;		case CS_DATA_INT1:			*((CS_BOOL *)value)=mask[7]&0x04 ? CS_TRUE : CS_FALSE;break;		case CS_DATA_INT2:			*((CS_BOOL *)value)=mask[7]&0x08 ? CS_TRUE : CS_FALSE;break;		case CS_DATA_INT4:			*((CS_BOOL *)value)=mask[7]&0x10 ? CS_TRUE : CS_FALSE;break;		case CS_DATA_BIT:			*((CS_BOOL *)value)=mask[7]&0x20 ? CS_TRUE : CS_FALSE;break;		case CS_DATA_CHAR:			*((CS_BOOL *)value)=mask[7]&0x40 ? CS_TRUE : CS_FALSE;break;		case CS_DATA_VCHAR:			*((CS_BOOL *)value)=mask[7]&0x80 ? CS_TRUE : CS_FALSE;break;		case CS_REQ_LANG:			*((CS_BOOL *)value)=mask[8]&0x02 ? CS_TRUE : CS_FALSE;break;		case CS_REQ_RPC:			*((CS_BOOL *)value)=mask[8]&0x04 ? CS_TRUE : CS_FALSE;break;		case CS_REQ_NOTIF:			*((CS_BOOL *)value)=mask[8]&0x08 ? CS_TRUE : CS_FALSE;break;		case CS_REQ_MSTMT:			*((CS_BOOL *)value)=mask[8]&0x10 ? CS_TRUE : CS_FALSE;break;		case CS_REQ_BCP:			*((CS_BOOL *)value)=mask[8]&0x20 ? CS_TRUE : CS_FALSE;break;		case CS_REQ_CURSOR:			*((CS_BOOL *)value)=mask[8]&0x40 ? CS_TRUE : CS_FALSE;break;		case CS_REQ_DYN:			*((CS_BOOL *)value)=mask[8]&0x80 ? CS_TRUE : CS_FALSE;break;			/* *((CS_BOOL *)value)=CS_FALSE; */		}	} else {		/* bad values */		return CS_FAIL;	}	return CS_SUCCEED;}CS_RETCODE ct_dynamic(CS_COMMAND *cmd, CS_INT type, CS_CHAR *id, CS_INT idlen, CS_CHAR *buffer, CS_INT buflen){static int stmt_no=1;int query_len, id_len;TDSDYNAMIC *dyn;TDSSOCKET *tds;int elem;	cmd->dynamic_cmd=type;	switch(type) {		case CS_PREPARE:			/* store away the id */		     if (idlen==CS_NULLTERM) {				id_len = strlen(id);        		} else {				id_len = idlen;			}			if (cmd->dyn_id) free(cmd->dyn_id);			cmd->dyn_id = (char *) malloc(id_len + 1);			strncpy(cmd->dyn_id,(char *)id,id_len);			cmd->dyn_id[id_len]='\0';			/* now the query */		        if (buflen==CS_NULLTERM) {				query_len = strlen(buffer);        		} else {				query_len = buflen;			}			if (cmd->query) free(cmd->query);			cmd->query = (char *) malloc(query_len + 1);			strncpy(cmd->query,(char *)buffer,query_len);			cmd->query[query_len]='\0';			break;		case CS_DEALLOC:			break;		case CS_DESCRIBE_INPUT:			break;		case CS_EXECUTE:			/* store away the id */		     if (idlen==CS_NULLTERM) {				id_len = strlen(id);        		} else {				id_len = idlen;			}			if (cmd->dyn_id) free(cmd->dyn_id);			cmd->dyn_id = (char *) malloc(id_len + 1);			strncpy(cmd->dyn_id,(char *)id,id_len);			cmd->dyn_id[id_len]='\0';			/* free any input parameters */			tds = cmd->con->tds_socket;			elem = tds_lookup_dynamic(tds, cmd->dyn_id);			dyn = tds->dyns[elem];			break;	}	tdsdump_log(TDS_DBG_FUNC, "%L inside ct_dynamic()\n");	return CS_SUCCEED;}CS_RETCODE ct_param(CS_COMMAND *cmd, CS_DATAFMT *datafmt, CS_VOID *data, CS_INT datalen, CS_SMALLINT indicator){TDSSOCKET *tds;TDSDYNAMIC *dyn;TDSINPUTPARAM *param;int elem;	tdsdump_log(TDS_DBG_FUNC, "%L inside ct_param()\n");	tdsdump_log(TDS_DBG_INFO1, "%L ct_param() data addr = %d data length = %d\n", data, datalen);	tds = cmd->con->tds_socket;	elem = tds_lookup_dynamic(tds, cmd->dyn_id);	dyn = tds->dyns[elem];	param = tds_add_input_param(dyn);	param->column_type = _ct_get_server_type(datafmt->datatype);	param->varaddr = data;	if (datalen==CS_NULLTERM) {		param->column_bindlen = 0;	} else {		param->column_bindlen = datalen;	}	param->is_null = indicator;	return CS_SUCCEED;}CS_RETCODE ct_options(CS_CONNECTION *con, CS_INT action, CS_INT option, CS_VOID *param, CS_INT paramlen, CS_INT *outlen){	tdsdump_log(TDS_DBG_FUNC, "%L inside ct_options() action = %s option = %d\n",		CS_GET ? "CS_GET" : "CS_SET", option);	return CS_SUCCEED;}

⌨️ 快捷键说明

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