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

📄 dbfunc.cp

📁 UNIX/LINUX平台下面SMS网管原代码
💻 CP
字号:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <time.h>
#include <memory.h>
#include <sys/types.h>

#include "etc.h"

#include "sybtesql.h"
#include "sybhesql.h"

EXEC SQL INCLUDE SQLCA;

void error_handler();
void warning_handler();
void notfound_handler();

int  DB_connect(char *uid, char *pwd, char *svc);
void DB_close();
void DB_Commit();
void DB_Rollback();

void error_handler()
{
	printf("SQLCODE = %d\n", sqlca.sqlcode);

	if (sqlca.sqlerrm.sqlerrml)
	{
		printf("SQL Server Error:");
		printf("%s\n\n", sqlca.sqlerrm.sqlerrmc);
	}

	return ;
}

void warning_handler()
{
	if (sqlca.sqlwarn[1] == 'W')
	{
		printf("Data truncated.\n");
	}

	if (sqlca.sqlwarn[3] == 'W')
	{
		printf("Insufficient host variables to store results.\n");
	}	

	return;
}

void notfound_handler()
{
	printf("No data found for the query.\n");
	return;
}

int  DB_connect(char *uid, char *pwd, char *svc)
{
	EXEC SQL BEGIN DECLARE SECTION ; 
	char username[64] ;
	char password[64] ;
	char svcname[64];
	EXEC SQL END DECLARE SECTION ;

	EXEC SQL WHENEVER SQLERROR CALL error_handler() ;
	EXEC SQL WHENEVER SQLWARNING CALL warning_handler() ;
	EXEC SQL WHENEVER NOT FOUND CALL notfound_handler() ;

	memset( username, '\0', sizeof( username)) ;
	memset( username, '\0', sizeof( username)) ;
	memset( password, '\0', sizeof( password)) ;

	AllTrim(svc);
	AllTrim(uid);
	AllTrim(pwd);
	pwd[6] = 0;

	strcpy(svcname, svc);
	strcpy(username, uid) ;
	strcpy(password, pwd) ;

	EXEC SQL CONNECT :username IDENTIFIED BY :password USING :svcname;
	if ( sqlca.sqlcode < 0 ) return( sqlca.sqlcode) ;

	EXEC SQL EXECUTE IMMEDIATE "set chained off" ;
	if ( sqlca.sqlcode < 0 ) return( sqlca.sqlcode) ;

	EXEC SQL EXECUTE IMMEDIATE "set transaction isolation level 1" ;
	if ( sqlca.sqlcode < 0 ) return( sqlca.sqlcode) ;

	return( SUCCESS);
}

void DB_close()
{
	EXEC SQL DISCONNECT ALL;
	if( sqlca.sqlcode < 0)
		fprintf(stdout, "DISCONNECT FAILURE!\n");	
	return;
}

void DB_Commit()
{
	EXEC SQL COMMIT TRANSACTION;
	return;
}

void DB_Rollback()
{
	EXEC SQL ROLLBACK TRANSACTION;
	return;
}

⌨️ 快捷键说明

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