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

📄 adodatabase.h

📁 这是一个基于COM的数据库访问技术
💻 H
字号:
#if !defined(AFX_ADODATABASE_H__CC00630B_09FF_483D_81AB_7DC19E3EA26A__INCLUDED_)
#define AFX_ADODATABASE_H__CC00630B_09FF_483D_81AB_7DC19E3EA26A__INCLUDED_

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000

#define MAX_FIELDS            255  //一个表中最大字段数
#define MAX_FIELDS_LEN        30   //字段名字最大字节数
#define MAX_FIELDS_DATA_LEN   280  //字符字段中字符的最大字节数

//绑定所以字段【通用处理所以表】
class CAllFieldValue
{
public:
   char FieldValue[MAX_FIELDS][MAX_FIELDS_DATA_LEN] ; //统一字段值,如果是字符型,最长MAX_FIELDS_DATA_LEN个字节
   static int nFieldCount ;

BEGIN_COLUMN_MAP(CAllFieldValue)
     COLUMN_ENTRY(1,FieldValue[0])
     COLUMN_ENTRY(2,FieldValue[1])  
     COLUMN_ENTRY(3,FieldValue[2])  
     COLUMN_ENTRY(4,FieldValue[3])  
     COLUMN_ENTRY(5,FieldValue[4])  
     COLUMN_ENTRY(6,FieldValue[5])  
     COLUMN_ENTRY(7,FieldValue[6])  
     COLUMN_ENTRY(8,FieldValue[7])   
END_COLUMN_MAP()
   void ClearFieldValue() 
   {//清除所有字段值
		memset(this, 0, sizeof(*this));
   }
} ;

class CAdoDatabase  
{
public:
	void MyGetColumnValue();
	void ConvertNumericToChar();
	void RollbackTran();
	void CommitTran();
	void StartTran();
	BOOL NextMatchingRecord();
	int SelectMatchingRecords(char *szWhere);
	BOOL ExecuteQuery(char *szQuery);
	BOOL UpdateRecord(char *szWhere);
	void Quote(char* sText);
	BOOL AddRecord();
	BOOL ExecuteSQL(char *szSQL);
	BOOL ConnectDB2(char *szServerName, char *szDatabase, char *szUid, char *szPwd);
	BOOL ConnectDB1(char* szDNS,char* szUid,char* szPwd);
	BOOL ConnectDB(CDBPropSet dbPropSet);
	void DisconnectionDB();
	CAdoDatabase();
	virtual ~CAdoDatabase();

//------------置换用到-----------------------------
    string szOld ,szNew  ;
 	int nPos ,nGet  ;
	BOOL bReplace ;

/*-------------OLE DB 操作---------------------------*/
	char m_Provider[20]    ;          //数据库提供着   MSDASQL SQLOLEDB
    CDataSource m_DataSource  ;                        //数据源句柄
	CSession    m_Session    ;                         //会话句柄
	CCommand <CNoAccessor,CNoRowset> m_CmdExecute ;    //公共执行SQL句柄【注,没有行集返回】
    HINSTANCE hInstance ;                              //取得错误的句柄
   	CCommand<CDynamicAccessor,CRowset> m_CmdQuery;

/*------------------ 列信息----------------*/
	DBSTATUS        dbStatus  ;             /*用于判断该列是否为空*/
	DBCOLUMNINFO    *m_pColsInfo;           /*列信息*/
	ULONG         	m_nColCount;            /*列总数*/
	LPOLESTR        m_pStrBuffer;           /**/
	unsigned long   nColType ;              /*列类型*/
	LONG            dbLong ;                /*用于取 整形列*/ 
	DB_NUMERIC      dbNumeric ;             /*用于取 Numeric列*/
	char            szNumeric[20] ;         /*用于辅助取 Numeric*/ 
	unsigned int    nNumericLen ;           /*用于取 Numeric 列*/
	__int64         dbInt64 ;               /*用于取 Numeric列 只用*/  

/*--------------------时间、日期处理---------------------*/
	DBTIME          dbTime ;          //时间 20:12:20
	DBDATE          dbDate ;         //日期 2003-10-31
	DBTIMESTAMP     dbTimeStamp;     //时间戳 2003-10-31 20:12:20

	BOOL           m_bOpen  ;                          //是否打开
	char           m_szExecute[1024*3];                //执行语句 
	char           m_szErrMsg[1024] ;                  //错误信息
	HRESULT hr;
	int ff  ;
	string szText1 ;

/*-------------临时绑定表--------------------*/
	char      m_szTableName[255] ;                             /*临时绑定表名称*/
	int       m_nFields;                                       /*临时绑定表字段的总数*/ 
	char      m_sFieldName[MAX_FIELDS] [MAX_FIELDS_LEN];       /*临时绑定表字段名字*/
	char      m_sFieldValue[MAX_FIELDS][MAX_FIELDS_DATA_LEN];  /*临时绑定表字段值*/
	int       m_bNumeric[MAX_FIELDS] ;                         /*临时绑定表字段是否为数值类型 1 int 2 varchar 3 numeric 4 date */

protected:
	void GetExecError();
};

#endif 

⌨️ 快捷键说明

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