#include "stdafx.h" #include "DataDef.h" #include "AdoImplSvr.h" /*-------------------------------------------------------------------------------*/ /* 函数名: Handle 说明: 数据处理 参数: 返回: 1成功,0失败 */ /*-------------------------------------------------------------------------------*/ int Tbl2015::Handle() { return 1; } /*-------------------------------------------------------------------------------*/ /* 函数名: GetInsertSql 说明: 获取插入数据的sql 参数: 返回: 1成功,0失败 */ /*-------------------------------------------------------------------------------*/ void Tbl2015::GetInsertSql(TCHAR* strInsert) { wsprintf(strInsert, INSERT_2015, _logid.c_str(), _account.c_str(), _username.c_str(), _logdate.c_str(), _opttype.c_str(), _snno.c_str(), _desc.c_str()); } /************************************************************************/ /* 函数:GetTbl_2015RecordSet 描述:获取表[2015]的记录集; 参数: IN: pTableName 表名; IN: pFilters 查找条件; IN: nFieldCount 查找的字段数量; OUT: vtRSet 返回的记录集对应的结构体数组; 返回:成功返回记录集大小, 失败返回 -1; */ /************************************************************************/ INT Tbl2015::GetRecordSet(IN AdoImpl* pAdoImpl, IN CONST TCHAR *pTableName, IN CONST TCHAR *pFilters, IN CString& strSQL, INT &nFieldCount, OUT CArray& arr) { if(pAdoImpl == NULL) return -1; TCHAR szSQL[1024] = _T(""); if(pFilters == NULL || _tcscmp(pFilters,_T("")) == 0) _stprintf(szSQL,_T("select count(*) as cot from %s"), pTableName); else _stprintf(szSQL, _T("select count(*) as cot from %s where %s"), pTableName, pFilters); int nRecordCount = 0; _variant_t vtFieldValue; bool bResult = false; EnterCriticalSection( &pAdoImpl->m_csAdo ); bResult = pAdoImpl->GetADODateBaseStatus(); if( false == bResult ) { LeaveCriticalSection( &pAdoImpl->m_csAdo ); return -1; } CADORecordset* pRSet = new CADORecordset(pAdoImpl->m_pADODatabase); LeaveCriticalSection( &pAdoImpl->m_csAdo ); if( NULL == pRSet ) return -1; bResult = pAdoImpl->OpenADORecordSet(pRSet, szSQL); if( false == bResult ) { pAdoImpl->DeleteADORecordSet(pRSet); return -1; } if( !pRSet->IsFieldNull(_T("cot")) ) pRSet->GetFieldValue(_T("cot"), nRecordCount); else { pAdoImpl->DeleteADORecordSet(pRSet); return -1; } pAdoImpl->DeleteADORecordSet(pRSet); pRSet = new CADORecordset(pAdoImpl->m_pADODatabase); if( NULL == pRSet ) return -1; bResult = pAdoImpl->OpenADORecordSet(pRSet, strSQL); if( false == bResult ) { pAdoImpl->DeleteADORecordSet(pRSet); return -1; } nFieldCount = pRSet->GetFieldCount(); arr.SetSize(nRecordCount, 1); int i=0; try { while(!pRSet->IsEOF()) { Tbl2015 tagVal; arr.ElementAt(i).RemoveAll(); if( !pRSet->IsFieldNull(_T("LogID")) ) { pRSet->GetFieldValue(_T("LogID"), vtFieldValue); arr.ElementAt(i).Add((TCHAR*)(_bstr_t)vtFieldValue); } else arr.ElementAt(i).Add(_T("")); if( !pRSet->IsFieldNull(_T("Account")) ) { pRSet->GetFieldValue(_T("Account"), vtFieldValue); arr.ElementAt(i).Add((TCHAR*)(_bstr_t)vtFieldValue); } else arr.ElementAt(i).Add(_T("")); if( !pRSet->IsFieldNull(_T("UserName")) ) { pRSet->GetFieldValue(_T("UserName"), vtFieldValue); arr.ElementAt(i).Add((TCHAR*)(_bstr_t)vtFieldValue); } else arr.ElementAt(i).Add(_T("")); if( !pRSet->IsFieldNull(_T("LogDate")) ) { pRSet->GetFieldValue(_T("LogDate"), vtFieldValue); arr.ElementAt(i).Add((TCHAR*)(_bstr_t)vtFieldValue); } else arr.ElementAt(i).Add(_T("")); if( !pRSet->IsFieldNull(_T("OptType")) ) { pRSet->GetFieldValue(_T("OptType"), vtFieldValue); arr.ElementAt(i).Add((TCHAR*)(_bstr_t)vtFieldValue); } else arr.ElementAt(i).Add(_T("")); if( !pRSet->IsFieldNull(_T("SNNo")) ) { pRSet->GetFieldValue(_T("SNNo"), vtFieldValue); arr.ElementAt(i).Add((TCHAR*)(_bstr_t)vtFieldValue); } else arr.ElementAt(i).Add(_T("")); if( !pRSet->IsFieldNull(_T("LogDesc")) ) { pRSet->GetFieldValue(_T("LogDesc"), vtFieldValue); arr.ElementAt(i).Add((TCHAR*)(_bstr_t)vtFieldValue); } else arr.ElementAt(i).Add(_T("")); pRSet->MoveNext(); i++; } } catch(CException *e) { TCHAR szError[1024] = { 0 }; e->GetErrorMessage(szError, 1024); WriteLogin(CString(szError)); e->Delete(); pAdoImpl->DeleteADORecordSet(pRSet); return -1; } pAdoImpl->DeleteADORecordSet(pRSet); return nRecordCount; } INT Tbl2015::GetRecordSet(IN AdoImpl* pAdoImpl, IN CONST TCHAR *pTableName, IN CONST TCHAR *pFilters, CStringArray& fieldArr, INT &nFieldCount, OUT CArray& arr) { if(pAdoImpl == NULL || fieldArr.GetSize()) return -1; TCHAR szSQL[1024] = _T(""); if(pFilters == NULL || _tcscmp(pFilters,_T("")) == 0) _stprintf(szSQL,_T("select count(*) as cot from %s"), pTableName); else _stprintf(szSQL, _T("select count(*) as cot from %s where %s"), pTableName, pFilters); int nRecordCount = 0; _variant_t vtFieldValue; bool bResult = false; EnterCriticalSection( &pAdoImpl->m_csAdo ); bResult = pAdoImpl->GetADODateBaseStatus(); if( false == bResult ) { LeaveCriticalSection( &pAdoImpl->m_csAdo ); return -1; } CADORecordset* pRSet = new CADORecordset(pAdoImpl->m_pADODatabase); LeaveCriticalSection( &pAdoImpl->m_csAdo ); if( NULL == pRSet ) return -1; bResult = pAdoImpl->OpenADORecordSet(pRSet, szSQL); if( false == bResult ) { pAdoImpl->DeleteADORecordSet(pRSet); return -1; } if( !pRSet->IsFieldNull(_T("cot")) ) pRSet->GetFieldValue(_T("cot"), nRecordCount); else { pAdoImpl->DeleteADORecordSet(pRSet); return -1; } pAdoImpl->DeleteADORecordSet(pRSet); pRSet = new CADORecordset(pAdoImpl->m_pADODatabase); if( NULL == pRSet ) return -1; CString strOutField = _T(""); int nSize = fieldArr.GetSize(); int i=0; for(i = 0; iOpenADORecordSet(pRSet, strSQL); if( false == bResult ) { pAdoImpl->DeleteADORecordSet(pRSet); return -1; } nFieldCount = pRSet->GetFieldCount(); arr.SetSize(nRecordCount, 1); i = 0; try { while(!pRSet->IsEOF()) { Tbl2015 tagVal; arr.ElementAt(i).RemoveAll(); if( !pRSet->IsFieldNull(_T("LogID")) ) { pRSet->GetFieldValue(_T("LogID"), vtFieldValue); arr.ElementAt(i).Add((TCHAR*)(_bstr_t)vtFieldValue); } else arr.ElementAt(i).Add(_T("")); if( !pRSet->IsFieldNull(_T("Account")) ) { pRSet->GetFieldValue(_T("Account"), vtFieldValue); arr.ElementAt(i).Add((TCHAR*)(_bstr_t)vtFieldValue); } else arr.ElementAt(i).Add(_T("")); if( !pRSet->IsFieldNull(_T("UserName")) ) { pRSet->GetFieldValue(_T("UserName"), vtFieldValue); arr.ElementAt(i).Add((TCHAR*)(_bstr_t)vtFieldValue); } else arr.ElementAt(i).Add(_T("")); if( !pRSet->IsFieldNull(_T("LogDate")) ) { pRSet->GetFieldValue(_T("LogDate"), vtFieldValue); arr.ElementAt(i).Add((TCHAR*)(_bstr_t)vtFieldValue); } else arr.ElementAt(i).Add(_T("")); if( !pRSet->IsFieldNull(_T("OptType")) ) { pRSet->GetFieldValue(_T("OptType"), vtFieldValue); arr.ElementAt(i).Add((TCHAR*)(_bstr_t)vtFieldValue); } else arr.ElementAt(i).Add(_T("")); if( !pRSet->IsFieldNull(_T("SNNo")) ) { pRSet->GetFieldValue(_T("SNNo"), vtFieldValue); arr.ElementAt(i).Add((TCHAR*)(_bstr_t)vtFieldValue); } else arr.ElementAt(i).Add(_T("")); if( !pRSet->IsFieldNull(_T("LogDesc")) ) { pRSet->GetFieldValue(_T("LogDesc"), vtFieldValue); arr.ElementAt(i).Add((TCHAR*)(_bstr_t)vtFieldValue); } else arr.ElementAt(i).Add(_T("")); pRSet->MoveNext(); i++; } } catch(CException *e) { TCHAR szError[1024] = { 0 }; e->GetErrorMessage(szError, 1024); WriteLogin(CString(szError)); e->Delete(); pAdoImpl->DeleteADORecordSet(pRSet); return -1; } pAdoImpl->DeleteADORecordSet(pRSet); return nRecordCount; }