www.pudn.com > TibetanWordManage.rar > QkyAdo.h


 
#ifndef   QKYADO_H 
#define   QKYADO_H 
 
// 
// ADO访问数据库类 
// 软件环境:需要MSADO15.DLL 
// 作者:祁坤钰 
// 2004.4.20 
//  
// 说明:封装了ADO使用的操作函数和ADO访问数据库错误处理 
//		使在VC上方便的使用ADO访问数据库 
// 包括:ADO连接数据库、打开记录集、执行SQL、以及 
//		事务处理、ADO记录集内容转换成C++的常用数据类型(CString、char,long,float等) 
// 
// 使用:1。定义一个CBBAdoConnection实例:CBBAdoConnection m_adoConn; 
//		2。建立连接:m_adoConn.Open(strConnstring); 
//					如果需要无条件重新连接的可以,参数bRepen设成TREU 
//		3。打开记录集: 
// 
//			_RecordsetPtr* prsThis=NULL; 
//			prsThis=new _RecordsetPtr; 
//			CString strSQL; 
//			strSQL="select * from Table_Name";//		 
//			//如果记录集打开失败 
//			if(!(m_adoConn.OpenRecordset(strSQL,prsThis))) 
//				return FALSE; 
//		4。建立记录集值对象 
//			注意需要用参数构造 
//			CBBRstValues rsv(m_adoConn,prsThis); 
//		 
//		5。获得的字段的值 
//			rsv.GetValueLong(&m_nDeptID,1L);//获得第一个字段的值 
//			rsv.GetValueStr(m_strName,"ID");//获得第一个字段名为ID的值 
//			其它的同理.如果需要获得SQL	Server中nText类型的字段值请用 
//			GetValText(CString &strText, CString &strFieldName)函数 
//		6。记录集的记录移动	(*prsThis)->MoveNext()等类似函数 
//		7。记录集不用时候需要释放其资源 
//			1)关闭记录集 
//			2)删除记录集指针 
//			e.g.	(*prsThis)->Close(); 
//					delete prsThis; 
//					prsThis=NULL; 
//			否则会造成内存泄漏 
//		 
//		注: 
//			1。程序必须要初始化COM环境,请在应用类中加入AfxInitOle函数初始化环境,否则ADO的调用将失败 
//			2。如果需要调用存储过程SQL语句改为“Exec ” + 存储过程名即可,与执行SQL同样 
// 
 
 
//////////////////////////////////////////////// 
// 
//	注意在应用程序的  XXXXApp::InitInstance()中 
//		(1) 
//		此程序只能运行一次,用互斥量来判断程序是否已运行 
//		HANDLE m_hMutex=CreateMutex(NULL,TRUE, m_pszAppName);  
//		if(GetLastError()==ERROR_ALREADY_EXISTS) { return FALSE; } 
//		(2) 
//		COM 初始化程序	 
//		AfxOleInit(); 
// 
//////////////////////////////////////////////// 
 
 
#import "msado15.dll" no_namespace rename ("EOF", "adoEOF")  //引入动态链接库,抽取信息 
#include 		//ADO2.0的类和接口标识 
#include "icrsint.h"	//数据绑定扩展 
 
//#include 		// 
 
 
class   CQkyAdo 
{ 
 
private: 
 
public: 
 
	CQkyAdo(); 
	CQkyAdo(CString &strFileName, CString &strTableName); 
 
	~CQkyAdo(); 
 
	BOOL  bConnection;  //是否连接 
	// 定义ADO连接、命令、记录集变量指针 
	_ConnectionPtr	m_pConnection; 
	_CommandPtr		m_pCommand; 
	_RecordsetPtr	m_pRecordset; 
	 
	//Number Function 
	BOOL    OpenAll(CString strFileName, CString strTableName);  //连接数据库并打开指定表 
	BOOL	OpenConnection(CString str);			//打开连接 
	BOOL	CreateTable(CString strSQL);			//创建数据表 
	BOOL	OpenRecordset(CString  strTableName);	//打开数据记录表	 
	 
	BOOL    AddNew(); 
	BOOL	SetValue(CString strItem, CString strValue); 
	BOOL	Update(); 
 
	BOOL    EditItem(long Index); 
 
	BOOL    IsOpen(); 
	long	FindItem(CString strItem, CString strValue); 
	long    FindItem(CString str); 
//	BOOL	FindItem(CString str, CListBox * pList); 
	BOOL	FindWord(CString strWord, CString &strExplain); 
	void    LoadToList(CListBox * pList); 
	BOOL	DeleteWord(CString str); 
 
	long	LoadWord(LPCTSTR lpBuff, CProgressCtrl* lpProg); 
	BOOL	OutWord(CFile * lpFile, CProgressCtrl* lpProg);	 
 
}; 
 
 
#endif