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

📄 t0020.c

📁 在Linux/Unix下面访问WINDOWS SQLSERVER 的ODBC驱动程序
💻 C
字号:
/*  * Purpose: Test for proper return code from dbsqlexec() * Functions: db_name dbcmd dberrhandle dbmsghandle dbnextrow dbopen dbresults dbsqlexec */#include "common.h"static char software_version[] = "$Id: t0020.c,v 1.15 2007/01/15 19:43:09 jklowden Exp $";static void *no_unused_var_warn[] = { software_version, no_unused_var_warn };int failed = 0;int err_handler(DBPROCESS * dbproc, int severity, int dberr, int oserr, char *dberrstr, char *oserrstr);/* * The bad column name message has severity 16, causing db-lib to call the error handler after calling the message handler. * This wrapper anticipates that behavior, and again sets the userdata, telling the handler this error is expected.  */interr_handler(DBPROCESS * dbproc, int severity, int dberr, int oserr, char *dberrstr, char *oserrstr){		int expected_error = 207;	dbsetuserdata(dbproc, (BYTE*) &expected_error);	return syb_err_handler(dbproc, severity, dberr, oserr, dberrstr, oserrstr);}intmain(int argc, char **argv){	LOGINREC *login;	DBPROCESS *dbproc;	RETCODE ret;	int expected_error;	set_malloc_options();	read_login_info(argc, argv);	fprintf(stdout, "Start\n");	add_bread_crumb();	/* Fortify_EnterScope(); */	dbinit();	add_bread_crumb();	dberrhandle(err_handler);	dbmsghandle(syb_msg_handler);	fprintf(stdout, "About to logon\n");	add_bread_crumb();	login = dblogin();	DBSETLPWD(login, PASSWORD);	DBSETLUSER(login, USER);	DBSETLAPP(login, "t0020");	fprintf(stdout, "About to open\n");	add_bread_crumb();	dbproc = dbopen(login, SERVER);	if (strlen(DATABASE))		dbuse(dbproc, DATABASE);	add_bread_crumb();	dbloginfree(login);	add_bread_crumb();	dbcmd(dbproc, "select dsjfkl dsjf");	fprintf(stderr, "The following invalid column error is normal.\n");	expected_error = 207;	dbsetuserdata(dbproc, (BYTE*) &expected_error);	ret = dbsqlexec(dbproc);	if (ret != FAIL) {		failed = 1;		fprintf(stderr, "Failed.  Expected FAIL to be returned.\n");		exit(1);	}	dbcmd(dbproc, "select db_name()");	ret = dbsqlexec(dbproc);	if (ret != SUCCEED) {		failed = 1;		fprintf(stderr, "Failed.  Expected SUCCEED to be returned.\n");		exit(1);	}	while (dbresults(dbproc) != NO_MORE_RESULTS) {		while (dbnextrow(dbproc) != NO_MORE_ROWS);	}	add_bread_crumb();	dbexit();	add_bread_crumb();	fprintf(stdout, "dblib %s on %s\n", (failed ? "failed!" : "okay"), __FILE__);	free_bread_crumb();	return failed ? 1 : 0;}

⌨️ 快捷键说明

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