📄 adodatabase.h
字号:
// ADODataBase.h: interface for the CADODataBase class.
//
//////////////////////////////////////////////////////////////////////
#if !defined(AFX_ADODATABASE_H__8FA01CDA_5602_405D_985F_D3B540959149__INCLUDED_)
#define AFX_ADODATABASE_H__8FA01CDA_5602_405D_985F_D3B540959149__INCLUDED_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
#include <comdef.h>
#include "Adoce30.h"
#include <afxtempl.h>
#include <commctrl.h>
//*******************************************************//
//**************** ADO连接对象GUID ****************//
//*******************************************************//
const IID IID_Connection=
{0x113033de,0xf682,0x11d2,{0xbb,0x62,0x00,0xc0,0x4f,0x68,0x0a,0xcc}};
//*******************************************************//
//*************** ADO2.0记录集对象GUID **************//
//*******************************************************//
const IID IID_Recordset=
{0x113033f6,0xf682,0x11d2,{0xbb,0x62,0x00,0xc0,0x4f,0x68,0x0a,0xcc}};
//*******************************************************//
//*************** ADO2.0记录集对象 ***************//
//*******************************************************//
const IID IID_Recordset20=
{0x4beb93d5,0x28d8,0x11d1,{0x83,0x21,0x00,0xa0,0x24,0xa8,0x81,0x10}};
//*******************************************************//
//**************** 数据库类的声明 ****************//
//*******************************************************//
#ifndef __IADOCEField_INTERFACE_DEFINED__
#define __IADOCEField_INTERFACE_DEFINED__
//****************************************
//* Generated header for interface: IADOCEField
// * at Fri Feb 27 14:49:21 1998
// * using MIDL 3.01.75
// ****************************************
//* [unique][dual][uuid][object]
///************************************
EXTERN_C const IID IID_IADOCEField;
#if defined(__cplusplus) && !defined(CINTERFACE)
interface DECLSPEC_UUID("4BEB93D7-28D8-11D1-8321-00A024A88110")
Field20 : public IDispatch
{
public:
virtual HRESULT STDMETHODCALLTYPE get_ActualSize(
long __RPC_FAR *pVal) = 0;
virtual HRESULT STDMETHODCALLTYPE get_Attributes(
long __RPC_FAR *pVal) = 0;
virtual HRESULT STDMETHODCALLTYPE get_DefinedSize(
long __RPC_FAR *pVal) = 0;
virtual HRESULT STDMETHODCALLTYPE get_Name(
BSTR __RPC_FAR *pVal) = 0;
virtual HRESULT STDMETHODCALLTYPE get_Type(
DataTypeEnum __RPC_FAR *pVal) = 0;
virtual HRESULT STDMETHODCALLTYPE get_UnderlyingValue(
VARIANT __RPC_FAR *pVal) = 0;
virtual HRESULT STDMETHODCALLTYPE get_Value(
VARIANT __RPC_FAR *pVal) = 0;
virtual HRESULT STDMETHODCALLTYPE put_Value(
VARIANT newVal) = 0;
};
#else //* C style interface
typedef struct IADOCEFieldVtbl
{
BEGIN_INTERFACE
HRESULT ( STDMETHODCALLTYPE __RPC_FAR *QueryInterface )(
IADOCEField __RPC_FAR * This,
REFIID riid,
void __RPC_FAR *__RPC_FAR *ppvObject);
ULONG ( STDMETHODCALLTYPE __RPC_FAR *AddRef )(
IADOCEField __RPC_FAR * This);
ULONG ( STDMETHODCALLTYPE __RPC_FAR *Release )(
IADOCEField __RPC_FAR * This);
HRESULT ( STDMETHODCALLTYPE __RPC_FAR *GetTypeInfoCount )(
IADOCEField __RPC_FAR * This,
UINT __RPC_FAR *pctinfo);
HRESULT ( STDMETHODCALLTYPE __RPC_FAR *GetTypeInfo )(
IADOCEField __RPC_FAR * This,
UINT iTInfo,
LCID lcid,
ITypeInfo __RPC_FAR *__RPC_FAR *ppTInfo);
HRESULT ( STDMETHODCALLTYPE __RPC_FAR *GetIDsOfNames )(
IADOCEField __RPC_FAR * This,
REFIID riid,
LPOLESTR __RPC_FAR *rgszNames,
UINT cNames,
LCID lcid,
DISPID __RPC_FAR *rgDispId);
HRESULT ( STDMETHODCALLTYPE __RPC_FAR *Invoke )(
IADOCEField __RPC_FAR * This,
DISPID dispIdMember,
REFIID riid,
LCID lcid,
WORD wFlags,
DISPPARAMS __RPC_FAR *pDispParams,
VARIANT __RPC_FAR *pVarResult,
EXCEPINFO __RPC_FAR *pExcepInfo,
UINT __RPC_FAR *puArgErr);
HRESULT ( STDMETHODCALLTYPE __RPC_FAR *get_ActualSize )(
IADOCEField __RPC_FAR * This,
long __RPC_FAR *pVal);
HRESULT ( STDMETHODCALLTYPE __RPC_FAR *get_Attributes )(
IADOCEField __RPC_FAR * This,
long __RPC_FAR *pVal);
HRESULT ( STDMETHODCALLTYPE __RPC_FAR *get_DefinedSize )(
IADOCEField __RPC_FAR * This,
long __RPC_FAR *pVal);
HRESULT ( STDMETHODCALLTYPE __RPC_FAR *get_Name )(
IADOCEField __RPC_FAR * This,
BSTR __RPC_FAR *pVal);
HRESULT ( STDMETHODCALLTYPE __RPC_FAR *get_Type )(
IADOCEField __RPC_FAR * This,
DataTypeEnum __RPC_FAR *pVal);
HRESULT ( STDMETHODCALLTYPE __RPC_FAR *get_UnderlyingValue )(
IADOCEField __RPC_FAR * This,
VARIANT __RPC_FAR *pVal);
HRESULT ( STDMETHODCALLTYPE __RPC_FAR *get_Value )(
IADOCEField __RPC_FAR * This,
VARIANT __RPC_FAR *pVal);
HRESULT ( STDMETHODCALLTYPE __RPC_FAR *put_Value )(
IADOCEField __RPC_FAR * This,
VARIANT newVal);
END_INTERFACE
} IADOCEFieldVtbl;
interface IADOCEField
{
CONST_VTBL struct IADOCEFieldVtbl __RPC_FAR *lpVtbl;
};
#ifdef COBJMACROS
#define IADOCEField_QueryInterface(This,riid,ppvObject) \
(This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
#define IADOCEField_AddRef(This) \
(This)->lpVtbl -> AddRef(This)
#define IADOCEField_Release(This) \
(This)->lpVtbl -> Release(This)
#define IADOCEField_GetTypeInfoCount(This,pctinfo) \
(This)->lpVtbl -> GetTypeInfoCount(This,pctinfo)
#define IADOCEField_GetTypeInfo(This,iTInfo,lcid,ppTInfo) \
(This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo)
#define IADOCEField_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) \
(This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
#define IADOCEField_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) \
(This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
#define IADOCEField_get_ActualSize(This,pVal) \
(This)->lpVtbl -> get_ActualSize(This,pVal)
#define IADOCEField_get_Attributes(This,pVal) \
(This)->lpVtbl -> get_Attributes(This,pVal)
#define IADOCEField_get_DefinedSize(This,pVal) \
(This)->lpVtbl -> get_DefinedSize(This,pVal)
#define IADOCEField_get_Name(This,pVal) \
(This)->lpVtbl -> get_Name(This,pVal)
#define IADOCEField_get_Type(This,pVal) \
(This)->lpVtbl -> get_Type(This,pVal)
#define IADOCEField_get_UnderlyingValue(This,pVal) \
(This)->lpVtbl -> get_UnderlyingValue(This,pVal)
#define IADOCEField_get_Value(This,pVal) \
(This)->lpVtbl -> get_Value(This,pVal)
#define IADOCEField_put_Value(This,newVal) \
(This)->lpVtbl -> put_Value(This,newVal)
#endif //* COBJMACROS
#endif //* C style interface
HRESULT STDMETHODCALLTYPE IADOCEField_get_ActualSize_Proxy(
IADOCEField __RPC_FAR * This,
long __RPC_FAR *pVal);
void __RPC_STUB IADOCEField_get_ActualSize_Stub(
IRpcStubBuffer *This,
IRpcChannelBuffer *_pRpcChannelBuffer,
PRPC_MESSAGE _pRpcMessage,
DWORD *_pdwStubPhase);
HRESULT STDMETHODCALLTYPE IADOCEField_get_Attributes_Proxy(
IADOCEField __RPC_FAR * This,
long __RPC_FAR *pVal);
void __RPC_STUB IADOCEField_get_Attributes_Stub(
IRpcStubBuffer *This,
IRpcChannelBuffer *_pRpcChannelBuffer,
PRPC_MESSAGE _pRpcMessage,
DWORD *_pdwStubPhase);
HRESULT STDMETHODCALLTYPE IADOCEField_get_DefinedSize_Proxy(
IADOCEField __RPC_FAR * This,
long __RPC_FAR *pVal);
void __RPC_STUB IADOCEField_get_DefinedSize_Stub(
IRpcStubBuffer *This,
IRpcChannelBuffer *_pRpcChannelBuffer,
PRPC_MESSAGE _pRpcMessage,
DWORD *_pdwStubPhase);
HRESULT STDMETHODCALLTYPE IADOCEField_get_Name_Proxy(
IADOCEField __RPC_FAR * This,
BSTR __RPC_FAR *pVal);
void __RPC_STUB IADOCEField_get_Name_Stub(
IRpcStubBuffer *This,
IRpcChannelBuffer *_pRpcChannelBuffer,
PRPC_MESSAGE _pRpcMessage,
DWORD *_pdwStubPhase);
HRESULT STDMETHODCALLTYPE IADOCEField_get_Type_Proxy(
IADOCEField __RPC_FAR * This,
DataTypeEnum __RPC_FAR *pVal);
void __RPC_STUB IADOCEField_get_Type_Stub(
IRpcStubBuffer *This,
IRpcChannelBuffer *_pRpcChannelBuffer,
PRPC_MESSAGE _pRpcMessage,
DWORD *_pdwStubPhase);
HRESULT STDMETHODCALLTYPE IADOCEField_get_UnderlyingValue_Proxy(
IADOCEField __RPC_FAR * This,
VARIANT __RPC_FAR *pVal);
void __RPC_STUB IADOCEField_get_UnderlyingValue_Stub(
IRpcStubBuffer *This,
IRpcChannelBuffer *_pRpcChannelBuffer,
PRPC_MESSAGE _pRpcMessage,
DWORD *_pdwStubPhase);
HRESULT STDMETHODCALLTYPE IADOCEField_get_Value_Proxy(
IADOCEField __RPC_FAR * This,
VARIANT __RPC_FAR *pVal);
void __RPC_STUB IADOCEField_get_Value_Stub(
IRpcStubBuffer *This,
IRpcChannelBuffer *_pRpcChannelBuffer,
PRPC_MESSAGE _pRpcMessage,
DWORD *_pdwStubPhase);
HRESULT STDMETHODCALLTYPE IADOCEField_put_Value_Proxy(
IADOCEField __RPC_FAR * This,
VARIANT newVal);
void __RPC_STUB IADOCEField_put_Value_Stub(
IRpcStubBuffer *This,
IRpcChannelBuffer *_pRpcChannelBuffer,
PRPC_MESSAGE _pRpcMessage,
DWORD *_pdwStubPhase);
#endif
/* __IADOCEField_INTERFACE_DEFINED__ */
// </BOOK_ADDON Chapter 8.4.1> *************************************************
//******************************************//
class CADODataBase
{
public:
BOOL GetFieldType(); // 获得数据表的字段类型(保存在数组m_values)
BOOL GetFieldName(); // 获得数据表的字段名称(保存在数组m_values)
BOOL DeleteTable(CString sTableName, CString sDBName); //删除数据库sDBName中的表sTableName
BOOL GetTableLst(CString sDBName); // 获得数据库sDBName的表单名称(保存在数组m_values)
BOOL ReadAllRecord(int Fld); // 读取所有记录某个字段Fld的值(保存在数组m_values)
BOOL ReadField(int nRecordNum,int nFiledNum); //读取某个记录(nRecordNum)的某字段(nFieldNum)
BOOL DelRecord (int nIndex); // 删除第 nIndex 条记录
BOOL MotifyRecord(int nIndex); // 修改第 nIndex 条记录(通过改变 m_values )
BOOL ReadRecord (int nIndex); // 读取第 nIndex 条记录((保存在数组m_values))
BOOL AddNewRecord(); // 添加记录
BOOL CADODataBase::InsertRecord(); // 追加记录
BOOL OpenTable(CString sDBName,CString sTableName);// 打开数据库 szDBNam 的表单 szTableName
BOOL CreateTable(CString sTableName,CString sFieldName,CString sDBName=_T("")); // 以字段 sFieldName 创建数据库 sDBNam 的表单 sTableName
BOOL CreateDatabase(CString sDBName); // 创建一个数据库 szDBName
DWORD GetRecordNumber(); // 获得记录数目
void CloseTable(); // 关闭表单
CString sErrMsg; // 出错信息
CStringArray m_values; // 信息字符串(CStringArray类型)
CADODataBase(); //
virtual ~CADODataBase(); //
private:
int nAdoVer; // 当前机器中的ADO版本(默认为3.0)
CString EnumToType(int nEnum); // 有字段类型编码求类型
HRESULT hr; // COM函数返回值
DWORD dwIndex; // 当前记录集所指的记录的位置
CString szFileName; // 数据库文件名
CString sTableName; // 表名称
CLSID clsid; // 对象GUID变量
// _Connection *pConn; // ADO数据库连接对象指针
_Recordset *pRec; // ADO数据库记录集对象指针
// _Recordset *pRec2; // ADO数据库记录集对象指针
// VARIANT_BOOL tBOF,tEOF;
BOOL Move(int nIndex); // 当前指针移动到 第 nIndex 条记录
BOOL MovePrevious(); // 当前指针移动到前一个记录
BOOL MoveNext(); // 当前指针移动到后一个记录
BOOL MoveLast(); // 当前指针指向最后一个记录
BOOL MoveFirst(); // 当前指针指向第一个记录
BOOL SetValue(); // 设置记录的数据
};
#endif // !defined(AFX_ADODATABASE_H__8FA01CDA_5602_405D_985F_D3B540959149__INCLUDED_)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -