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

📄 adodatabase.h

📁 随着计算机信息技术的飞速发展
💻 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 + -