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

📄 plain.cpp

📁 运用ADO技术连接ACCESS数据库(改变连接字串就能连接SQL数据库)
💻 CPP
字号:
// PLAIN.cpp : implementation file
//

#include "stdafx.h"
#include "family_financ_system.h"
#include "PLAIN.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

/////////////////////////////////////////////////////////////////////////////
// CPLAIN dialog


CPLAIN::CPLAIN(CWnd* pParent /*=NULL*/)
	: CDialog(CPLAIN::IDD, pParent)
{
	//{{AFX_DATA_INIT(CPLAIN)
	m_plain_average = 0.0f;
	m_true_average = 0.0f;
	m_this_plain = 0.0f;
	m_this_l_plain = 0.0f;
	m_this_p_plain = 0.0f;
	//}}AFX_DATA_INIT
}


void CPLAIN::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CPLAIN)
	DDX_Control(pDX, IDC_LIST1, m_list);
	DDX_Text(pDX, IDC_EDIT1, m_plain_average);
	DDX_Text(pDX, IDC_EDIT2, m_true_average);
	DDX_Text(pDX, IDC_EDIT3, m_this_plain);
	DDX_Text(pDX, IDC_EDIT4, m_this_l_plain);
	DDX_Text(pDX, IDC_EDIT5, m_this_p_plain);
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(CPLAIN, CDialog)
	//{{AFX_MSG_MAP(CPLAIN)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CPLAIN message handlers

void CPLAIN::OnOK() 
{
	// TODO: Add extra validation here
	UpdateData(TRUE);
			CoInitialize(NULL);    //初始化COM组件
			_ConnectionPtr m_pConnection; 
			_RecordsetPtr m_pRecordset; 		
			m_pConnection.CreateInstance(__uuidof(Connection)); 
			m_pRecordset.CreateInstance(__uuidof(Recordset));  
			m_pConnection->Open(_bstr_t(Title1),"","",adModeUnknown); 
		CString	sqlstr="SELECT * FROM 月统计表 where (年=";
		CString	string_temp;
				string_temp.Format("%d",nYear);
				sqlstr=sqlstr+string_temp;
				sqlstr=sqlstr+") and (月=";
				string_temp.Format("%d",nMonth);
				sqlstr=sqlstr+string_temp;
				sqlstr=sqlstr+")";
			m_pRecordset->Open(_variant_t(sqlstr),                // 查询Demo表中所有字段 
							(IDispatch*)m_pConnection.GetInterfacePtr(), // 获取数据库的IDispatch指针 
							adOpenDynamic, 
							adLockOptimistic, 
							adCmdText); 
			if(!m_pRecordset->EndEOF)
			{			
				m_pRecordset->PutCollect("总计划支出",m_this_plain);; 
				m_pRecordset->PutCollect("生活计划支出",m_this_l_plain); 
				m_pRecordset->PutCollect("休闲计划支出",m_this_p_plain);  
				m_pRecordset->Update();
			}
			m_pRecordset->Close();     
			m_pConnection->Close();
			CoUninitialize();    //卸载COM组件
	UpdateData(FALSE);
	CDialog::OnOK();
}

BOOL CPLAIN::OnInitDialog() 
{
	CDialog::OnInitDialog();
	
	float float_sum1=0.0,float_sum2=0.0,float_temp=0.0;

	CString string_temp;
	// TODO: Add extra initialization here
	// 初始化列表
	m_list.SetExtendedStyle(LVS_EX_FULLROWSELECT);
	m_list.InsertColumn(0,"时间",LVCFMT_LEFT,60,-1);
	m_list.InsertColumn(1,"总计划支出",LVCFMT_LEFT,100,-1);
	m_list.InsertColumn(2,"实际总支出",LVCFMT_LEFT,100,-1);
	m_list.InsertColumn(3,"生活计划消费",LVCFMT_LEFT,110,-1);
	m_list.InsertColumn(4,"文娱计划消费",LVCFMT_LEFT,110,-1);
	int i=0;
	int nstep;
	_bstr_t temp;
	
	////////////////////////////////////////////////////////////////////////////////
	CoInitialize(NULL);    //初始化COM组件
	_ConnectionPtr pConn(__uuidof(Connection));    //实例化一个connection对象pConn
	_RecordsetPtr pRst(__uuidof(Recordset));    //实例化一个Recordset对象pRst
	_CommandPtr pCmd(__uuidof(Command));    //实例化一个Command对象pCmd
	pConn->ConnectionString=(_bstr_t)Title1;
	//通过pConn对象连接字符串,连接到ACCESS数据库
	HRESULT hr = pConn->Open("","","",adConnectUnspecified);
	// 以同步的方式进行连接  open("连接字串","用户名","密码","连接方式") 
	// 连接方式有"adConnectUnspecified"(同步) 和 "adAsyncConnect" (异步)
	pCmd->put_ActiveConnection(_variant_t((IDispatch*)pConn));
	pCmd->CommandText="SELECT * FROM 月统计表";    //通过pCmd对象访问数据库
	pRst=pCmd->Execute(NULL,NULL,adCmdText);
	for(;!pRst->EndEOF; pRst->MoveNext()) //  在数据库中寻找	pRecord->MoveFirst()
	{		
		temp=pRst->GetCollect("年");
		string_temp=(char *)temp;
		temp=pRst->GetCollect("月");
		string_temp=string_temp+"-"+(char *)temp;
		nstep=m_list.InsertItem(i,string_temp);
		
		temp=pRst->GetCollect("总计划支出");
		string_temp=(char *)temp;
		sscanf(string_temp,"%f",&float_temp);
		float_sum1=float_sum1+float_temp;
		float_temp=0.0;
		m_list.SetItemText(nstep,1,temp);

		temp=pRst->GetCollect("月支出");
		string_temp=(char *)temp;
		sscanf(string_temp,"%f",&float_temp);
		float_sum2=float_sum2+float_temp;
		m_list.SetItemText(nstep,2,temp);
		float_temp=0.0;

		temp=pRst->GetCollect("生活计划支出");
		m_list.SetItemText(nstep,3,temp);		
		temp=pRst->GetCollect("休闲计划支出");
		m_list.SetItemText(nstep,4,temp);
	}	
	//////////////////////////////////////////////////////////////////////
	pRst->Close();    //关闭对象
	pConn->Close();
	pCmd.Release();    //释放对象
	pRst.Release();
	pConn.Release();
	CoUninitialize();    //卸载COM组件
	/////////////////////////////////////////////////////////////////////
	m_plain_average=float_sum1/(nstep+1);
	m_true_average=float_sum2/(nstep+1);
	UpdateData(FALSE);
	
	return TRUE;  // return TRUE unless you set the focus to a control
	              // EXCEPTION: OCX Property Pages should return FALSE
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -