Files
envi-code/SourceCode/Code2026/tg_shs/inc/ADO/TGAdoKernelX64.h
T
2026-09-28 15:28:50 +08:00

102 lines
3.5 KiB
C++

#ifndef __TGADOKERNELX64__H__
#define __TGADOKERNELX64__H__
#include "CUIIADOShell.h"
//字段名定义描述
class TGADOSRV_API CUIITableField
{
public:
CUIITableField()
{
m_sFieldName = "";
m_sFieldType = "";
m_nSize = 0;
m_bIsAllowNull = TRUE;
m_bPrimaryKey = FALSE;
}
CUIITableField(const CUIITableField& dataSrc)
{
m_sFieldName = dataSrc.m_sFieldName;
m_sFieldType = dataSrc.m_sFieldType;
m_nSize = dataSrc.m_nSize;
m_bIsAllowNull = dataSrc.m_bIsAllowNull;
m_bPrimaryKey = dataSrc.m_bPrimaryKey;
}
virtual ~CUIITableField(){}
CUIITableField& operator = (const CUIITableField &dataSrc)
{
m_sFieldName = dataSrc.m_sFieldName;
m_sFieldType = dataSrc.m_sFieldType;
m_nSize = dataSrc.m_nSize;
m_bIsAllowNull = dataSrc.m_bIsAllowNull;
m_bPrimaryKey = dataSrc.m_bPrimaryKey;
return *this;
}
public:
CString m_sFieldName;
CString m_sFieldType; //类型: 字符型 : varchar 文本 : text 字节 : varbinary
// ole型 : image 长整型: int 实数型: float
// double型: real 短整型: smallint
// 时间 : datetime
long m_nSize; //长度
BOOL m_bIsAllowNull; //不允许空
BOOL m_bPrimaryKey; //主键
};
typedef CArray<CUIITableField,CUIITableField &> Ttable;
class TGADOSRV_API CTGAdoKernel
{
public:
CTGAdoKernel();
~CTGAdoKernel();
SHORT InitADOServer(LPCTSTR bstrConnect);
SHORT IsDatabaseOpen(void);
BSTR GetDatabase(void);
void SetDatabase(LPCTSTR bstrDatabase);
void GetTableNameArray(CStringArray &arTabls, LPCTSTR pszTableType = _T("TABLE"));
SHORT IsSelEmpty(LPCTSTR pszStrSQL);
SHORT ExecuteSQL(LPCTSTR pszStrSQL);
int GetSelData(LPCTSTR pszStrSQL,CString& sValue);
int GetSelData(LPCTSTR pszStrSQL,CStringArray &arStrValue);
int GetSelData(LPCTSTR pszStrSQL,CStringArray &arStrValue,int nFr, int nTo);
int GetSelData(LPCTSTR pszStrSQL,CStringList &listStrValue,BOOL bMakeLower= TRUE);
int GetSelData(LPCTSTR pszStrSQL,CStringList &listStrValue, int nFr, int nTo, BOOL bMakeLower= TRUE);
int GetSelData(LPCTSTR pszStrSQL,CUIIValueTable &valueTable,BOOL bUpdateLable = TRUE);
int GetSelData(LPCTSTR pszStrSQL,CUIIValueTable &valueTable, int nFr, int nTo, BOOL bUpdateLable = TRUE);
int GetSelData(LPCTSTR pszSKey_ValueSQL,CMapStringToString &mapKey_Value);
short GetTableStructInfoEx(LPCTSTR pszTableName, Ttable &tbl);
short GetSelDataEx(LPCTSTR pszStrSQL, CMapStringToString &mapStr);
BOOL CreateOLEDBTable(LPCTSTR pszTableName, Ttable& arFields, LPCTSTR pszDbName = NULL);
BOOL GetConnection(CString& sConntion);
void BeginTrans();
void RollbackTrans();
void CommitTrans();
BOOL PutPackageToDb(CString& sFile, const CString& sTableName, const CString& sPackageField,CUIIValueTable& table);
BOOL OutPackageToFile(CString& sFile, const CString& sSQL, const CString& sPackageField,BOOL bExport = TRUE);
static BOOL BrowseForFolder(HWND hWnd, CString& sFolder, LPCTSTR lpszTitle, UINT nFlags);
private:
CString GetXmlString(const CStringArray &arStrs, LPCTSTR pName = _T("CStringArray"));
CString GetXmlString(const CStringList &liStrs);
CString GetXmlString(CUIIValueTable &vaTbl);
CString GetXmlString(const CMapStringToString &mapStr);
CString GetXmlString(Ttable &tblField);
BOOL ReadDataFromXml(CStringArray &arStrs, const BSTR &bstrXml);
BOOL ReadDataFromXml(CStringList &liStrs, const BSTR &bstrXml);
BOOL ReadDataFromXml(CUIIValueTable &vaTbl, const BSTR &bstrXml);
BOOL ReadDataFromXml(CMapStringToString &mapStr, const BSTR &bstrXml);
BOOL ReadDataFromXml(Ttable &tbl, const BSTR &bstrXml);
private:
CUIIADOShell m_shell;
CString m_sConnect;
};
#endif