分类: C/C++
2008-03-14 09:04:46
2、然后在 IDE 中建立基于对话框的程序,并创建基类为 CRecordset 的记录集类,如下图所示;
3、在StdAfx.h头文件中加入#include
4、在对话框程序的 Dlg 中加入 CDataSet dataSet;并添加 #include "DataSet.h" 头文件;
5、在OnInitDialog() 函数中加入两个定时器;
SetTimer(1,1000,NULL);//1秒一个数据 SetTimer(2,5000,NULL);
6、在时钟函数OnTimer(UINT nIDEvent)加入;
switch(nIDEvent) { case 1: { if(dataSet.Open(AFX_DB_USE_DEFAULT_TYPE,"select * from 11")) { dataSet.AddNew(); CTime t1; int nYear1,nDay,nTime,nSecond; t1=CTime::GetCurrentTime(); nYear1=t1.GetYear(); nDay=t1.GetDay(); nTime=t1.GetHour(); nSecond=t1.GetSecond(); dataSet.m_Date=t1; dataSet.m_LT301_PV=6; dataSet.m_LT301_SP=nYear1; dataSet.m_LT302_SP=nDay; dataSet.m_LT303=nTime; dataSet.m_PT301_PV=nSecond; dataSet.m_PT301_SP=5; dataSet.m_PT303=nYear1; dataSet.m_ZC301_1=nDay; dataSet.m_ZC302_1=nTime; dataSet.m_ZC302_2=nSecond; dataSet.Update(); dataSet.Close(); } break; } case 2: { CString strSql; CTime tm=CTime::GetCurrentTime (); CTimeSpan tspan(0,0,10,0);//保存10分钟数据 CTime tt=tm-tspan; CString strTime; strTime.Format("#%04d/%02d/%02d %d:%02d:%02d#",tt.GetYear(),tt.GetMonth(),\ tt .GetDay(),tt.GetHour(),tt.GetMinute(),tt.GetSecond()); strSql.Format("select * from 11 where Date<%s",strTime); if(dataSet.Open(AFX_DB_USE_DEFAULT_TYPE,strSql)) { while(!dataSet.IsEOF()) { dataSet.Delete(); dataSet.MoveNext(); } dataSet.Close(); } break; } } CDialog::OnTimer(nIDEvent);以上代码就可以实现数据的自动保存和删除,上面例子可以保存10分钟的数据,一分钟生成一个数据,数据类型为工程中位号数据,没有任何意义。希望本文给大家ODBC数据编程有帮助。