工控编程吧
标题:
298上位机VC MFC使用ADO计算域最大最小平均值
[打印本页]
作者:
qq263946146
时间:
2016-9-25 19:33
标题:
298上位机VC MFC使用ADO计算域最大最小平均值
(, 下载次数: 0)
上传
点击文件名下载附件
ADO计算域最大最小平均值
功能展示
ADO数据库程序中,求极值其实就是对记录中某个字段值的范围进行界定,另外求平均值也是很常用的数据处理过程,我们当前例程就实现指定记录集一字段中最大,最小,平均值的获取,效果如图,程序运行会初始化连接根目录数据库文件,点击界面的三个按钮就会分别获取我们想要的最大,大小,平均值;
要点提示
求平均值的SQL语句为
select AVG(FieldName) from TableName where Condition
求最大值的SQL语句为
select MAX(FieldName) from TableName
求最小值的SQL语句为
select MIN(FieldName) from TableName
实现功能
1.新建基于对话框的应用程序
2.在App类的InitInstance()函数中添加代码AfxOleInit();//初始化COM,创建ADO连接等操作
3.在stdafx.h中加入ADO支持库
#import “c:\program files\common files\system\ado\msado15.dll” no_namespace rename (“EOF”, “adoEOF”) 及#include "icrsint.h"//IADORecordBinding 头文件
4.主对话框中添加变量public:
_ConnectionPtr m_pConnection; 并初始化
HRESULT hr;
try
{
hr =m_pConnection.CreateInstance("ADODB.Connection");//创建Connection对象
if(SUCCEEDED(hr))
{
hr=m_pConnection->Open("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=stuinf.mdb","","",adModeUnknown);
}
}
catch(_com_error e)///捕捉异常
{
CString errormessage;
errormessage.Format("连接数据库失败!\r\n错误信息:%s",e.ErrorMessage());
AfxMessageBox(errormessage);///显示错误信息
}
5.按照例程界面,添加三编辑框,IDC_EDIT1,IDC_EDIT2,IDC_EDIT3,三按钮<年龄域最小值查找><年龄域最大值查找><good学生年龄均值>关联按钮的点击函数
void CGkbc8Dlg::OnFindmin()
{
_RecordsetPtr m_pRecordset;
_variant_t RecordsAffected;
m_pRecordset =m_pConnection->Execute("select MIN(age) from course",&RecordsAffected,adCmdText);
_variant_t vIndex = (long)0;
_variant_t vCount = m_pRecordset->GetCollect(vIndex);
m_pRecordset->Close();
m_pRecordset.Release();
SetDlgItemInt(IDC_EDIT1,vCount.lVal);
}
void CGkbc8Dlg::OnFindmax()
{
_RecordsetPtr m_pRecordset;
_variant_t RecordsAffected;
m_pRecordset =m_pConnection->Execute("select MAX(age) from course",&RecordsAffected,adCmdText);
_variant_t vIndex = (long)0;
_variant_t vCount = m_pRecordset->GetCollect(vIndex);
m_pRecordset->Close();//关闭记录集
m_pRecordset.Release();
SetDlgItemInt(IDC_EDIT2,vCount.lVal);
}
void CGkbc8Dlg::OnAverage()
{
_RecordsetPtr m_pRecordset;
_variant_t RecordsAffected;
m_pRecordset=m_pConnection->Execute("select AVG(age) from course where comment='good'",&RecordsAffected,adCmdText);
_variant_t vIndex = (long)0;
_variant_t vCount = m_pRecordset->GetCollect(vIndex);
m_pRecordset->Close();
m_pRecordset.Release();
SetDlgItemInt(IDC_EDIT3,(long)vCount);
}
我们来演示功能实现过程
[iqiyi]http://player.video.qiyi.com/37ca46f668b7ab9b7b37361cf6b58a66/0/0/w_19rsu6iem1.swf-albumId=6391660309-tvId=6391660309-isPurchase=0-cnId=12[/iqiyi]
(, 下载次数: 0)
上传
点击文件名下载附件 [weixinlianxi]1[/weixinlianxi]
[note]1[/note]
欢迎光临 工控编程吧 (https://www.gkbc8.com/)
Powered by Discuz! X3.4