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