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

📄 ado.cpp

📁 一个很好的基于USB开发的VC++资料.一个很好的基于USB开发的VC++资料
💻 CPP
字号:
// ADODB1.cpp: implementation of the ADODB class.
//
//////////////////////////////////////////////////////////////////////

#include "stdafx.h"
#include "ADO.h"

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

//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////

ADODB::ADODB()
{
	strSQL="";
	DataBaseFile="";
	bOpen=0;
}

ADODB::~ADODB()
{
	pPtr=NULL;
	::CoUninitialize();
}

bool ADODB::Init()
{
	::CoInitialize(NULL);
	if (FAILED(pPtr.CreateInstance(__uuidof(Recordset))))
	{
		AfxMessageBox("Create Instance failed!");
		return 0;
	}
	else return 1;
}

bool ADODB::Connect()
{
	if(bOpen)
	{
		::AfxMessageBox("数据库已经打开,如果要重新连接请先关闭!");
		return 0;
	}
	if(DataBaseFile=="")
	{
		::AfxMessageBox("未配置数据库文件,请先设定DataBaseFile");
		return 0;
	}
	if(strSQL=="")
	{
		::AfxMessageBox("未配置SQL命令,请先设定strSQL");
		return 0;
	}
	CString strSRC;
	strSRC="DRIVER=Microsoft Access Driver (*.mdb);DBQ=" + DataBaseFile + ";PWD="+PassWord;
	//strSRC="Provider=Microsoft.Jet.OLEDB.4.0;Data Source="+DataBaseFile+";Persist Security Info=False";
	_variant_t varSRC(strSRC);
	_variant_t varSQL(strSQL);

	HRESULT hr;
	try
	{
		hr=pPtr->Open(varSQL,varSRC,adOpenStatic,adLockOptimistic,adCmdText);
	}
	catch(_com_error e)///捕捉异常
	{
		CString errormessage;
		pPtr.Release();
		errormessage.Format("连接数据库失败!\r\n错误信息:%s",e.ErrorMessage());
		AfxMessageBox(errormessage);///显示错误信息
		return 0;
	}
	bOpen=1;
	return 1;
}

_bstr_t ADODB::GetFilds(char* Collect)
{
	_variant_t vFieldValue=pPtr->GetCollect(Collect);
	return _bstr_t(vFieldValue);
}

bool ADODB::PutFilds(char* Collect,char* ver)
{
	if(bOpen)
	{
		pPtr->Fields->GetItem(_variant_t(Collect))->Value=_bstr_t(ver);
		return 1;
	}
	else return 0;
}

bool ADODB::OpenTable(char* TableName)
{
	if(TableName!="")
	{
		strSQL="SELECT * FROM "+CString(TableName);
		if(!Connect())
		{
			CString a;
			a.Format("数据表%s打开失败!",TableName);
			AfxMessageBox(a);
			return 0;
		}
	}
	else return 0;
	return 1;
}

bool ADODB::CloseTable(char* TableName)
{
	pPtr->Close();
	bOpen=0;
	return 1;
}

//得到可执行文件的路径
CString ADODB::GetAppPath()
{
	TCHAR   exeFullName[MAX_PATH];   
	::GetModuleFileName(NULL,exeFullName,MAX_PATH);   
	CString   mPath=exeFullName;   
	int mPos=mPath.ReverseFind('\\');     
	if(mPos==-1)return   ""; //没有发现   
	mPath=mPath.Left(mPos);   
	if(mPath.Right(1) != "\\") mPath = mPath + "\\";  
	return   mPath;
}

short ADODB::GetEOF()
{
	if(bOpen) return pPtr->EndOfFile;
	else return 0;
}

short ADODB::GetBOF()
{
	if(bOpen) return pPtr->BOF;
	else return 0;
}

long ADODB::MoveFirst()
{
	if(bOpen) return pPtr->MoveFirst();
	else return 0;
}

long ADODB::MoveLast()
{
	if(bOpen) return pPtr->MoveLast();
	else return 0;
}

long ADODB::MoveNext()
{
	if(bOpen) return pPtr->MoveNext();
	else return 0;
}

long ADODB::MovePrev()
{
	if(bOpen) return pPtr->MovePrevious();
	else return 0;
}

bool ADODB::close()
{
	if(bOpen)
	{
		pPtr->Close();
		bOpen=0;
	}
	else return 0;
	return 1;
}

long ADODB::AddNew()
{
	if(bOpen) return pPtr->AddNew();
	else return 0;
}

long ADODB::Delete()
{
	if(bOpen) return pPtr->Delete(adAffectCurrent);
	else return 0;
}

long ADODB::Update()
{
	if(bOpen) return pPtr->Update();
	else return 0;
}

long ADODB::GetRecordCount()
{
	if(bOpen) return pPtr->GetRecordCount();
	else return 0;
}

⌨️ 快捷键说明

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