📄 dbbaseclass.h
字号:
//---------------------------------------------------------------------------
#ifndef dbbaseclassH
#define dbbaseclassH
//#include "ADODB.hpp"
//#include <odbcinst.h>
#include "MyODBC.h"
#include <stdio.h>
//---------------------------------------------------------------------------
#define AS_STRING 0
#define AS_BLOB 1
#define AS_INT 2
#define DB_FILE_TYPE_DEF 0
#define DB_FILE_TYPE_WST 1
#define DB_USER_ROLE_ALL 1
#define STR_MYSQL "MySQL"
#define STR_ACCESS "MyAccess"
#define STR_SQLSERVER "SQLServer"
#pragma pack(1)
typedef struct DB_USER_INFO
{
int nSize;
char szHost[128]; //用户登陆主机
char szUser[32]; // 用户名
char szPassword[32]; //用户口令
char szDBName[128]; // 用户允许连接的数据库。空表示没有限制数据库的连接
unsigned int role;
}DB_USER_INFO;
typedef struct WDB_INFO
{
bool bSupportTrans;
bool bSupportLockOne;
bool bSupportView;
bool bEscape;
}WDB_INFO;
/////////////////////内部使用结构
typedef struct DB_BATCH_INFO
{
char TableName[120];
char Fields[62][120];
char tmpFile[MAX_PATH];
FILE *fp;
char *pData;
unsigned int nDataLen;
int filetype;
}DB_BATCH_INFO;
#pragma pack()
typedef int (__stdcall *TDB_CALLBACK)(int pos,char *info);
//void UpperStr(char *in,char *out);
void HexToChar(char *hex,char *ch8,int length);
void UpperStr2(char *in,char *out);
int ReplaceValues(char *pInOutStr,char *bl,char *szCalue);
int EscapeData(char *buff,char *outbuff,int len);
typedef struct PARAM_SQL
{
char Param[56];
char *pData;
unsigned long nValue;
long nStatus;
PARAM_SQL *pNext;
}PARAM_SQL;
class CDBFaceBase
{
protected:
// TADOConnection *m_adMain;
// TADOQuery * m_adQuery;
CMyODBC *m_pDataConnect;
CODBCSet *m_pDataSet;
unsigned int iRecordCount;
unsigned char *m_Data;
char m_ServerName[120],m_LoginUser[120],m_LoginPS[120],m_DBName[120];
//DB_BATCH_INFO m_DbBatchInfo;
WDB_INFO m_WDBINFO;
// char *m_pSql;
// int iSqlBuffLen;
private:
PARAM_SQL *m_ParamSql;
//char *m_Sql;
void ClearParamSql();
public:
char m_Err[560];
char m_ClassName[120];
char m_Driver[120];
CDBFaceBase();
~CDBFaceBase();
virtual WDB_INFO *GetWDBInfo(){return &m_WDBINFO;}
virtual bool CreateDSN (char * szAttributes);
virtual bool CreateDB (char * szDBName);
virtual bool ConnectDB (char *szhostserver,char *szUser,char *szPassWord,char *szDBName);
virtual bool ConnectDBByStr (char *szConnectStr);
virtual bool UseDB (char *szDBName);
virtual bool GetCurrDB(char *szName){return false;};
virtual bool CloseDB ();
virtual bool GetAllDB (char * szDBName,int iSize);
// virtual bool GetAllDSN (char * szDBDSN,int iSize);
virtual bool GetAllUser (DB_USER_INFO * szUser,int iInNum,int *iOutNum);
virtual bool SetUserRole (DB_USER_INFO *useinfo);
virtual bool DeleteUser (DB_USER_INFO *szUser);
// virtual bool DeleteUser (char *username);
virtual bool ExecSQLCmd(char * szSQL);
virtual bool ExecSQL(char * szSQL,void *callback);
virtual bool ExecSQLFile(char * szSQLFile,void *callback);
virtual void AddSQL(char *sql);
virtual bool SetParam(char *parm,char *value,int size=0,int type=0);
virtual bool RunSql();
virtual bool Query(char * szSQL);
virtual int RecordCount();
virtual bool First();
virtual bool Next();
virtual char *GetDataValue(char *szFieldName,int *len=0);
virtual int GetIntValue(char *szFieldName);
virtual char *GetValueByIdx(int fid,int *len=0);
virtual int GetIntByIdx(int fid);
virtual bool BeginTrans(int *outLevel);
virtual bool Commit();
virtual bool Rollback();
virtual bool LockTables(char *tables);
virtual bool UnlockTables(char *tables);
virtual HANDLE BatchBegin(char *szTable,char *Fields);
virtual bool BatchAdd(HANDLE hdBatchHandle,char *szValues,int type,int ValueLen,bool endline);
virtual bool BatchEnd(HANDLE hdBatchHandle,void *callback);
virtual bool BatchByFile(char *sFileName,int filetype,char *szTableName,void *callback);
virtual bool FetchToFile(char *sql,char *pathname,char *szTable,void *callback);
virtual bool OptimizeTable(char *tables){return false;};
virtual bool Backup(char *pathname,char *db,void *callback);
// virtual bool Backup(char *backstr,char *pathname,void *callback);
virtual bool Restore(char *pathname,char *dbname,void *callback);
//virtual bool GetFields(char *Fields,int *memsize,int *count);
virtual int FieldCount();
virtual char *GetField(int idx);
//bool GetDSN(char *pDSN,char *pHost);
virtual char *GetErr(){return m_Err;};
// virtual int GetValue(int fieldid,char *FieldName,int *fielsize);
};
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -