📄 addressdoc.cpp
字号:
// ADDRESSDoc.cpp : implementation of the CADDRESSDoc class
//
#include "stdafx.h"
#include "ADDRESS.h"
#include "ADDRESSDoc.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CADDRESSDoc
IMPLEMENT_DYNCREATE(CADDRESSDoc, CDocument)
BEGIN_MESSAGE_MAP(CADDRESSDoc, CDocument)
//{{AFX_MSG_MAP(CADDRESSDoc)
//ON_COMMAND(ID_EXIT, OnExit)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CADDRESSDoc construction/destruction
CADDRESSDoc::CADDRESSDoc()
{
// TODO: add one-time construction code here
}
CADDRESSDoc::~CADDRESSDoc()
{
}
BOOL CADDRESSDoc::OnNewDocument()
{
if (!CDocument::OnNewDocument())
return FALSE;
// TODO: add reinitialization code here
// (SDI documents will reuse this document)
//打开数据库
HRESULT result = m_dbaddresslist.Open();
if(FAILED(result))
AfxMessageBox("open database failed!");
//设置程序标题
SetTitle("通讯录管理系统");
return TRUE;
}
/////////////////////////////////////////////////////////////////////////////
// CADDRESSDoc serialization
void CADDRESSDoc::Serialize(CArchive& ar)
{
if (ar.IsStoring())
{
// TODO: add storing code here
}
else
{
// TODO: add loading code here
}
}
/////////////////////////////////////////////////////////////////////////////
// CADDRESSDoc diagnostics
#ifdef _DEBUG
void CADDRESSDoc::AssertValid() const
{
CDocument::AssertValid();
}
void CADDRESSDoc::Dump(CDumpContext& dc) const
{
CDocument::Dump(dc);
}
#endif //_DEBUG
/////////////////////////////////////////////////////////////////////////////
// CADDRESSDoc commands
void CADDRESSDoc::DeleteContents()
{
//关闭数据库
m_dbaddresslist.Close();
m_dbaddresslist.m_session.Close();
CDocument::DeleteContents();
}
int CADDRESSDoc::AddPerson(PERSON &person)
{
/*返回值: 0 已经存在
-1 添加失败
1 添加成功
*/
//判断是否存在该联系人了
CString strSql;
strSql.Format("select * from addresslist where groups = '%s' and name = '%s' and mobile = '%s' and qq = '%s' and \
address ='%s' and housetel = '%s' and office = '%s' and officetel = '%s' and email = '%s'",
person.strGroupName,person.strName,person.strMobile,person.strQq,\
person.strAddress,person.strHomeTel,person.strOffice,person.strOfficeTel,person.strEmail);
CCommand<CAccessor<CAddress_listAccessor> > dbaddresslist;
long* pCount = new long;
if(dbaddresslist.Open(m_dbaddresslist.m_session,strSql,NULL,pCount) != S_OK)
{
AfxMessageBox("error");
delete pCount;
return -1;
}
if(dbaddresslist.MoveFirst() == S_OK)
{
//dbaddresslist.Close();
delete pCount;
return 0;
}
delete pCount;
//m_dbaddresslist.Close();
m_dbaddresslist.MoveLast();
_tcscpy( m_dbaddresslist.m_groups,person.strGroupName );
_tcscpy(m_dbaddresslist.m_name,person.strName);
_tcscpy(m_dbaddresslist.m_qq,person.strQq);
_tcscpy(m_dbaddresslist.m_email,person.strEmail);
_tcscpy(m_dbaddresslist.m_housetel,person.strHomeTel);
_tcscpy(m_dbaddresslist.m_mobile,person.strMobile);
_tcscpy(m_dbaddresslist.m_office,person.strOffice);
_tcscpy(m_dbaddresslist.m_officetel,person.strOfficeTel);
_tcscpy(m_dbaddresslist.m_address,person.strAddress);
HRESULT hResult = m_dbaddresslist.Insert();
if( FAILED( hResult ) )
{
AfxMessageBox( _T( "Error inserting the current record" ) );
return -1;
}
return 1;
}
BOOL CADDRESSDoc::DeletePerson(CString strSql)
{
CCommand<CAccessor<CAddress_listAccessor> > dbaddresslist;
long* pCount = new long;
if(dbaddresslist.Open(m_dbaddresslist.m_session,strSql,
NULL,pCount,DBGUID_DEFAULT,FALSE) != S_OK)
{
AfxMessageBox("error");
delete pCount;
return FALSE;
}
delete pCount;
dbaddresslist.Close();
return TRUE;
}
/*void CADDRESSDoc::OnExit()
{
// TODO: Add your command handler code here
exit(0);
}*/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -