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

📄 ccustom.cpp

📁 邮件内容呼,邮件内容提取至寻呼机上,数据库操作,邮件内容提取
💻 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 + -