MFC工控项目实例三十五读取数据库数据

点击按钮打开文件夹中的数据文件生成曲线

相关代码

cpp 复制代码
void CSEAL_PRESSUREDlg::OnTesReport() 
{
 	
CFileDialog dlgOpen(TRUE/*TRUE打开,FALSE保存*/,
        0,
        0,
        OFN_NOCHANGEDIR|OFN_FILEMUSTEXIST,
        "All Files(mdb.*)|*.*||",//文件过滤器
        NULL);
  
CString  mdb_1, mdb_2;
    dlgOpen.m_ofn.lpstrInitialDir =theApp.m_DataPath;
    if(IDOK == dlgOpen.DoModal())
	{
             mdb_1=dlgOpen.GetPathName();
             mdb_2=dlgOpen.GetFileTitle();    
			 UpdateData(true); 
 _variant_t RecordsAffected; 
    //链接数据库
       try
	   {
		//创建连接对象实例
		m_pConnection.CreateInstance("ADODB.Connection");	
	CString strConnect="DRIVER={Microsoft Access Driver (*.mdb)};\
			uid=;pwd=;DBQ="+mdb_1;	
		m_pConnection->Open((_bstr_t)strConnect,"","",adModeUnknown);  
	   }	
          catch(...)
		  {
		MessageBox("连接数据库失败");
		return;
		  }    
            try
			{
       m_pRecordset.CreateInstance("ADODB.Recordset"); //为Recordset对象创建实例
       _bstr_t strCmd = "SELECT * FROM  "+mdb_2;
       m_pRecordset = m_pConnection->Execute(strCmd, &RecordsAffected, adCmdText);
			}
              catch(_com_error &e)
			  {
       AfxMessageBox(e.Description());
			  }
			   m_ctrlPlot_1.RemoveAllChannels();
               m_ctrlPlot_1.AddChannel();
                while(!m_pRecordset->adoEOF)
				{	
	 	 double X=(double)atof((char*)(_bstr_t)m_pRecordset->GetCollect("X值"));
		 double Y=(double)atof((char*)(_bstr_t)m_pRecordset->GetCollect("Y值"));
	 	 m_ctrlPlot_1.GetChannel(0).AddXY(X/10, Y);	
		m_pRecordset->MoveNext();	//将记录集指针移动到下一条记
				}
	}	
}
相关推荐
橘子真甜~5 分钟前
C/C++ Linux网络编程15 - 网络层IP协议
linux·网络·c++·网络协议·tcp/ip·计算机网络·网络层
JIngJaneIL1 小时前
基于springboot + vue古城景区管理系统(源码+数据库+文档)
java·开发语言·前端·数据库·vue.js·spring boot·后端
asiwxy2 小时前
OpenGL 材质
c++
微学AI2 小时前
复杂时序场景的突围:金仓数据库是凭借什么超越InfluxDB?
数据库
阿华hhh2 小时前
Linux系统编程(标准io)
linux·开发语言·c++
廋到被风吹走2 小时前
【数据库】【Redis】定位、优势、场景与持久化机制解析
数据库·redis·缓存
程序喵大人3 小时前
推荐个 C++ 练习平台
开发语言·c++·工具推荐
有想法的py工程师3 小时前
PostgreSQL + Debezium CDC 踩坑总结
数据库·postgresql
Nandeska3 小时前
2、数据库的索引与底层数据结构
数据结构·数据库
fpcc3 小时前
跟我学C++中级篇——std::is_invocable的分析应
c++