⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 datasource.cpp

📁 一个采用VC编写的
💻 CPP
字号:
// DataSource.cpp: implementation of the CDataSource class.
//
//////////////////////////////////////////////////////////////////////

#include "stdafx.h"
#include "filesend.h"
#include "DataSource.h"

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

//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////
CDataSource::CDataSource()
{ 
 
}
CDataSource::~CDataSource()
{
   FreeData();
}
void CDataSource::InitData()
{
 	CoInitialize(NULL);

	m_pConn.CreateInstance("ADODB.Connection");

	m_pRecordset.CreateInstance("ADODB.Recordset");

try
	{
			m_pConn->Open("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=F:\\ucl.mdb;Persist Security Info=False","","",adConnectUnspecified);
		
			m_pRecordset->Open("Select*From ucl",_variant_t(m_pConn,true),adOpenStatic,adLockOptimistic,adCmdText);
	}

catch(_com_error&e)
	{
	::AfxMessageBox(e.ErrorMessage());
	}

}
void CDataSource::FreeData()
{
	if(m_pConn)
	{		
		m_pConn->Close();
		//m_pRecordset->Close();
		m_pRecordset.Release();
		m_pConn.Release();
		CoUninitialize();
	}
}
void CDataSource::MoveFirst()
{
	m_pRecordset->MoveFirst();
}
void CDataSource::MoveLast()
{
	m_pRecordset->MoveLast();
}
void CDataSource::MovePrev()
{
	m_pRecordset->MovePrevious();
}

void CDataSource::MoveNext()
{
	m_pRecordset->MoveNext();
}

BOOL CDataSource::IsBOF()
{	
	return m_pRecordset->BOF;
}
BOOL CDataSource::IsEOF()
{	
	return m_pRecordset->EndOfFile;
}
CString CDataSource::GetAsString(CString FieldName)
{
	if(IsBOF()||IsEOF())
		return "";
	LPTSTR lpFieldName=FieldName.GetBuffer(FieldName.GetLength());

	_variant_t vValue=m_pRecordset->Fields->Item[lpFieldName]->Value;

	if((V_VT(&vValue)==VT_NULL)||(V_VT(&vValue)==VT_EMPTY))
	{
		return "";
	}
	else 
	{
		CString strResult;
		LPTSTR lpResult=strResult.GetBuffer(strlen(_bstr_t(vValue)));
		strcpy(lpResult,_bstr_t(vValue));
		strResult.ReleaseBuffer();
		return strResult;
	}
}
int  CDataSource::GetAsInteger(CString FieldName)
{	
		if(IsBOF()||IsEOF())
		return 0;
		
		LPTSTR lpFieldName=FieldName.GetBuffer(FieldName.GetLength());

		_variant_t vValue=m_pRecordset->Fields->Item[lpFieldName]->Value;

		if(V_VT(&vValue)==VT_NULL)
		{
			return 0;
		}
		else
		{
			return atoi(_bstr_t(vValue));
		}
}
void CDataSource::SetAsString(CString FieldName,CString Value)
{
		LPTSTR lpFieldName=FieldName.GetBuffer(FieldName.GetLength());

		LPTSTR lpValue=Value.GetBuffer(Value.GetLength());

		m_pRecordset->Fields->Item[lpFieldName]->Value=lpValue;

		FieldName.ReleaseBuffer();

		Value.ReleaseBuffer();
}
void CDataSource::SetAsInteger(CString FieldName,int Value)
{
	CString cs;

	cs.Format("%d",Value);
		
	SetAsString(FieldName,cs);
}

void CDataSource::Update()
{
	m_pRecordset->Update();
}
void CDataSource::New()
{
	m_pRecordset->AddNew();

	SetAsInteger("Fileid",0);
	
	SetAsString("Author","");

	SetAsString("Date","");

	SetAsString("Free","");
	
	SetAsString("Keywords","");

	SetAsString("Subject","");
	
	SetAsString("Title","");
	
	SetAsString("URL","");

	m_pRecordset->Update();
}
void CDataSource::Delete()
{
	m_pRecordset->Delete(adAffectCurrent);
}
BOOL CDataSource::IsFirst()
{
	if(m_pRecordset->BOF)
	{
		return TRUE;
	}
	else 
	{
		m_pRecordset->MovePrevious();
		BOOL Result=m_pRecordset->BOF;
		m_pRecordset->MoveNext();
		return Result;
	}
}
BOOL CDataSource::IsLast()
{
	if(m_pRecordset->EndOfFile)
	{	
		return TRUE;
	}
	else 
	{
		m_pRecordset->MoveNext();
		BOOL Result=m_pRecordset->EndOfFile;
		m_pRecordset->MovePrevious();
		return Result;
	}
}

⌨️ 快捷键说明

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