timeset.cpp

来自「柔性制造是一种十分重要的加工生产模式」· C++ 代码 · 共 351 行

CPP
351
字号
// timeset.cpp : implementation file
//

#include "stdafx.h"
#include "flexible.h"
#include "timeset.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

/////////////////////////////////////////////////////////////////////////////
// Ctimeset dialog


Ctimeset::Ctimeset(CWnd* pParent /*=NULL*/)
	: CDialog(Ctimeset::IDD, pParent)
{
	//{{AFX_DATA_INIT(Ctimeset)
		// NOTE: the ClassWizard will add member initialization here
	//}}AFX_DATA_INIT
}


void Ctimeset::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(Ctimeset)
		// NOTE: the ClassWizard will add DDX and DDV calls here
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(Ctimeset, CDialog)
	//{{AFX_MSG_MAP(Ctimeset)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// Ctimeset message handlers

void Ctimeset::OnOK() 
{
    CString strSQL11;
	strSQL11="select 时间一 from 时间表";
	int j11=0;
	//打开记录集 选择表名
	if(!OpenRecordSet(m_pRecordset,strSQL11))
	{
		AfxMessageBox("没有成功打开数据表");
		return;
	}	
	if(!m_pRecordset->BOF)
	{
		m_pRecordset->MoveFirst();
	}
	while(!m_pRecordset->adoEOF)
	{
		time_gongyi[0][j11]=atoi(VariantToCString(m_pRecordset->GetCollect("时间一")));
	    j11++;
		m_pRecordset->MoveNext();
	}

   //关闭
	m_pRecordset->Close();
	m_pRecordset=NULL;	

		CString strSQL21;
	strSQL21="select 时间二 from 时间表";
	int j21=0;
	//打开记录集 选择表名
	if(!OpenRecordSet(m_pRecordset,strSQL21))
	{
		AfxMessageBox("没有成功打开数据表");
		return;
	}	
	if(!m_pRecordset->BOF)
	{
		m_pRecordset->MoveFirst();
	}
	while(!m_pRecordset->adoEOF)
	{
		time_gongyi[1][j21]=atoi(VariantToCString(m_pRecordset->GetCollect("时间二")));
	    j21++;
		m_pRecordset->MoveNext();
	}

   //关闭
	m_pRecordset->Close();
	m_pRecordset=NULL;

	CString strSQL31;
	strSQL31="select 时间三 from 时间表";
	int j31=0;
	//打开记录集 选择表名
	if(!OpenRecordSet(m_pRecordset,strSQL31))
	{
		AfxMessageBox("没有成功打开数据表");
		return;
	}	
	if(!m_pRecordset->BOF)
	{
		m_pRecordset->MoveFirst();
	}
	while(!m_pRecordset->adoEOF)
	{
		time_gongyi[2][j31]=atoi(VariantToCString(m_pRecordset->GetCollect("时间三")));
	    j31++;
		m_pRecordset->MoveNext();
	}

   //关闭
	m_pRecordset->Close();
	m_pRecordset=NULL;	

	CString strSQL41;
	strSQL41="select 时间四 from 时间表";
	int j41=0;
	//打开记录集 选择表名
	if(!OpenRecordSet(m_pRecordset,strSQL41))
	{
		AfxMessageBox("没有成功打开数据表");
		return;
	}	
	if(!m_pRecordset->BOF)
	{
		m_pRecordset->MoveFirst();
	}
	while(!m_pRecordset->adoEOF)
	{
		time_gongyi[3][j41]=atoi(VariantToCString(m_pRecordset->GetCollect("时间四")));
	    j41++;
		m_pRecordset->MoveNext();
	}

   //关闭
	m_pRecordset->Close();
	m_pRecordset=NULL;


		CString strSQL51;
	strSQL51="select 时间五 from 时间表";
	int j51=0;
	//打开记录集 选择表名
	if(!OpenRecordSet(m_pRecordset,strSQL51))
	{
		AfxMessageBox("没有成功打开数据表");
		return;
	}	
	if(!m_pRecordset->BOF)
	{
		m_pRecordset->MoveFirst();
	}
	while(!m_pRecordset->adoEOF)
	{
		time_gongyi[4][j51]=atoi(VariantToCString(m_pRecordset->GetCollect("时间五")));
	    j51++;
		m_pRecordset->MoveNext();
	}

   //关闭
	m_pRecordset->Close();
	m_pRecordset=NULL;  



		CString strSQL61;
	strSQL61="select 时间六 from 时间表";
	int j61=0;
	//打开记录集 选择表名
	if(!OpenRecordSet(m_pRecordset,strSQL61))
	{
		AfxMessageBox("没有成功打开数据表");
		return;
	}	
	if(!m_pRecordset->BOF)
	{
		m_pRecordset->MoveFirst();
	}
	while(!m_pRecordset->adoEOF)
	{
		time_gongyi[5][j61]=atoi(VariantToCString(m_pRecordset->GetCollect("时间六")));
	    j61++;
		m_pRecordset->MoveNext();
	}

   //关闭
	m_pRecordset->Close();
	m_pRecordset=NULL;	 
	
		CString strSQL71;
	strSQL71="select 时间七 from 时间表";
	int j71=0;
	//打开记录集 选择表名
	if(!OpenRecordSet(m_pRecordset,strSQL71))
	{
		AfxMessageBox("没有成功打开数据表");
		return;
	}	
	if(!m_pRecordset->BOF)
	{
		m_pRecordset->MoveFirst();
	}
	while(!m_pRecordset->adoEOF)
	{
		time_gongyi[6][j71]=atoi(VariantToCString(m_pRecordset->GetCollect("时间七")));
	    j71++;
		m_pRecordset->MoveNext();
	}

   //关闭
	m_pRecordset->Close();
	m_pRecordset=NULL;


		CString strSQL81;
	strSQL81="select 时间八 from 时间表";
	int j81=0;
	//打开记录集 选择表名
	if(!OpenRecordSet(m_pRecordset,strSQL81))
	{
		AfxMessageBox("没有成功打开数据表");
		return;
	}	
	if(!m_pRecordset->BOF)
	{
		m_pRecordset->MoveFirst();
	}
	while(!m_pRecordset->adoEOF)
	{
		time_gongyi[7][j81]=atoi(VariantToCString(m_pRecordset->GetCollect("时间八")));
	    j81++;
		m_pRecordset->MoveNext();
	}

   //关闭
	m_pRecordset->Close();
	m_pRecordset=NULL;	
	CDialog::OnOK();
}


