MFC---ADO 调用存储过程
来源:互联网 发布:js table 动态删除 编辑:程序博客网 时间:2024/05/01 23:31
界面:
存储过程:
/*话务统计信息查询。通过用户选定的小区(cellid),开始时间(startTime),结束时间(endTime), 计算得到小时级话务量(avgTraff),小时级拥塞率(congsP),小时级半速率话务量比例(thtraffP)startTime,endTime 格式为YYYYMMDDhh时间time存储格式为int,含义为hhmmss,time/10000为小时日期date格式为YYYYMMDD*/create proc TraffStatisticInfo (@cellid int, @startTime int, @endTime int) as beginselect (date*100 + time/10000) as hour, avg(traff) as avgTraff, sum( congsnum )/sum ( callnum) as congsP,sum( thtraff )/sum( traff) as thtraffPfrom datawhere cellid = cellidand (date*100 + time/10000) >= @startTime and (date*100 + time/10000) <= @endTimegroup by (date*100 + time/10000)order by (date*100 + time/10000)end调用:exec TraffStatisticInfo 9011, 2007101416, 2007101720
“确定”按钮
这里用到了上一篇中编写的CDataBase类,用于与数据库连接。
void TraffStatisticDlg::OnQuery() { // TODO: Add your control notification handler code here //UpdateData(FALm_StartDateCtlSE); CString CellID; //存储过程第1个参数 GetDlgItem(IDC_COMBO_CellID)->GetWindowText(CellID); //获得组合框中的选中内容 int cellID = _ttoi(CellID); CTime m_date; ( (CDateTimeCtrl*)GetDlgItem(IDC_StartDate) ) -> GetTime(m_date); int year1 = m_date.GetYear(); int month1 = m_date.GetMonth(); int day1 = m_date.GetDay(); ( (CDateTimeCtrl*)GetDlgItem(IDC_StartHour) ) -> GetTime(m_date); int hour1 = m_date.GetHour(); ( (CDateTimeCtrl*)GetDlgItem(IDC_EndDate) ) -> GetTime(m_date); int year2 = m_date.GetYear(); int month2 = m_date.GetMonth(); int day2 = m_date.GetDay(); ( (CDateTimeCtrl*)GetDlgItem(IDC_EndHour) ) -> GetTime(m_date); int hour2 = m_date.GetHour(); //YYYYMMDDHH int startTime = year1 * 1000000 + month1 * 10000 + day1*100 + hour1; //存储过程第2个参数 int endTime = year2 * 1000000 + month2 * 10000 + day2*100 + hour2; //存储过程第3个参数 CString s; s.Format("%d", startTime); AfxMessageBox(s); s.Format("%d", endTime); AfxMessageBox(s);////////////////////////////////////////////////////////////////////////////////////////////////存储过程开始 CString strCommand = _T("TraffStatisticInfo"); //存储过程名称 _CommandPtr pCommand; CDataBase DB; //自己定义的类 DB.Connect(); HRESULT hr; if ((FAILED(hr = pCommand.CreateInstance(__uuidof(Command)))))//创建Command对象实例 _com_issue_error(hr); pCommand->ActiveConnection = DB.m_Connect; //将建立的连接赋值给pCommand pCommand->CommandType = adCmdStoredProc; pCommand->CommandText = (LPCTSTR)strCommand; //命令字符串 _ParameterPtr pCellID; //存储过程中的参数 _ParameterPtr pStartTime; _ParameterPtr pEndTime; pCellID.CreateInstance(__uuidof(Parameter)); pStartTime.CreateInstance(__uuidof(Parameter)); pEndTime.CreateInstance(__uuidof(Parameter)); pCellID = pCommand->CreateParameter("cellid",adInteger,adParamInput,20,(_variant_t)(long)cellID); //给参数设置各属性 pStartTime = pCommand->CreateParameter("startTime",adInteger,adParamInput,20,(_variant_t)(long)startTime); //如果是字符型,将adInteger改成adVarChar pEndTime = pCommand->CreateParameter("endTime",adInteger,adParamInput,20,(_variant_t)(long)endTime); pCommand->Parameters->Append(pCellID); //加入到Command对象的参数集属性中 pCommand->Parameters->Append(pStartTime); pCommand->Parameters->Append(pEndTime); _RecordsetPtr pRst; pRst.CreateInstance(__uuidof(Recordset)); pRst = pCommand->Execute(NULL, NULL, adCmdStoredProc); //执行存储过程 int len = 50; int *hour = (int *)malloc(sizeof(int)*len); double *avgTraff = (double *)malloc(sizeof(double)*len); double *congsP = (double *)malloc(sizeof(double)*len); double *thtraffP = (double *)malloc(sizeof(double)*len); int i = 0; for(; !pRst->adoEOF; pRst->MoveNext()) //获取记录集中的数据 { _variant_t hr = pRst->GetCollect("hour"); _variant_t af = pRst->GetCollect("avgTraff"); _variant_t cp = pRst->GetCollect("congsP"); _variant_t tp = pRst->GetCollect("thtraffP"); hour[i] = hr.intVal; avgTraff[i] = af.dblVal; congsP[i] = cp.dblVal; thtraffP[i] = tp.dblVal; i++; } pRst->Close(); DB.ExitConnect();}
0 0
- MFC---ADO 调用存储过程
- ado调用存储过程
- ado调用存储过程
- VS2010-MFC通过ADO调用SQLServer存储过程
- 使用ADO调用存储过程
- 使用ADO调用存储过程
- vc ado调用存储过程
- 使用ADO调用存储过程
- 使用ADO调用存储过程
- 使用ADO调用存储过程
- 使用ADO调用存储过程
- ADO.NET调用存储过程
- 使用ADO调用存储过程
- 使用ADO调用存储过程
- ADO.NET调用存储过程
- VC中使用ADO调用存储过程
- [.NET]ADO.NET调用存储过程
- VC中使用ADO调用存储过程
- 推送流程
- MFC的实现摄像头(opencv)
- Android自定义属性,format详解
- Hybrid App(混合模式移动应用)开发工具
- 遗传算法与C++实现
- MFC---ADO 调用存储过程
- android跨进程事件注入(程序模拟用户输入,getevent与sendevent)
- BP神经网络原理及C++实战
- startActivityForResult()使用说明
- sscanf 函数使用
- DOM4J的解析方式
- linux下不是很完美的提高android虚拟机的启动速度
- bzoj3252 攻略
- 对深拷贝与浅拷贝的再次理解