📄 ccustom.cpp
字号:
#include "stdafx.h"
#include "CCustom.h"
CAccountInfo::CAccountInfo()
{
m_hdbc = SQL_NULL_HDBC;
m_hstmt = SQL_NULL_HSTMT;
}
CAccountInfo::~CAccountInfo()
{
Close();
}
BOOL CAccountInfo::Create(HDBC hdbc, CString Tablename)
{
m_table = Tablename;
ASSERT(hdbc != SQL_NULL_HDBC);
m_hdbc = hdbc;
int retcode;
retcode = SQLAllocStmt(m_hdbc,&m_hstmt);
if (retcode == SQL_SUCCESS)
return TRUE;
return FALSE;
}
void CAccountInfo::Close()
{
if (m_hstmt != SQL_NULL_HSTMT)
{
SQLFreeStmt(m_hstmt,SQL_DROP);
m_hstmt = SQL_NULL_HSTMT;
}
m_hdbc = SQL_NULL_HDBC;
}
BOOL CAccountInfo::GetBP(CString address)
{
CString address2;
int pos1;
// char msg[512];
//to find mail in @gnetpri.com and @1298.net
//first search @gnetpri.com if not found ,search @1298.net
address.MakeLower();
pos1=address.Find((LPCTSTR)"@1298.net");
if(pos1>0)
{
address2=address.Mid(0,pos1)+"@gnetpri.com";
address=address2;
}
RETCODE retcode;
CString strSQL;
strSQL.Format("select uid from %s where address = '%s'",m_table,address);
retcode = ::SQLExecDirect(m_hstmt,(UCHAR FAR *)LPCSTR(strSQL),strSQL.GetLength());
if (retcode != SQL_SUCCESS && retcode != SQL_SUCCESS_WITH_INFO)
{
SQLFreeStmt(m_hstmt,SQL_CLOSE);
return FALSE;
}
SQLRETURN retlen;
retcode = ::SQLBindCol(m_hstmt,1,SQL_C_CHAR,szUid,11,(long *)&retlen);
retcode = SQLFetch(m_hstmt);
SQLFreeStmt(m_hstmt, SQL_CLOSE);
if (retcode != SQL_SUCCESS && retcode != SQL_SUCCESS_WITH_INFO)
return FALSE;
return TRUE;
}
CSwitchInfo::CSwitchInfo()
{
m_hdbc = SQL_NULL_HDBC;
m_hstmt = SQL_NULL_HSTMT;
}
CSwitchInfo::~CSwitchInfo()
{
Close();
}
BOOL CSwitchInfo::Create(HDBC hdbc, CString Tablename)
{
m_table = Tablename;
ASSERT(hdbc != SQL_NULL_HDBC);
m_hdbc = hdbc;
int retcode;
retcode = SQLAllocStmt(m_hdbc,&m_hstmt);
if (retcode == SQL_SUCCESS)
return TRUE;
return FALSE;
}
void CSwitchInfo::Close()
{
if (m_hstmt != SQL_NULL_HSTMT)
{
SQLFreeStmt(m_hstmt,SQL_DROP);
m_hstmt = SQL_NULL_HSTMT;
}
m_hdbc = SQL_NULL_HDBC;
}
BOOL CSwitchInfo::GetSwitch(CString uid)
{
RETCODE retcode;
CString strSQL;
strSQL.Format("select filter,switch,type,format,station,zone from %s where uid = '%s'",m_table,uid);
retcode = ::SQLExecDirect(m_hstmt,(UCHAR FAR *)LPCSTR(strSQL),strSQL.GetLength());
if (retcode != SQL_SUCCESS && retcode != SQL_SUCCESS_WITH_INFO)
{
SQLFreeStmt(m_hstmt,SQL_CLOSE);
return FALSE;
}
SQLRETURN retlen;
retcode = ::SQLBindCol(m_hstmt,1,SQL_C_ULONG,&m_mailfilter,1,(long *)&retlen);
retcode = ::SQLBindCol(m_hstmt,2,SQL_C_ULONG,&m_mailswitch,1,(long *)&retlen);
retcode = ::SQLBindCol(m_hstmt,3,SQL_C_SLONG,&m_mailservice,1,(long *)&retlen);
retcode = ::SQLBindCol(m_hstmt,4,SQL_C_ULONG,&m_format,1,(long *)&retlen);
retcode = ::SQLBindCol(m_hstmt,5,SQL_C_CHAR,m_station,5,(long *)&retlen);
retcode = ::SQLBindCol(m_hstmt,6,SQL_C_CHAR,m_zone,5,(long *)&retlen);
retcode = SQLFetch(m_hstmt);
SQLFreeStmt(m_hstmt, SQL_CLOSE);
if (retcode != SQL_SUCCESS && retcode != SQL_SUCCESS_WITH_INFO)
return FALSE;
return TRUE;
}
CFilterInfo::CFilterInfo()
{
m_hdbc = SQL_NULL_HDBC;
m_hstmt = SQL_NULL_HSTMT;
}
CFilterInfo::~CFilterInfo()
{
Close();
}
BOOL CFilterInfo::Create(HDBC hdbc, CString Tablename)
{
m_table = Tablename;
ASSERT(hdbc != SQL_NULL_HDBC);
m_hdbc = hdbc;
int retcode;
retcode = SQLAllocStmt(m_hdbc,&m_hstmt);
if (retcode == SQL_SUCCESS)
return TRUE;
return FALSE;
}
void CFilterInfo::Close()
{
if (m_hstmt != SQL_NULL_HSTMT)
{
SQLFreeStmt(m_hstmt,SQL_DROP);
m_hstmt = SQL_NULL_HSTMT;
}
m_hdbc = SQL_NULL_HDBC;
}
BOOL CFilterInfo::GetFilter(CString uid,CString address)
{
RETCODE retcode;
CString strSQL;
CString strAddr ;
strSQL.Format("select address from %s where uid = '%s'",m_table,uid);
retcode = ::SQLExecDirect(m_hstmt,(UCHAR FAR *)LPCSTR(strSQL),strSQL.GetLength());
if (retcode != SQL_SUCCESS && retcode != SQL_SUCCESS_WITH_INFO)
{
SQLFreeStmt(m_hstmt,SQL_CLOSE);
return FALSE;
}
SQLRETURN retlen;
retcode = ::SQLBindCol(m_hstmt,1,SQL_C_CHAR,szAddress,50,(long *)&retlen);
m_filter = 0;
while (TRUE) {
retcode = SQLFetch(m_hstmt);
if (retcode == SQL_ERROR || retcode == SQL_SUCCESS_WITH_INFO) {
SQLFreeStmt(m_hstmt,SQL_CLOSE);
return FALSE;
}
if (retcode == SQL_SUCCESS || retcode == SQL_SUCCESS_WITH_INFO) {
address.MakeLower();
strAddr = szAddress ;
strAddr.MakeLower() ;
strcpy(szAddress,strAddr) ;
if (!address.Compare((LPCSTR)szAddress)) {
m_filter = 1;
break;
}
}
else break;
}
SQLFreeStmt(m_hstmt, SQL_CLOSE);
if (retcode != SQL_SUCCESS && retcode != SQL_SUCCESS_WITH_INFO)
return FALSE;
return TRUE;
}
CMailInfo::CMailInfo()
{
m_hdbc = SQL_NULL_HDBC;
m_hstmt = SQL_NULL_HSTMT;
}
CMailInfo::~CMailInfo()
{
Close();
}
BOOL CMailInfo::Create(HDBC hdbc, CString Tablename)
{
m_table = Tablename;
ASSERT(hdbc != SQL_NULL_HDBC);
m_hdbc = hdbc;
int retcode;
retcode = SQLAllocStmt(m_hdbc,&m_hstmt);
if (retcode == SQL_SUCCESS)
return TRUE;
return FALSE;
}
void CMailInfo::Close()
{
if (m_hstmt != SQL_NULL_HSTMT)
{
SQLFreeStmt(m_hstmt,SQL_DROP);
m_hstmt = SQL_NULL_HSTMT;
}
m_hdbc = SQL_NULL_HDBC;
}
BOOL CMailInfo::InsertInfo(LPSTR szUid, int service,char* station, char* zone,char* info)
{
ASSERT(m_hstmt != SQL_NULL_HSTMT);
char strSQL[1024];
char myinfo[1024];
int i=0;
int j=0;
memset(myinfo, 0, 1024);
for(i = 0; i < strlen(info); i++)
{
if(info[i] == '\r' || info[i] == '\n')
{
myinfo[j] = ' ';
j++;
}
else if(info[i] == 39)
{
myinfo[j] = 39;
j++;
myinfo[j] = 39;
j++;
}
else
{
myinfo[j] = info[i];
j++;
}
}
memset(strSQL, 0, 1024);
sprintf(strSQL, "insert into %s(uid,oid,phone,type,pri,time,station,zone,content) values('%s','0000','',%d,1,getDate(),'%s','%s','%s')",m_table,szUid,service,station,zone,myinfo);
//strSQL.Format("insert into %s(uid,oid,phone,type,pri,time,station,zone,content) values('%s','0000','',%d,1,getDate(),'%s','%s','%s')",m_table,szUid,service,station,zone,info);
RETCODE retcode;
retcode = ::SQLExecDirect(m_hstmt, (UCHAR FAR *)(strSQL), strlen(strSQL));
if (retcode != SQL_SUCCESS && retcode != SQL_SUCCESS_WITH_INFO)
{
unsigned char szSQLSTATE[6];
SDWORD nErr;
unsigned char msg[512];
SWORD cbmsg;
while(SQLError(0,
m_hdbc,
m_hstmt,
szSQLSTATE,
&nErr,
msg,
sizeof(msg),
&cbmsg) == SQL_SUCCESS)
;
return FALSE;
SQLFreeStmt(m_hstmt, SQL_CLOSE);
}
SQLFreeStmt(m_hstmt, SQL_CLOSE);
return TRUE;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -