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

📄 testdb.cpp

📁 电信的97接口程序,用于把话单入库。这里是采用FTP方式采集话单
💻 CPP
字号:
#include <fstream.h>
#include "dbsmgw.h"
#include "global.h"

#define DB_CONNECT_TIME		300	 //The seconds value for connect timeout



LOGINREC * sybLogin;
PDBPROCESS dbConnectFunc();

void test()
{
	PDBPROCESS * dbConnectSyb;		// database connection pool!
	int i, totalConnect = 2, *connectLock;

	dberrhandle (DbErrorHandler);
	dbmsghandle (DbMsgHandler);


	RTRACE(2, "\n------------------------------Database initial : " << dbinit() << "------------------------------\n" );

	dbConnectSyb = new PDBPROCESS[totalConnect];

	connectLock = new int[totalConnect];
	for ( i = 0; i<totalConnect; i++)
		dbConnectSyb[i] = NULL;

	// alloc login memory
	sybLogin = dblogin();
	//BCP_SETL(login, TRUE);
	DBSETLUSER(sybLogin, CGlobal::Instance()->m_dbAccount);
	DBSETLPWD(sybLogin, CGlobal::Instance()->m_dbPassword);
	DBSETLAPP(sybLogin, "Short Message Gateway");
	//DBSETLTIME(login, DB_CONNECT_TIME);
	dbsetlogintime (DB_CONNECT_TIME);

	// get connections
	for ( i = 0; i<totalConnect; i++) {
		dbConnectSyb[i] = dbConnectFunc();
		if ( dbConnectSyb[i] == NULL )
			break;
		//connectLock[i] = 0;	// all of connect is free!
	}

	char sqlcmd[SQL_SIZE];

	strcpy(sqlcmd, "select OperatorName from BillOperator select Note from ACCGroupType");
	//strcpy(sqlcmd, "select Note from ACCGroupType");
	dbclrbuf(dbConnectSyb[0], sizeof(sqlcmd));
	dbfcmd(dbConnectSyb[0], sqlcmd);
	if (dbsqlexec(dbConnectSyb[0]) != SUCCEED)
	{
		RTRACE(3, "select failed!");
		dbcancel(dbConnectSyb[0]);
		return;
	}
		
	DBCHAR name[21];
	RETCODE	retCode;
	memset(name, 0, sizeof(name));

	while ((retCode = dbresults(dbConnectSyb[0])) != NO_MORE_RESULTS)
	{
		if (retCode == FAIL)
		{
			RTRACE(3, "dbresults failed!");
			dbcancel(dbConnectSyb[0]);
			break;
		}
		dbbind(dbConnectSyb[0], 1, STRINGBIND, (DBINT) 0, (BYTE *)name);
		while (dbnextrow(dbConnectSyb[0]) != NO_MORE_ROWS) //!=NO_MORE_ROWS
			RTRACE(2, "\nName is:" << name);
	}


	strcpy(sqlcmd, "select Note from ACCGroupType");

	try
	{
		dbclrbuf(dbConnectSyb[1], sizeof(sqlcmd));
	}
	catch(...)
	{
		RTRACE(2, "Except!");
		return;
	}
	dbfcmd(dbConnectSyb[1], sqlcmd);
	if ((retCode = dbsqlexec(dbConnectSyb[1])) != SUCCEED)
	{
		RTRACE(2, "select failed!");
		dbcancel(dbConnectSyb[1]);
		return;
	}
	while ((retCode = dbresults(dbConnectSyb[1])) != NO_MORE_RESULTS)
	{
		if (retCode == FAIL) break;
		dbbind(dbConnectSyb[1], 1, STRINGBIND, (DBINT) 0, (BYTE*) name);
		while ((retCode = dbnextrow(dbConnectSyb[1])) != NO_MORE_ROWS)
		{
			if (retCode == FAIL) 
			{
				RTRACE(2, "dbnextrow failed!");
				break;
			}
			RTRACE(2, "\nName is:" << name);
		}
	}


}

PDBPROCESS dbConnectFunc()
{
	PDBPROCESS dbproc;

	RTRACE(3, "Database connect : " << CGlobal::Instance()->m_dbServer);
	dbproc = dbopen(sybLogin, CGlobal::Instance()->m_dbServer);
	RTRACE(5, "Attemp to open database " << CGlobal::Instance()->m_dbName);

	if( dbproc == NULL ) {
		return NULL;
	}

	dbuse (dbproc, CGlobal::Instance()->m_dbName);
	if ( dbsettime(DB_TIMEOUT) == FAIL )
		RTRACE(2, "Set db timeout fail");

	return dbproc;
}

⌨️ 快捷键说明

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