程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> VC >> 關於VC++ >> 基於ODBC自動存儲自動定期刪除數據庫記錄

基於ODBC自動存儲自動定期刪除數據庫記錄

編輯:關於VC++

本人在近期一電廠控制工程中,用戶要求我們程序對數據要有自動保存和定期刪除功能,因為我們以前是做 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數據編程有幫助。

本文配套源碼

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved