Files
gjm 164968b62e chore
把非utf8-bom编码的cpp/h文件改为 utf8 bom 编码, msvc识别utf8编码时,如果不是bom格式的,会使用当前cp_oem来解码.
2026-10-04 00:04:20 +08:00

194 lines
6.9 KiB
C++

#if !defined(AFX_UIIADORXSERVER_H__0D757B27_D77D_4FF7_B950_1FAC5E23F668__INCLUDED_)
#define AFX_UIIADORXSERVER_H__0D757B27_D77D_4FF7_B950_1FAC5E23F668__INCLUDED_
#if _MSC_VER > 1000
#pragma once
#endif
#ifndef __UIIVALUETABLE_H__
#include "UIIValueTable.h"
#endif
#ifndef __AFXTEMPL_H__
#include <afxtempl.h>
#endif
#include <comdef.h>
#include "UIITableField.h"
#include <map>
#include <vector>
class TGADOSRV_API CUIIADORXServer
{
public:
CUIIADORXServer();
virtual ~CUIIADORXServer();
//建立连接、连接数据库,打开数据库[access本地]
//示例
//mdb : sDbFileName="DRIVER={Microsoft Access Driver (*.mdb)};"
//"DBQ=c:\\mydata.mdb;UID=sa;PWD=";
//xls : Driver={Microsoft Excel Driver (*.xls)};"
//"DBQ=c:\\mydata.xls;ReadOnly=false;"
virtual BOOL InitADOServer(LPCTSTR pszDbFileName);
//建立连接、连接数据库,打开数据库
//示例:
//_bstr_t strCnn("Provider=sqloledb;Data Source=MyServer;"
//"Initial Catalog=pubs;User Id=sa;Password=;");
// ConnectOptionEnum OptionEnum = adConnectUnspecified
// or
//sConnect.Format(_T("Driver=SQL Server;Server=%s;Database=%s;User Id=%s;Password=%s;"),
//sSQLSrv,_T("SH-EarthWorm"),sUser,sPassword);
virtual BOOL InitADOServer(LPCTSTR pszConnection,bool bDisplayException, int OptionEnum = -1);
//建立连接、连接数据库,打开数据库
//示例:
//_bstr_t strCnn("DSN=CAPP;UID=sa;PWD="
// ConnectModeEnum eMode = adModeUnknown,CursorTypeEnum eCursor = adOpenUnspecified
virtual BOOL InitADOServer(LPCTSTR pszDSN,LPCTSTR pszUserID,LPCTSTR pszPassword, int eMode = 0, int eCursor = -1);
virtual BOOL GetConnection(CString& sConntion);
virtual void SetDatabase(LPCTSTR pszDatabase);
virtual LPCTSTR GetDatabase();
virtual void AppendAssocDatabase(LPCTSTR pszKey,LPCTSTR pszAssocDb);
virtual BOOL AssocDatabase(LPCTSTR pszKey,CString& sAssocDb);
//设置登录者的ID
virtual void SetLoginID(LPCTSTR pszLoginName);
//获取登录者的ID
virtual LPCTSTR GetLoginID();
//设置登录的组ID
virtual void SetGroupID(LPCTSTR pszGroup);
//获取登录的组ID
virtual LPCTSTR GetGroupID();
virtual BOOL CreateOLEDBTable(LPCTSTR pszTableName,Ttable& arFields,LPCTSTR pszsDbName = NULL);
//创建表及表的字段名
virtual BOOL CreateSQLSrvTable(LPCTSTR pszTableName,Ttable& arFields,LPCTSTR pszDbName = NULL);
virtual BOOL IsSQLSrvTableExist(LPCTSTR pszTableName,LPCTSTR pszDbName);
//获取表的结构信息
virtual BOOL GetSQLSrvTableStru(LPCTSTR pszTableName,Ttable &arFields,LPCTSTR pszDbName = NULL);
//获取表的结构信息
virtual BOOL GetSQLSrvTableStru(LPCTSTR pszTableName,CStringList &listField,LPCTSTR pszDbName = NULL);
//获取表的结构信息
virtual BOOL GetTableStructInfoEx(LPCTSTR pszTableName,Ttable& arFields);
//删除数据库中的表
virtual BOOL DeleteTable(LPCTSTR pszTableName);
//删除数据库中的若干表
virtual BOOL DeleteTable(CStringArray& arTableNames);
//删除表中若干字段名
virtual BOOL DeleteTableFields(LPCTSTR pszTableName,CStringArray& arFields,LPCTSTR pszDbName);
//删除表中字段
virtual BOOL DeleteTableFields(LPCTSTR pszTableName,LPCTSTR pszFields,LPCTSTR pszDbName);
//向表中增加若干字段名
virtual BOOL AppendTableFields(LPCTSTR pszTableName,Ttable &arFields,LPCTSTR pszDbName);
//向表中增加字段
virtual BOOL AppendTableFields(LPCTSTR pszTableName, CUIITableField& arFields,LPCTSTR pszDbName);
//获得一个数值
virtual int GetSelData(LPCTSTR pszStrSQL,CString& sValue);
//把获得相应的信息填到数组中
virtual int GetSelData(LPCTSTR pszStrSQL,CStringArray &arStrValue);
virtual int GetSelData(LPCTSTR pszStrSQL,CStringArray &arStrValue,int nFr, int nTo);
virtual int GetSelData(LPCTSTR pszStrSQL, std::vector<CString>& arStrValue);
//是否是空选择集
virtual BOOL IsSelEmpty(LPCTSTR pszStrSQL);
//把获得相应的信息填到链表中
virtual int GetSelData(LPCTSTR pszStrSQL,CStringList &listStrValue,BOOL bMakeLower= TRUE);
virtual int GetSelData(LPCTSTR pszStrSQL,CStringList &listStrValue, int nFr, int nTo, BOOL bMakeLower= TRUE);
//选取多个字段,把获得相应的信息填到'表'对象中
virtual int GetSelData(LPCTSTR pszStrSQL,CUIIValueTable &valueTable,BOOL bUpdateLable = TRUE);
virtual int GetSelData(LPCTSTR pszStrSQL,CUIIValueTable &valueTable, int nFr, int nTo, BOOL bUpdateLable = TRUE);
//选取一个作为Key,和一个作为Value的SQL,取的记录添到map中
virtual int GetSelData(LPCTSTR pszSKey_ValueSQL,CMapStringToString &mapKey_Value);
virtual int GetSelData(LPCTSTR pszSKey_ValueSQL,std::map<CString, CString>& mapKey_Value);
//选取一行,获得Field到对应数据的映射
virtual int GetSelDataEx(LPCTSTR pszSelectSQL,CMapStringToString &mapFieldToValue);
virtual int GetSelDataEx(LPCTSTR pszSelectSQL,std::map<CString, CString>& mapFieldToValue);
virtual int GetSelDataEx(LPCTSTR pszSelectSQL, std::vector<std::vector<CString>>& datas);
virtual int GetSelDataEx(LPCTSTR pszSelectSQL, std::vector<std::map<CString, CString>>& datas);
//把获得相应的信息填到vResults中
virtual int GetSelData(LPCTSTR pszStrSQL,_variant_t &vResults,long &lAdoRow,long &lAdoCol);
//获得数据库中所有的表名
virtual void GetSQLSrvTableNames(CStringList& listTables,LPCTSTR pszDbName);
//获得数据库中所有的表名
virtual void GetSQLSrvTableNames(CStringArray& arTables,LPCTSTR pszDbName);
//获得数据库中所有的表名
virtual void GetTableNameArray(CStringArray& arTables,LPCTSTR pszTableType = _T("TABLE"));
//获得数据库中所有的表名
virtual void GetOLDBTableNameList(CStringList &listTables,LPCTSTR pszTableType = _T("TABLE"));
//获得数据库中所有的表名
virtual void GetOLDBTableNameArray(CStringArray &arTables,LPCTSTR pszTableType = _T("TABLE"));
//blob 操作
//insert into table (id,name,picture) values (0,'namestr',?)
//table 对应 id,name 的数据
virtual int InsertBlob(LPCTSTR pszSQL,void* pData,int nSize);
virtual int InsertBlob(LPCTSTR pszSQL,LPCTSTR pszFile);
//update table set id=,name='namestr',picture=? where ...
virtual int UpdateBlob(LPCTSTR pszSQL,void* pData,int nSize);
virtual int UpdateBlob(LPCTSTR pszSQL,LPCTSTR pszFile);
//select picture from table where id=...
virtual int GetSelBlob(LPCTSTR pszSQL,void*& pData,int& nSize);
virtual int GetSelBlob(LPCTSTR pszSQL,LPCTSTR pszFilePath);
//执行SQL语句[如 删除,追加,更新]
virtual BOOL ExecuteSQL(LPCTSTR pszStrSQL);
//判断数据库是否成功打开
virtual BOOL IsDatabaseOpen();
//取得连接数据库指针
// _ConnectionPtr pConnect(pDistch);
virtual IDispatch* GetConnectionPtr();
virtual void BeginTrans();
virtual void RollbackTrans();
virtual void CommitTrans();
private:
LPVOID m_pImp;
};
#endif //AFX_UIIADORXSERVER_H__0D757B27_D77D_4FF7_B950_1FAC5E23F668__INCLUDED_