Chinaunix首页 | 论坛 | 博客
  • 博客访问: 9450021
  • 博文数量: 1227
  • 博客积分: 10026
  • 博客等级: 上将
  • 技术积分: 20273
  • 用 户 组: 普通用户
  • 注册时间: 2008-01-16 12:40
文章分类

全部博文(1227)

文章存档

2010年(1)

2008年(1226)

我的朋友

分类: C/C++

2008-04-23 22:05:24

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

作者:

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

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("#d/d/d %d:d:d#",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数据编程有帮助。
阅读(444) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~