paramcore.c

来自「在Linux/Unix下面访问WINDOWS SQLSERVER 的ODBC驱动」· C语言 代码 · 共 83 行

C
83
字号
#include "common.h"/* * Try to make core dump using SQLBindParameter */static char software_version[] = "$Id: paramcore.c,v 1.4 2006/07/25 08:11:00 freddy77 Exp $";static void *no_unused_var_warn[] = { software_version, no_unused_var_warn };#define SP_TEXT "{call sp_paramcore_test(?)}"#define OUTSTRING_LEN 20static char MessageText[1000];static SQLSMALLINT TextLength;static SQLCHAR SqlState[6];static voidReadError(void){	if (SQL_SUCCEEDED(SQLGetDiagRec(SQL_HANDLE_STMT, Statement, 1, SqlState, NULL, (SQLCHAR*) MessageText, sizeof(MessageText), &TextLength))) {		SqlState[sizeof(SqlState) - 1] = 0;		fprintf(stderr, "State %s Message: %s\n", SqlState, MessageText);	}}intmain(int argc, char *argv[]){	SQLRETURN rc;	SQLLEN cb = SQL_NTS;	use_odbc_version3 = 1;	Connect();	CommandWithResult(Statement, "drop proc sp_paramcore_test");	Command(Statement, "create proc sp_paramcore_test @s varchar(100) output as select @s = '12345'");	/* here we pass a NULL buffer for input SQL_NTS */	rc = SQLBindParameter(Statement, 1, SQL_PARAM_INPUT, SQL_C_CHAR, SQL_VARCHAR, OUTSTRING_LEN, 0, NULL, OUTSTRING_LEN, &cb);	ReadError();	cb = SQL_NTS;	rc = CommandWithResult(Statement, SP_TEXT);	ReadError();	ResetStatement();	/* here we pass a NULL buffer for input */	rc = SQLBindParameter(Statement, 1, SQL_PARAM_INPUT, SQL_C_LONG, SQL_VARCHAR, 18, 0, NULL, OUTSTRING_LEN, &cb);	ReadError();	cb = 1;	rc = CommandWithResult(Statement, SP_TEXT);	ReadError();	ResetStatement();	Command(Statement, "drop proc sp_paramcore_test");	Command(Statement, "create proc sp_paramcore_test @s numeric(10,2) output as select @s = 12345.6");	ResetStatement();#if 0	/* this fails even on native platforms */	/* here we pass a NULL buffer for output */	cb = sizeof(SQL_NUMERIC_STRUCT);	rc = SQLBindParameter(Statement, 1, SQL_PARAM_OUTPUT, SQL_C_NUMERIC, SQL_NUMERIC, 18, 0, NULL, OUTSTRING_LEN, &cb);	ReadError();	cb = 1;	rc = CommandWithResult(Statement, SP_TEXT);	ReadError();	ResetStatement();#endif	Command(Statement, "drop proc sp_paramcore_test");	Disconnect();	printf("Done successfully!\n");	return 0;}

⌨️ 快捷键说明

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