亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? rpc_ct_setparam.c

?? 在Linux/Unix下面訪問WINDOWS SQLSERVER 的ODBC驅動程序
?? C
?? 第 1 頁 / 共 2 頁
字號:
#if HAVE_CONFIG_H#include <config.h>#endif /* HAVE_CONFIG_H */#include <stdio.h>#if HAVE_STDLIB_H#include <stdlib.h>#endif /* HAVE_STDLIB_H */#if HAVE_STRING_H#include <string.h>#endif /* HAVE_STRING_H */#include <ctpublic.h>#include "common.h"#define MAX(X,Y)      (((X) > (Y)) ? (X) : (Y))#define MIN(X,Y)      (((X) < (Y)) ? (X) : (Y))static char software_version[] = "$Id: rpc_ct_setparam.c,v 1.9 2006/12/29 19:00:33 freddy77 Exp $";static void *no_unused_var_warn[] = { software_version, no_unused_var_warn };CS_RETCODE ex_clientmsg_cb(CS_CONTEXT * context, CS_CONNECTION * connection, CS_CLIENTMSG * errmsg);CS_RETCODE ex_servermsg_cb(CS_CONTEXT * context, CS_CONNECTION * connection, CS_SERVERMSG * errmsg);static CS_RETCODE ex_display_header(CS_INT numcols, CS_DATAFMT columns[]);static CS_INT ex_display_dlen(CS_DATAFMT *column);static CS_INT ex_display_results(CS_COMMAND * cmd);typedef struct _ex_column_data{	CS_SMALLINT indicator;	CS_CHAR *value;	CS_INT valuelen;}EX_COLUMN_DATA;/* Testing: array binding of result set */intmain(int argc, char *argv[]){	CS_CONTEXT *ctx;	CS_CONNECTION *conn;	CS_COMMAND *cmd;	int verbose = 0;	CS_RETCODE ret;	CS_INT datalength;	CS_SMALLINT nullind;	CS_SMALLINT notnullind;	CS_CHAR cmdbuf[4096];	CS_DATAFMT datafmt;	CS_DATAFMT srcfmt;	CS_DATAFMT destfmt;	CS_INT intvar;	CS_SMALLINT smallintvar;	CS_FLOAT floatvar;	CS_MONEY moneyvar;	CS_BINARY binaryvar;	char moneystring[10];	char rpc_name[15];	CS_INT destlen;	fprintf(stdout, "%s: submit a stored procedure using ct_setparam \n", __FILE__);	if (verbose) {		fprintf(stdout, "Trying login\n");	}	ret = try_ctlogin(&ctx, &conn, &cmd, verbose);	if (ret != CS_SUCCEED) {		fprintf(stderr, "Login failed\n");		return 1;	}	ct_callback(ctx, NULL, CS_SET, CS_CLIENTMSG_CB, (CS_VOID *) ex_clientmsg_cb);	ct_callback(ctx, NULL, CS_SET, CS_SERVERMSG_CB, (CS_VOID *) ex_servermsg_cb);	/* do not test error */	ret = run_command(cmd, "IF EXISTS(SELECT * FROM SYSOBJECTS WHERE name = 'sample_rpc' AND type = 'P') DROP PROCEDURE sample_rpc");	strcpy(cmdbuf, "create proc sample_rpc (@intparam int, \        @sintparam smallint output, @floatparam float output, \        @moneyparam money output,  \        @dateparam datetime output, @charparam char(20) output, \        @binaryparam    binary(20) output) \        as ");	strcat(cmdbuf, "select @intparam, @sintparam, @floatparam, @moneyparam, \        @dateparam, @charparam, @binaryparam \        select @sintparam = @sintparam + @intparam \        select @floatparam = @floatparam + @intparam \        select @moneyparam = @moneyparam + convert(money, @intparam) \        select @dateparam = getdate() \        select @charparam = \'The char parameters\' \        select @binaryparam = @binaryparam \        print \'This is the message printed out by sample_rpc.\'");	ret = run_command(cmd, cmdbuf);	if (ret != CS_SUCCEED) {		fprintf(stderr, "create proc failed\n");		return 1;	}	/*	 * Assign values to the variables used for parameter passing.	 */	intvar = 2;	smallintvar = 234;	floatvar = 0.12;	binaryvar = (CS_BINARY) 0xff;	strcpy(rpc_name, "sample_rpc");	strcpy(moneystring, "300.90");	/*	 * Clear and setup the CS_DATAFMT structures used to convert datatypes.	 */	memset(&srcfmt, 0, sizeof(CS_DATAFMT));	srcfmt.datatype = CS_CHAR_TYPE;	srcfmt.maxlength = strlen(moneystring);	srcfmt.precision = 5;	srcfmt.scale = 2;	srcfmt.locale = NULL;	memset(&destfmt, 0, sizeof(CS_DATAFMT));	destfmt.datatype = CS_MONEY_TYPE;	destfmt.maxlength = sizeof(CS_MONEY);	destfmt.precision = 5;	destfmt.scale = 2;	destfmt.locale = NULL;	/*	 * Convert the string representing the money value	 * to a CS_MONEY variable. Since this routine does not have the	 * context handle, we use the property functions to get it.	 */	if ((ret = ct_cmd_props(cmd, CS_GET, CS_PARENT_HANDLE, &conn, CS_UNUSED, NULL)) != CS_SUCCEED) {		fprintf(stderr, "ct_cmd_props() failed");		return 1;	}	if ((ret = ct_con_props(conn, CS_GET, CS_PARENT_HANDLE, &ctx, CS_UNUSED, NULL)) != CS_SUCCEED) {		fprintf(stderr, "ct_con_props() failed");		return 1;	}	ret = cs_convert(ctx, &srcfmt, (CS_VOID *) moneystring, &destfmt, &moneyvar, &destlen);	if (ret != CS_SUCCEED) {		fprintf(stderr, "cs_convert() failed");		return 1;	}	/*	 * Send the RPC command for our stored procedure.	 */	if ((ret = ct_command(cmd, CS_RPC_CMD, rpc_name, CS_NULLTERM, CS_NO_RECOMPILE)) != CS_SUCCEED) {		fprintf(stderr, "ct_command(CS_RPC_CMD) failed");		return 1;	}	nullind    = -1;	notnullind = 0;	/*	 * Clear and setup the CS_DATAFMT structure, then pass	 * each of the parameters for the RPC.	 */	memset(&datafmt, 0, sizeof(datafmt));	strcpy(datafmt.name, "@intparam");	datafmt.namelen = CS_NULLTERM;	datafmt.datatype = CS_INT_TYPE;	datafmt.maxlength = CS_UNUSED;	datafmt.status = CS_INPUTVALUE;	datafmt.locale = NULL;	datalength = CS_SIZEOF(CS_INT);	if ((ret = ct_setparam(cmd, &datafmt, (CS_VOID *) & intvar, &datalength, &notnullind)) != CS_SUCCEED) {		fprintf(stderr, "ct_setparam(int) failed");		return 1;	}	strcpy(datafmt.name, "@sintparam");	datafmt.namelen = CS_NULLTERM;	datafmt.datatype = CS_SMALLINT_TYPE;	datafmt.maxlength = 255;	datafmt.status = CS_RETURN;	datafmt.locale = NULL;	datalength = CS_SIZEOF(CS_SMALLINT);	if ((ret = ct_setparam(cmd, &datafmt, (CS_VOID *) & smallintvar, &datalength, &notnullind)) != CS_SUCCEED) {		fprintf(stderr, "ct_setparam(smallint) failed");		return 1;	}	strcpy(datafmt.name, "@floatparam");	datafmt.namelen = CS_NULLTERM;	datafmt.datatype = CS_FLOAT_TYPE;	datafmt.maxlength = 255;	datafmt.status = CS_RETURN;	datafmt.locale = NULL;	datalength = CS_SIZEOF(CS_FLOAT);	if ((ret = ct_setparam(cmd, &datafmt, (CS_VOID *) & floatvar, &datalength, &notnullind)) != CS_SUCCEED) {		fprintf(stderr, "ct_setparam(float) failed");		return 1;	}	strcpy(datafmt.name, "@moneyparam");	datafmt.namelen = CS_NULLTERM;	datafmt.datatype = CS_MONEY_TYPE;	datafmt.maxlength = 255;	datafmt.status = CS_RETURN;	datafmt.locale = NULL;	datalength = CS_SIZEOF(CS_MONEY);	if ((ret = ct_setparam(cmd, &datafmt, (CS_VOID *) & moneyvar, &datalength, &notnullind)) != CS_SUCCEED) {		fprintf(stderr, "ct_setparam(money) failed");		return 1;	}	strcpy(datafmt.name, "@dateparam");	datafmt.namelen = CS_NULLTERM;	datafmt.datatype = CS_DATETIME4_TYPE;	datafmt.maxlength = 255;	datafmt.status = CS_RETURN;	datafmt.locale = NULL;	/*	 * The datetime variable is filled in by the RPC so pass NULL for	 * the data, 0 for data length, and -1 for the indicator arguments.	 */	datalength = 0;	if ((ret = ct_setparam(cmd, &datafmt, NULL, &datalength, &nullind)) != CS_SUCCEED) {		fprintf(stderr, "ct_setparam(datetime4) failed");		return 1;	}	strcpy(datafmt.name, "@charparam");	datafmt.namelen = CS_NULLTERM;	datafmt.datatype = CS_CHAR_TYPE;	datafmt.maxlength = 60;	datafmt.status = CS_RETURN;	datafmt.locale = NULL;	datalength = 0;	/*	 * The character string variable is filled in by the RPC so pass NULL	 * for the data 0 for data length, and -1 for the indicator arguments.	 */	if ((ret = ct_setparam(cmd, &datafmt, NULL, &datalength, &nullind)) != CS_SUCCEED) {		fprintf(stderr, "ct_setparam(char) failed");		return 1;	}	strcpy(datafmt.name, "@binaryparam");	datafmt.namelen = CS_NULLTERM;	datafmt.datatype = CS_BINARY_TYPE;	datafmt.maxlength = 255;	datafmt.status = CS_RETURN;	datafmt.locale = NULL;	datalength = CS_SIZEOF(CS_BINARY);	nullind = -1;	if ((ret = ct_setparam(cmd, &datafmt, (CS_VOID *) & binaryvar, &datalength, &notnullind)) != CS_SUCCEED) {		fprintf(stderr, "ct_setparam(binary) failed");		return 1;	}	/*	 * Send the command to the server	 */	if (ct_send(cmd) != CS_SUCCEED) {		fprintf(stderr, "ct_send(RPC) failed");		return 1;	}	ret = ex_display_results(cmd);	if (ret != CS_SUCCEED) {		fprintf(stderr, "ex_display_results failed\n");		return 1;	}	intvar = 3;	if (ct_send(cmd) != CS_SUCCEED) {		fprintf(stderr, "ct_send(RPC) failed");		return 1;	}	ret = ex_display_results(cmd);	if (ret != CS_SUCCEED) {		fprintf(stderr, "ex_display_results failed\n");		return 1;	}	run_command(cmd, "DROP PROCEDURE sample_rpc");	if (verbose) {		fprintf(stdout, "Trying logout\n");	}	ret = try_ctlogout(ctx, conn, cmd, verbose);	if (ret != CS_SUCCEED) {		fprintf(stderr, "Logout failed\n");		return 1;	}	return 0;}static CS_INTex_display_results(CS_COMMAND * cmd){CS_RETCODE ret;CS_INT res_type;CS_INT num_cols;EX_COLUMN_DATA *coldata;CS_DATAFMT *outdatafmt;CS_INT row_count = 0;CS_INT rows_read;CS_INT disp_len;CS_SMALLINT msg_id;int i, j;	/*	 * Process the results of the RPC.	 */	while ((ret = ct_results(cmd, &res_type)) == CS_SUCCEED) {		switch ((int) res_type) {		case CS_ROW_RESULT:		case CS_PARAM_RESULT:		case CS_STATUS_RESULT:			/*			 * Print the result header based on the result type.			 */			switch ((int) res_type) {			case CS_ROW_RESULT:				fprintf(stdout, "\nROW RESULTS\n");				break;			case CS_PARAM_RESULT:				fprintf(stdout, "\nPARAMETER RESULTS\n");				break;			case CS_STATUS_RESULT:				fprintf(stdout, "\nSTATUS RESULTS\n");				break;			}			fflush(stdout);

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩视频免费观看高清完整版 | 亚洲欧美激情插 | 国产精品美女久久久久久久久| 国产精品1区2区| 一个色综合av| 日本一区二区视频在线观看| 成人理论电影网| 六月婷婷色综合| 天天做天天摸天天爽国产一区 | 欧美国产日产图区| 精品国内二区三区| 欧美少妇一区二区| www.欧美亚洲| 国产成人精品一区二| 麻豆91精品视频| 亚洲国产成人精品视频| 日韩一区中文字幕| 国产女主播一区| 精品少妇一区二区三区在线播放| 色天使色偷偷av一区二区| 成人av在线一区二区三区| 激情小说亚洲一区| 久久99久久久久| 久久国产精品色婷婷| 久久精品国内一区二区三区| 在线观看亚洲精品视频| 91片黄在线观看| 日本韩国欧美国产| 欧美亚洲动漫精品| 911精品国产一区二区在线| 宅男噜噜噜66一区二区66| 91麻豆精品国产91久久久 | 国产喂奶挤奶一区二区三区| 久久色在线观看| 久久精品夜色噜噜亚洲a∨| 欧美在线播放高清精品| 欧美精品18+| 欧美一区二区观看视频| 日韩西西人体444www| 国产三级一区二区三区| 国产欧美精品一区| 亚洲制服丝袜一区| 人妖欧美一区二区| 国产成人久久精品77777最新版本 国产成人鲁色资源国产91色综 | 欧美精品一卡二卡| 欧美一级片在线观看| 国产精品丝袜一区| 亚洲一区在线电影| 精品一区二区三区在线视频| 粉嫩13p一区二区三区| 在线观看亚洲一区| 欧美成人aa大片| 亚洲精品成人悠悠色影视| 亚洲高清免费观看高清完整版在线观看 | 成人久久视频在线观看| 欧美日韩精品免费观看视频| www欧美成人18+| 亚洲美女偷拍久久| 美日韩黄色大片| 色噜噜狠狠成人网p站| 久久人人爽人人爽| 日本三级韩国三级欧美三级| 99久久免费精品| 国产精品天干天干在线综合| 一区二区三区色| 成人sese在线| 国产日韩欧美电影| 国产自产2019最新不卡| 欧美丰满一区二区免费视频| 一区二区三区资源| youjizz国产精品| 国产精品免费免费| 国产一区二区三区在线观看精品| 欧美日韩不卡一区二区| 国产精品白丝在线| 六月婷婷色综合| 日韩视频免费观看高清完整版在线观看| 亚洲婷婷在线视频| 成人午夜视频免费看| 国产亚洲欧美日韩在线一区| 卡一卡二国产精品| 日韩一区二区在线观看视频播放| 国产精品白丝jk黑袜喷水| 5月丁香婷婷综合| 亚洲国产视频在线| 欧美一级黄色大片| 免费国产亚洲视频| 久久午夜电影网| 国产高清不卡一区二区| 中文字幕欧美区| 一本到不卡精品视频在线观看 | 三级在线观看一区二区| 精品久久国产老人久久综合| 丁香另类激情小说| 成人欧美一区二区三区小说| 欧美体内she精高潮| 亚洲精品福利视频网站| 精品国产乱码久久久久久闺蜜| 国产成人免费网站| 亚洲电影第三页| 欧美精品一区二区在线观看| av一区二区三区| 日本成人超碰在线观看| 久久综合99re88久久爱| 欧美在线视频不卡| 福利电影一区二区| 亚洲国产精品人人做人人爽| 久久久久国产精品麻豆| 欧美酷刑日本凌虐凌虐| 福利一区二区在线观看| 免播放器亚洲一区| 亚洲综合色自拍一区| 久久综合资源网| 色av成人天堂桃色av| 国产精品一区二区无线| 日韩av中文在线观看| 亚洲免费观看视频| 国产日韩欧美一区二区三区综合| 欧洲亚洲国产日韩| 97se亚洲国产综合自在线| 久久99久久精品| 日韩不卡在线观看日韩不卡视频| 夜夜操天天操亚洲| 亚洲成av人片一区二区梦乃| 亚洲电影第三页| 久久精品72免费观看| 国产成人综合自拍| 成人免费三级在线| 色综合久久综合网欧美综合网 | 欧美巨大另类极品videosbest| 欧美日韩黄色影视| 欧美一级片在线观看| 精品免费日韩av| 亚洲精品亚洲人成人网| 亚洲一区二区在线视频| 麻豆一区二区三| 91在线porny国产在线看| 欧美日韩国产天堂| 国产亚洲一本大道中文在线| 亚洲狠狠丁香婷婷综合久久久| 天天亚洲美女在线视频| 国产精品888| 欧美伦理电影网| 中日韩av电影| 无吗不卡中文字幕| 成人99免费视频| 2022国产精品视频| 亚洲国产精品久久久男人的天堂| 精品中文字幕一区二区小辣椒| 成人综合在线网站| www国产精品av| 日韩中文字幕区一区有砖一区| 精品制服美女丁香| 色偷偷88欧美精品久久久| 欧美mv和日韩mv的网站| 一区二区三区国产豹纹内裤在线 | 天天操天天综合网| 国产成人精品www牛牛影视| 欧美精品色综合| 国产精品国产三级国产普通话三级| 免费成人美女在线观看.| 在线观看日产精品| 亚洲色图在线看| 92国产精品观看| 国产精品九色蝌蚪自拍| 国产一区在线看| 欧美va日韩va| 老司机精品视频线观看86| 日韩一区二区免费视频| 午夜精品123| 欧美丰满美乳xxx高潮www| 亚洲成人av一区二区| 欧美三级午夜理伦三级中视频| 亚洲人精品午夜| 99久久国产综合色|国产精品| 亚洲欧美一区二区视频| 色综合色狠狠综合色| 一区二区激情小说| 88在线观看91蜜桃国自产| 久久国产精品第一页| 国产无遮挡一区二区三区毛片日本| 国产精品综合视频| 国产精品欧美一区喷水| 一本大道av一区二区在线播放| 亚洲精品国产成人久久av盗摄| 欧美午夜一区二区三区| 欧美bbbbb| 国产精品全国免费观看高清| 欧美亚洲一区二区三区四区| 日韩精品电影在线观看| 精品国产制服丝袜高跟| 99精品在线免费| 久久99精品久久久久久国产越南 | 国产精品色哟哟| 欧美日韩久久不卡| 国产精品一区二区在线播放| 亚洲精品欧美激情| 久久久www成人免费无遮挡大片| bt欧美亚洲午夜电影天堂| 婷婷亚洲久悠悠色悠在线播放|