⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mydoc.cpp

📁 随着计算机信息技术的飞速发展
💻 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 + -