#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; }