WEB开发网
开发学院软件开发VC 基于 ODBC 自动存储自动定期删除数据库记录 阅读

基于 ODBC 自动存储自动定期删除数据库记录

 2007-03-17 22:00:32 来源:WEB开发网   
核心提示:本文示例源代码或素材下载 本人在近期一电厂控制工程中,用户要求我们程序对数据要有自动保存和定期删除功能,基于 ODBC 自动存储自动定期删除数据库记录,因为我们以前是做 DCS 加强系统,DCS具有数据的自动处理功能,数据类型为工程中位号数据,没有任何意义,不需要我们做,为了满足用户需要

本文示例源代码或素材下载

本人在近期一电厂控制工程中,用户要求我们程序对数据要有自动保存和定期删除功能,因为我们以前是做 DCS 加强系统,DCS具有数据的自动处理功能,不需要我们做。为了满足用户需要,应用必须实现自动数据处理。本文下面就来介绍如何使用 VC 实现基于 ODBC 数据库的自动删除和存储。希望本文提供的方法对你有所帮助。

首先,注册数据源。如图所示:

2、然后在 IDE 中建立基于对话框的程序,并创建基类为 CRecordset 的记录集类,如下图所示;

3、在StdAfx.h头文件中加入#include <afxdb.h>;

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数据编程有帮助。

Tags:基于 ODBC 自动

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接