webinfoset.cpp
来自「深入浅出Visual C++入门进阶与应用实例 随书光盘 作者 何志丹」· C++ 代码 · 共 155 行
CPP
155 行
// LinkFormatSet.cpp : implementation file
//
#include "stdafx.h"
#include "WebInfoSet.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CWebInfoSet
IMPLEMENT_DYNAMIC(CWebInfoSet, CRecordset)
CWebInfoSet::CWebInfoSet(CDatabase* pdb)
: CRecordset(/*pdb*/NULL == pdb ? CDB::GetDefaultDB() : pdb)
{//pdb为空时,取默认数据库
//{{AFX_FIELD_INIT(CWebInfoSet)
m_ID = 0;
m_WebName = _T("");
m_LinkFormat = _T("");
m_strLink1 = _T("");
m_strLink2 = _T("");
m_nFields = 5;
//}}AFX_FIELD_INIT
m_nDefaultType = snapshot;
}
CString CWebInfoSet::GetDefaultConnect()
{
ASSERT(false);//不会被调用,因为重载了构造函数
//return _T("ODBC;DSN=community");
return _T("ODBC;DSN=" + CDB::m_strDsn);
}
CString CWebInfoSet::GetDefaultSQL()
{
return _T("[WebInfo]");
}
void CWebInfoSet::DoFieldExchange(CFieldExchange* pFX)
{
//{{AFX_FIELD_MAP(CWebInfoSet)
pFX->SetFieldType(CFieldExchange::outputColumn);
RFX_Long(pFX, _T("[ID]"), m_ID);
RFX_Text(pFX, _T("[WebName]"), m_WebName);
RFX_Text(pFX, _T("[LinkFormat]"), m_LinkFormat);
RFX_Text(pFX, _T("[Link1]"), m_strLink1);
RFX_Text(pFX, _T("[Link2]"), m_strLink2);
//}}AFX_FIELD_MAP
}
/////////////////////////////////////////////////////////////////////////////
// CWebInfoSet diagnostics
#ifdef _DEBUG
void CWebInfoSet::AssertValid() const
{
CRecordset::AssertValid();
}
void CWebInfoSet::Dump(CDumpContext& dc) const
{
CRecordset::Dump(dc);
}
#endif //_DEBUG
//==============================================================================//
// 静态成员函数
//==============================================================================//
//增加一种链接格式,由于sql语句无法返回新生成的ID,故用此类的一般成员函数
bool CWebInfoSet::AddLinkFormat(CString strWebName, CString strLinkFormat,long &nID)
{
CWebInfoSet rs(CDB::GetDefaultDB());
try
{
rs.Open(CRecordset::dynaset);
rs.AddNew();
rs.m_WebName = strWebName ;
rs.m_LinkFormat = strLinkFormat ;
rs.Update();
rs.MoveLast();//用update没有刷新,无法得到id的值
nID = rs.m_ID ;
rs.Close();
}
catch(CDBException * e)
{
ASSERT(false);
e->m_strError;
return false;
}
return true ;
}
//删除一种链接格式
bool CWebInfoSet::DeleteLinkFormat(long nID)
{
//取得默认库
CDatabase * pDatabase = CDB::GetDefaultDB() ;
if(NULL == pDatabase || !pDatabase->IsOpen())
{
ASSERT(false);
return false;
}
//执行sql语句
CString strSQL;
strSQL.Format("delete * from WebInfo where ID= %d",nID);
try
{
pDatabase->ExecuteSQL(strSQL);
}
catch(CDBException* e)
{
ASSERT(false);
e->m_strError;
return false;
}
return true ;
}
//编辑一种链接格式
bool CWebInfoSet::EditLinkFormat(long nID, CString strWebName, CString strLinkFormat)
{
//取得默认库
CDatabase * pDatabase = CDB::GetDefaultDB() ;
if(NULL == pDatabase || !pDatabase->IsOpen())
{
ASSERT(false);
return false;
}
//执行sql语句
CString strSQL;
strSQL.Format("update WebInfo set WebName=\'%s\',LinkFormat=\'%s\' WHERE ID= %d",strWebName,strLinkFormat,nID);
try
{
pDatabase->ExecuteSQL(strSQL);
}
catch(CDBException* e)
{
ASSERT(false);
e->m_strError;
return false;
}
return true ;
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?