📄 sh_database.h
字号:
// SH_Database.h: interface for the SH_Database class.
//
//////////////////////////////////////////////////////////////////////
#if !defined(AFX_SH_DATABASE_H__7114FB0E_B717_494F_BFE2_0ACA1A76A24A__INCLUDED_)
#define AFX_SH_DATABASE_H__7114FB0E_B717_494F_BFE2_0ACA1A76A24A__INCLUDED_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
#include "SH_String.h"
#include "SH_List.h"
/*libSH ODBC interface*/
#define SH_DBFIELD_LEN 129
class AFX_EXT_CLASS SH_Database
{
public:
typedef struct _SH_Field
{
char szName[SH_DBFIELD_LEN];
int nPos;
int nType;
int nLen;
void * pUserData;
}SH_Field;
typedef struct _SH_Table
{
char szName[SH_DBFIELD_LEN];
SH_List<SH_Field*> m_FieldList;
}SH_Table;
public:
SH_Database();
virtual ~SH_Database();
void Clear();
BOOL FetchEnd();
BOOL FetchBegin();
BOOL BindCol(int nIndex,int nType,void * pValue,int nLen);
BOOL BindCol(LPCTSTR szTable,LPCTSTR szField,void * pValue,int nLen);
BOOL BindCol(LPCTSTR szTable,LPCTSTR szField,int nType,void * pValue,int nLen);
BOOL MovePrev();
BOOL MoveNext();
BOOL MoveLast();
BOOL MoveFirst();
BOOL Fetch();
BOOL GetRowCount(int * pnCount);
BOOL ExecuteSQL(LPCTSTR lpszSQL,int nStrLen);
BOOL SUCCEED(SQLRETURN sr);
BOOL OpenEx(LPCTSTR szDSN,int nTimeout=5);
BOOL Open(LPCTSTR szDatabase,LPCTSTR szUID="",LPCTSTR szPWD="",int nTimeout=5);
void Close();
virtual BOOL GetDriver() { return FALSE;}
virtual BOOL IsSystemTable(LPCTSTR lpszTable) { return FALSE;}
LPCTSTR GetDatabase(void) { return (LPCTSTR)m_strDatabase;}
void SetDatabase(LPCTSTR lpszDatabase) { m_strDatabase = lpszDatabase;}
virtual void SetDSN(LPCTSTR lpszDatabase) {m_strDSN = lpszDatabase;}
LPCTSTR GetDSN(void) { return (LPCTSTR)m_strDSN;};
LPCTSTR GetUID(void) { return (LPCTSTR)m_strUID;}
void SetUID(LPCTSTR szUID) { m_strUID = szUID;}
LPCTSTR GetPWD(void) { return (LPCTSTR)m_strPWD;}
void SetPWD(LPCTSTR szPWD) { m_strPWD = szPWD;}
int GetTimeout(void) { return m_nTimeout;}
void SetTimeout(int nTimeout) { m_nTimeout = nTimeout;}
BOOL GetColumns();
public:
BOOL Execute(SH_String strSQL);
BOOL Execute(LPCTSTR lpszSQL,int nLen);
SH_List<SH_Table*> m_TableList;
protected:
SH_String m_strDSN;
SH_String m_strUID;
SH_String m_strPWD;
SH_String m_strDatabase;
SH_String m_strDriver;
SH_String m_strSQL;
int m_nTimeout;
SQLHANDLE m_hEnv;
SQLHANDLE m_hConn;
SQLHANDLE m_hStmt;
private:
SH_Field * FindField(LPCTSTR lpszTable,LPCTSTR lpszField);
SH_Field * FindField(SH_Table * pTable,LPCTSTR lpszField);
SH_Table * FindTable(LPCTSTR lpszTable);
SH_Field * AppendField(SH_Table * pTable,LPCTSTR lpszField);
SH_Table * AppendTable(LPCTSTR lpszTable);
};
#endif // !defined(AFX_SH_DATABASE_H__7114FB0E_B717_494F_BFE2_0ACA1A76A24A__INCLUDED_)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -