📄 mydoc.cpp
字号:
// MyDoc.cpp : implementation of the CMyDoc class
//
#include "stdafx.h"
#include "My.h"
#include "MyDoc.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CMyDoc
IMPLEMENT_DYNCREATE(CMyDoc, CDocument)
BEGIN_MESSAGE_MAP(CMyDoc, CDocument)
//{{AFX_MSG_MAP(CMyDoc)
ON_COMMAND(ID_BROWSE, OnBrowse)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CMyDoc construction/destruction
CMyDoc::CMyDoc()
{
// TODO: add one-time construction code here
}
CMyDoc::~CMyDoc()
{
::CoUninitialize();
}
BOOL CMyDoc::OnNewDocument()
{
if (!CDocument::OnNewDocument())
return FALSE;
::CoInitialize(NULL);
try
{
// 创建Connection对象
m_pConnection.CreateInstance("ADODB.Connection");
// 设置连接字符串,必须是BSTR型或者_bstr_t类型
_bstr_t strConnect ="Provider=Microsoft.Jet.OLEDB.4.0; Data Source=Address1.mdb;";
//"driver={SQL Server}; Server=jyc;Database=Address;UID=sa;PWD=123456;";
//"Provider=SQLOLEDB; Server=jyc;Database=Address;UID=sa;PWD=123456;";
//通过Jet数据引擎对Access 2000数据库的连接
//"Provider=Microsoft.Jet.OLEDB.4.0; Data Source=Address1.mdb;";
//提供DSN数据源对任何支持ODBC的数据库进行连接//"DSN=通讯录;";
//"Data Source=通讯录;";
m_pConnection->Open(strConnect,"","",adModeUnknown);
}
// 捕捉异常
catch(_com_error e)
{
// 显示错误信息
AfxMessageBox(e.Description());
}
return TRUE;
}
/////////////////////////////////////////////////////////////////////////////
// CMyDoc serialization
void CMyDoc::Serialize(CArchive& ar)
{
if (ar.IsStoring())
{
// TODO: add storing code here
}
else
{
// TODO: add loading code here
}
}
/////////////////////////////////////////////////////////////////////////////
// CMyDoc diagnostics
#ifdef _DEBUG
void CMyDoc::AssertValid() const
{
CDocument::AssertValid();
}
void CMyDoc::Dump(CDumpContext& dc) const
{
CDocument::Dump(dc);
}
#endif //_DEBUG
/////////////////////////////////////////////////////////////////////////////
// CMyDoc commands
void CMyDoc::OnBrowse()
{
m_pRecordset.CreateInstance(__uuidof(Recordset));
m_pRecordset->CursorLocation=adUseClient;
m_pRecordset->Open("select * from Address order by ID",m_pConnection.GetInterfacePtr(),adOpenDynamic,adLockOptimistic,adCmdText);
long it=m_pRecordset->RecordCount;
m_pRecordset->MoveFirst();
CString m_ID,Name,HomePhone,MobilePhone,OfficePhone,Address,PostAddress,PostID,Remark;
str="";
_variant_t var;
try
{
while(!m_pRecordset->adoEOF)
{
var=m_pRecordset->GetCollect("ID");
if(var.vt==VT_NULL)
m_ID="";
else
m_ID.Format("%d",var.iVal);
var=m_pRecordset->GetCollect("Name");
if(var.vt==VT_NULL)
Name="";
else
Name=(LPCTSTR)(_bstr_t)var; //.bstrVal
var=m_pRecordset->GetCollect("Home_Phone");
if(var.vt==VT_NULL)
HomePhone="";
else
HomePhone=(LPCTSTR)(_bstr_t)var;
var=m_pRecordset->GetCollect("Mobile_Phone");
if(var.vt==VT_NULL)
MobilePhone="";
else
MobilePhone=(LPCTSTR)(_bstr_t)var;
var=m_pRecordset->GetCollect("Office_Phone");
if(var.vt==VT_NULL)
OfficePhone="";
else
OfficePhone=(LPCTSTR)(_bstr_t)var;
var=m_pRecordset->GetCollect("Address");
if(var.vt==VT_NULL)
Address="";
else
Address=(LPCTSTR)(_bstr_t)var;
var=m_pRecordset->GetCollect("Post_Address");
if(var.vt==VT_NULL)
PostAddress="";
else
PostAddress=(LPCTSTR)(_bstr_t)var;
var=m_pRecordset->GetCollect("Post_ID");
if(var.vt==VT_NULL)
PostID="";
else
PostID=(LPCTSTR)(_bstr_t)var;
var=m_pRecordset->GetCollect("Remark");
if(var.vt==VT_NULL)
Remark="";
else
Remark=(LPCTSTR)(_bstr_t)var;
str+=m_ID+Name+HomePhone+MobilePhone+OfficePhone+Address+PostAddress+PostID+Remark+'\n';
m_pRecordset->MoveNext();
}
}
catch(_com_error* e)
{
AfxMessageBox(e->ErrorMessage());
}
UpdateAllViews(NULL);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -