Files

122 lines
3.8 KiB
C++
Raw Permalink Normal View History

2026-10-04 00:04:20 +08:00
#pragma once
2026-09-28 15:28:50 +08:00
#ifndef __UIIVALUETABLE_H__
#include "UIIValueTable.h"
#endif
#include "comutil.h"
#include "UIITableField.h"
#include <map>
#include <vector>
class CUIIImpSQLiteServer
{
public:
CUIIImpSQLiteServer(void);
~CUIIImpSQLiteServer(void);
2026-10-04 00:04:20 +08:00
//初始化
2026-09-28 15:28:50 +08:00
BOOL InitADOServer(LPCTSTR pszDbFileName);
2026-10-04 00:04:20 +08:00
//建立连接、连接数据库,打开数据库RETURN FALSE
2026-09-28 15:28:50 +08:00
BOOL InitSQLServer(LPCTSTR pszConnection);
2026-10-04 00:04:20 +08:00
//创建表
2026-09-28 15:28:50 +08:00
BOOL CreateDBTable(LPCTSTR pszTableName,Ttable& arFields);
2026-10-04 00:04:20 +08:00
//判断表是否存在
2026-09-28 15:28:50 +08:00
BOOL IsDbTableExist(LPCTSTR pszTableName);
2026-10-04 00:04:20 +08:00
//获取表的结构信息
2026-09-28 15:28:50 +08:00
BOOL GetTableStru(LPCTSTR pszTableName,Ttable& arFields,BOOL bTypeAsSQLite = TRUE);
2026-10-04 00:04:20 +08:00
//获取表的结构信息
2026-09-28 15:28:50 +08:00
BOOL GetTableStru(LPCTSTR pszTableName,CStringList& listField);
2026-10-04 00:04:20 +08:00
//删除数据库中的表
2026-09-28 15:28:50 +08:00
BOOL DeleteTable(LPCTSTR pszTableName);
2026-10-04 00:04:20 +08:00
//删除数据库中的若干表
2026-09-28 15:28:50 +08:00
BOOL DeleteTable(CStringArray& arTableNames);
2026-10-04 00:04:20 +08:00
//删除表中若干字段名
2026-09-28 15:28:50 +08:00
BOOL DeleteTableFields(LPCTSTR pszTableName,CStringArray& arFields);
2026-10-04 00:04:20 +08:00
//删除表中字段
2026-09-28 15:28:50 +08:00
BOOL DeleteTableFields(LPCTSTR pszTableName,LPCTSTR pszFields);
2026-10-04 00:04:20 +08:00
//向表中增加若干字段名
2026-09-28 15:28:50 +08:00
BOOL AppendTableFields(LPCTSTR pszTableName,Ttable& arFields);
2026-10-04 00:04:20 +08:00
//向表中增加字段
2026-09-28 15:28:50 +08:00
BOOL AppendTableFields(LPCTSTR pszTableName, CUIITableField& arFields);
2026-10-04 00:04:20 +08:00
//获得一个数值
2026-09-28 15:28:50 +08:00
int GetSelData(LPCTSTR pszStrSQL,CString& sValue);
2026-10-04 00:04:20 +08:00
//把获得相应的信息填到数组中
2026-09-28 15:28:50 +08:00
int GetSelData(LPCTSTR pszStrSQL,CStringArray& arStrValue);
int GetSelData(LPCTSTR pszStrSQL,CStringArray& arStrValue,int nFr, int nTo);
int GetSelData(LPCTSTR pszStrSQL, std::vector<CString> &arStrValue);
2026-10-04 00:04:20 +08:00
//是否是空选择集
2026-09-28 15:28:50 +08:00
BOOL IsSelEmpty(LPCTSTR pszStrSQL);
2026-10-04 00:04:20 +08:00
//把获得相应的信息填到链表中
2026-09-28 15:28:50 +08:00
int GetSelData(LPCTSTR pszStrSQL,CStringList& listStrValue,BOOL bMakeLower= TRUE);
int GetSelData(LPCTSTR pszStrSQL,CStringList& listStrValue, int nFr, int nTo, BOOL bMakeLower= TRUE);
2026-10-04 00:04:20 +08:00
//选取多个字段,把获得相应的信息填到'表'对象中
2026-09-28 15:28:50 +08:00
int GetSelData(LPCTSTR pszStrSQL,CUIIValueTable& valueTable,BOOL bUpdateLable = TRUE);
int GetSelData(LPCTSTR pszStrSQL,CUIIValueTable& valueTable, int nFr, int nTo, BOOL bUpdateLable = TRUE);
2026-10-04 00:04:20 +08:00
//选取两列,一个为Key,一个为Value建map select a,b from...; a-->b
2026-09-28 15:28:50 +08:00
int GetSelData(LPCTSTR pszSKey_ValueSQL,CMapStringToString& mapKey_Value);
int GetSelData(LPCTSTR pszSKey_ValueSQL, std::map<CString, CString>& mapKey_Value);
2026-10-04 00:04:20 +08:00
//选取一行,获得Field到对应数据的映射
2026-09-28 15:28:50 +08:00
int GetSelDataEx(LPCTSTR pszSelectSQL,CMapStringToString& mapFieldToValue);
int GetSelDataEx(LPCTSTR pszSelectSQL, std::map<CString, CString>& mapFieldToValue);
int GetSelDataEx(LPCTSTR pszSelectSQL, std::vector<std::vector<CString>>& datas);
int GetSelDataEx(LPCTSTR pszSelectSQL, std::vector<std::map<CString, CString>>& datas);
2026-10-04 00:04:20 +08:00
//blob 操作
2026-09-28 15:28:50 +08:00
//insert into table (id,name,picture) values (0,'namestr',?)
2026-10-04 00:04:20 +08:00
//table 对应 id,name 的数据
2026-09-28 15:28:50 +08:00
int InsertBlob(LPCTSTR pszSQL,void* pData,int nSize);
int InsertBlob(LPCTSTR pszSQL,LPCTSTR pszFile);
//update table set id=,name='namestr',picture=? where ...
int UpdateBlob(LPCTSTR pszSQL,void* pData,int nSize);
int UpdateBlob(LPCTSTR pszSQL,LPCTSTR pszFile);
//select picture from table where id=...
int GetSelBlob(LPCTSTR pszSQL,void*& pData,int& nSize);
int GetSelBlob(LPCTSTR pszSQL,LPCTSTR pszFilePath);
2026-10-04 00:04:20 +08:00
//获得数据库中所有的表名
2026-09-28 15:28:50 +08:00
void GetDbTableNameArray(CStringArray& arTables);
2026-10-04 00:04:20 +08:00
//获得数据库中所有的表名
2026-09-28 15:28:50 +08:00
void GetDBTableNameList(CStringList& listTables);
2026-10-04 00:04:20 +08:00
//执行SQL语句[如 删除,追加,更新]
2026-09-28 15:28:50 +08:00
BOOL ExecuteSQL(LPCTSTR pszStrSQL);
2026-10-04 00:04:20 +08:00
//判断数据库是否成功打开
2026-09-28 15:28:50 +08:00
BOOL IsDatabaseOpen();
2026-10-04 00:04:20 +08:00
//开始事务
2026-09-28 15:28:50 +08:00
void BeginTrans();
2026-10-04 00:04:20 +08:00
//回滚事务
2026-09-28 15:28:50 +08:00
void RollbackTrans();
2026-10-04 00:04:20 +08:00
//提交事务
2026-09-28 15:28:50 +08:00
void CommitTrans();
protected:
void* m_pSQLiteDb;
};