Files
2022-10-26 12:25:11 +08:00

233 lines
4.5 KiB
C++

#include "StdAfx.h"
#include "DBProc.h"
CDBProc::CDBProc(void)
{
}
CDBProc::~CDBProc(void)
{
}
bool CDBProc::ConnectDBMS(char* strCon, char* szID, char* szPwd)
{
m_slqdb.SetConnectInfo(strCon, szID, szPwd);
return m_slqdb.ConnectDBMS();
}
bool CDBProc::ConnectDBMS(char* strIP, UINT nPortNum, char* szDbName, char* szID, char* szPwd, bool bDBConnect)
{
char szConn[MAX_QUREY_LENGTH] = {0};
StringCchPrintf(szConn, MAX_QUREY_LENGTH, "%s, %d@%s", strIP, nPortNum, szDbName);
m_slqdb.SetConnectInfo(szConn, szID, szPwd, SA_SQLServer_Client);
if(bDBConnect) return m_slqdb.ConnectDBMS();
return true;
}
bool CDBProc::SetQureyText(const char* szQurey)
{
return m_slqdb.SetQureyText(szQurey);
}
bool CDBProc::ExecSP()
{
if(!m_slqdb.Exec())
{
if(m_slqdb.ConnectDBMS())
return m_slqdb.Exec();
else return false;
}
return true;
}
void CDBProc::RunProc()
{
}
bool CDBProc::IsConnected()
{
if(m_slqdb.IsConnected()) return true;
return m_slqdb.ConnectDBMS();
}
int CDBProc::GetCountFiled()
{
return m_slqdb.GetCountFiled();
}
bool CDBProc::FetchNext()
{
if((m_slqdb.GetCountFiled() > 0) && m_slqdb.isResultSet())
{
return m_slqdb.FetchNext();
}
else
{
return false;
}
}
bool CDBProc::ModifyValue(VALUE_TYPE vt, const char* szCol, tm& _time)
{
if(!m_slqdb.ModifyValue(vt, szCol, _time))
{
if(m_slqdb.ConnectDBMS())
return m_slqdb.ModifyValue(vt, szCol, _time);
else return false;
}
return true;
}
bool CDBProc::ModifyValue(VALUE_TYPE vt, const char* szCol, long& nValue)
{
if(!m_slqdb.ModifyValue(vt, szCol, nValue))
{
if(m_slqdb.ConnectDBMS())
return m_slqdb.ModifyValue(vt, szCol, nValue);
else return false;
}
return true;
}
bool CDBProc::ModifyValue(VALUE_TYPE vt, const char* szCol, short& nValue)
{
if(!m_slqdb.ModifyValue(vt, szCol, nValue))
{
if(m_slqdb.ConnectDBMS())
return m_slqdb.ModifyValue(vt, szCol, nValue);
else return false;
}
return true;
}
bool CDBProc::ModifyValue(VALUE_TYPE vt, const char* szCol, double& nValue)
{
if(!m_slqdb.ModifyValue(vt, szCol, nValue))
{
if(m_slqdb.ConnectDBMS())
return m_slqdb.ModifyValue(vt, szCol, nValue);
else return false;
}
return true;
}
bool CDBProc::ModifyValue(VALUE_TYPE vt, const char* szCol, bool& nValue)
{
if(!m_slqdb.ModifyValue(vt, szCol, nValue))
{
if(m_slqdb.ConnectDBMS())
return m_slqdb.ModifyValue(vt, szCol, nValue);
else return false;
}
return true;
}
bool CDBProc::ModifyValue(VALUE_TYPE vt, const char* szCol, char& nValue)
{
if(!m_slqdb.ModifyValue(vt, szCol, nValue))
{
if(m_slqdb.ConnectDBMS())
return m_slqdb.ModifyValue(vt, szCol, nValue);
else return false;
}
return true;
}
bool CDBProc::ModifyValue(VALUE_TYPE vt, const char* szCol, BYTE& nValue)
{
if(!m_slqdb.ModifyValue(vt, szCol, nValue))
{
if(m_slqdb.ConnectDBMS())
return m_slqdb.ModifyValue(vt, szCol, nValue);
else return false;
}
return true;
}
bool CDBProc::ModifyValue(VALUE_TYPE vt, const char* szCol, char* nValue, int Size)
{
if(!m_slqdb.ModifyValue(vt, szCol, nValue, Size))
{
if(m_slqdb.ConnectDBMS())
return m_slqdb.ModifyValue(vt, szCol, nValue, Size);
else return false;
}
return true;
}
bool CDBProc::ModifyValue(VALUE_TYPE vt, const char* szCol, WCHAR* nValue, int Size)
{
if(!m_slqdb.ModifyValue(vt, szCol, nValue, Size))
{
if(m_slqdb.ConnectDBMS())
return m_slqdb.ModifyValue(vt, szCol, nValue, Size);
else return false;
}
return true;
}
bool CDBProc::ModifyValue(VALUE_TYPE vt, const char* szCol, WCHAR& nValue)
{
if(!m_slqdb.ModifyValue(vt, szCol, nValue))
{
if(m_slqdb.ConnectDBMS())
return m_slqdb.ModifyValue(vt, szCol, nValue);
else return false;
}
return true;
}
bool CDBProc::ModifyValue(VALUE_TYPE vt, const char* szCol, int& nValue)
{
long lValue = nValue;
return ModifyValue(vt, szCol, lValue);
}
bool CDBProc::ModifyValue(VALUE_TYPE vt, const char* szCol, DWORD& nValue)
{
long lValue = nValue;
return ModifyValue(vt, szCol, lValue);
}
bool CDBProc::ModifyValue(VALUE_TYPE vt, const char* szCol, WORD& nValue)
{
long lValue = nValue;
return ModifyValue(vt, szCol, lValue);
}
std::wstring CDBProc::ConvertSQLString(WCHAR* sz)
{
std::wstring str = sz;
std::wstring::size_type Index = 0;
while(true)
{
Index = str.find(L"'", Index);
if(std::wstring::npos == Index) break;
str.replace(Index, 1, L"''");
Index += 2;
}
return str;
}
std::string CDBProc::ConvertSQLString(char* sz)
{
std::string str = sz;
std::string::size_type Index = 0;
while(true)
{
Index = str.find("'", Index);
if(std::wstring::npos == Index) break;
str.replace(Index, 1, "''");
Index += 2;
}
return str;
}