233 lines
4.5 KiB
C++
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;
|
|
} |