BOOL Ctimeset::OpenRecordSet(_RecordsetPtr &recPtr, CString &strSQL)
{
	CFlexibleApp* pApp=(CFlexibleApp*)AfxGetApp();
	//创建记录集对象
	m_pRecordset.CreateInstance(__uuidof(Recordset));
	//在ADO操作中建议语句中要常用try...catch()来捕获错误信息,
    //因为它有时会经常出现一些想不到的错误
	try
	{
		//从数据库中打开表
		recPtr->Open(strSQL.AllocSysString(), 
			pApp->m_pConnection.GetInterfacePtr(),
			adOpenDynamic,
			adLockOptimistic,
			adCmdText);
	}
	catch (_com_error e)
	{
		CString strError;
		strError.Format("警告: 打开数据表时发生异常。 错误信息: %s",\
			e.ErrorMessage());
		AfxMessageBox(strError);
		return FALSE;
	}
	return TRUE;
}


CString Ctimeset::VariantToCString(const _variant_t &var)
{
	CString strValue;	
	switch (var.vt)
	{
	case VT_BSTR://字符串
	case VT_LPSTR:
	case VT_LPWSTR:
		strValue = (LPCTSTR)(_bstr_t)var;
		break;
	case VT_I1://无符号字符
	case VT_UI1:
		strValue.Format("%d", var.bVal);
		break;
	case VT_I2://短整型
		strValue.Format("%d", var.iVal);
		break;
	case VT_UI2://无符号短整型
		strValue.Format("%d", var.uiVal);
		break;
	case VT_INT://整型
		strValue.Format("%d", var.intVal);
		break;
	case VT_I4: //整型
	case VT_I8: //长整型
		 strValue.Format("%d", var.lVal);
		break;
	case VT_UINT://无符号整型
		strValue.Format("%d", var.uintVal);
		break;
	case VT_UI4: //无符号整型
	case VT_UI8: //无符号长整型
		 strValue.Format("%d", var.ulVal);
		 break;
	case VT_VOID:
		strValue.Format("%8x", var.byref);
		break;
	case VT_R4://浮点型
		strValue.Format("%.4f", var.fltVal);
		break;
	case VT_R8://双精度型
		strValue.Format("%.8f", var.dblVal);
		break;
	case VT_DECIMAL: //小数
		strValue.Format("%.8f", (double)var);
		break;
	case VT_CY:
		{
			COleCurrency cy = var.cyVal;
			strValue = cy.Format();
		}
		break;
	case VT_BLOB:
	case VT_BLOB_OBJECT:
	case 0x2011:
		strValue = "[BLOB]";
		break;
	case VT_BOOL://布尔型		
		strValue = var.boolVal ? "TRUE" : "FALSE";
		break;
	case VT_DATE: //日期型
		{
			DATE dt = var.date;
			COleDateTime da = COleDateTime(dt); 
			strValue = da.Format("%Y-%m-%d %H:%M:%S");
		}
		break;
	case VT_NULL://NULL值
	case VT_EMPTY://空
		 strValue = "";
		 break;
	case VT_UNKNOWN://未知类型
	default:
		strValue = "UN_KNOW";
		break;
	}
	return strValue;
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?