📄 testdb.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 + -