//////////////////////////////////////////////////////////////////////////////// // CTbllog 实现 // 代码生成在 2014年9月24日, 17:08 #include "stdafx.h" #include "Tbllog.h" IMPLEMENT_DYNAMIC(CTbllog, CRecordset) CTbllog::CTbllog(CDatabase* pdb): CRecordset(pdb) { m_log_type = _T(""); m_log_opt = _T(""); m_log_date = _T(""); m_log_content = _T(""); m_log_generant = _T(""); m_nFields = 5; // 注意:image类型未生成成员变量,此处值可能不对。 m_nDefaultType = dynaset; } //#error 安全问题:连接字符串可能包含密码。 // 此连接字符串中可能包含明文密码和/或其他重要 // 信息。请在查看完此连接字符串并找到所有与安全 // 有关的问题后移除 #error。可能需要将此密码存 // 储为其他格式或使用其他的用户身份验证。 CString CTbllog::GetDefaultConnect() { return _T("ODBC;DSN"); } CString CTbllog::GetDefaultSQL() { return _T("[dbo].[log]"); } void CTbllog::DoFieldExchange(CFieldExchange* pFX) { pFX->SetFieldType(CFieldExchange::outputColumn); // RFX_Text() 和 RFX_Int() 这类宏依赖的是 // 成员变量的类型,而不是数据库字段的类型。 // ODBC 尝试自动将列值转换为所请求的类型 RFX_Text(pFX, _T("log_type"), m_log_type); RFX_Text(pFX, _T("log_opt"), m_log_opt); RFX_Text(pFX, _T("log_date"), m_log_date); RFX_Text(pFX, _T("log_content"), m_log_content); RFX_Text(pFX, _T("log_generant"), m_log_generant); } ///////////////////////////////////////////////////////////////////////////// // CTbllog 诊断 #ifdef _DEBUG void CTbllog::AssertValid() const { CRecordset::AssertValid(); } void CTbllog::Dump(CDumpContext& dc) const { CRecordset::Dump(dc); } #endif //_DEBUG /************************************************************************/ /* 函数:[9/12/2017 IT]; /* 描述:; /* 参数:; /* [IN] :; /* [OUT] :; /* [IN/OUT] :; /* 返回:void; /* 注意:; /* 示例:; /* /* 修改:; /* 日期:; /* 内容:; /************************************************************************/ void CTbllog::GetReturnValue(IN CArray& AryValue, IN CDatabase* pDatabase, IN CString strFilter) { CRecordset tagSet(pDatabase); CString strTemp = _T("select count(*) as cot from [log]"); if ( !strFilter.IsEmpty() ) strTemp += _T(" where ") + strFilter; tagSet.Open(CRecordset::forwardOnly, strTemp); tagSet.GetFieldValue(_T("cot"), strTemp); tagSet.Close(); // 2.查询指定条件记录; DWORD dwCount = atol(strTemp); DWORD dwOldSize = AryValue.GetSize(); AryValue.SetSize(dwOldSize + dwCount, 1); DWORD dwIndex = dwOldSize == 0 ? 0 : dwOldSize - 1; CTbllog tagRst(pDatabase); if ( !strFilter.IsEmpty() ) tagRst.m_strFilter = strFilter; tagRst.Open(); while( !tagRst.IsEOF() ) { AryValue.ElementAt(dwIndex).RemoveAll(); AryValue.ElementAt(dwIndex).Add(tagRst.m_log_type); // 0.注释; AryValue.ElementAt(dwIndex).Add(tagRst.m_log_opt); // 1.注释; AryValue.ElementAt(dwIndex).Add(tagRst.m_log_date); // 2.注释; AryValue.ElementAt(dwIndex).Add(tagRst.m_log_generant); // 3.注释; AryValue.ElementAt(dwIndex).Add(tagRst.m_log_content); // 4.注释; dwIndex++; if ( AryValue.GetSize() <= dwIndex ) break; tagRst.MoveNext(); } AryValue.SetSize(dwIndex,1); tagRst.Close(); }