Skip to content

Commit 8a42f3c

Browse files
committed
modify:sql module support pathkey field
1 parent b1e9fa7 commit 8a42f3c

File tree

7 files changed

+54
-124
lines changed

7 files changed

+54
-124
lines changed

XEngine_Source/XEngine_StorageComponents/XStorage_SQLPacket/SQLPacket_Define.h

Lines changed: 2 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,8 @@
1616
typedef struct tag_XStorageCore_DBFILE
1717
{
1818
XENGINE_PROTOCOL_FILE st_ProtocolFile;
19-
CHAR tszTableName[64]; //日期表名称,插入:表示自定义插入日期表,获取:表示导出这个文件所属日期表
19+
CHAR tszPathKey[MAX_PATH]; //路径的关键字
20+
CHAR tszTableName[64]; //日期表名称,插入:表示自定义插入日期表,获取:表示导出这个文件所属日期表
2021
}XSTORAGECORE_DBFILE, *LPXSTORAGECORE_DBFILE;
2122
typedef struct tag_XStorageCore_UserInfo
2223
{
@@ -165,25 +166,6 @@ extern "C" BOOL XStorage_MySql_FileQueryForTable(XSTORAGECORE_DBFILE * **pppSt_L
165166
备注:
166167
*********************************************************************/
167168
extern "C" BOOL XStorage_MySql_FileQueryForHash(XSTORAGECORE_DBFILE* pSt_FileInfo, LPCSTR lpszFileMD5, LPCSTR lpszUser = NULL, LPCSTR lpszTimeStart = NULL, LPCSTR lpszTimeEnd = NULL);
168-
/********************************************************************
169-
函数名称:XStorage_MySql_FileGetCount
170-
函数功能:获取数据库中文件总个数和总大小
171-
参数.一:pInt_Count
172-
In/Out:Out
173-
类型:64位整数型指针
174-
可空:N
175-
意思:导出获取到的文件个数
176-
参数.二:pInt_Size
177-
In/Out:Out
178-
类型:64位整数型指针
179-
可空:N
180-
意思:导出获取到的文件大小,单位字节(BYTE)
181-
返回值
182-
类型:逻辑型
183-
意思:是否成功
184-
备注:
185-
*********************************************************************/
186-
extern "C" BOOL XStorage_MySql_FileGetCount(__int64x *pInt_Count, __int64x *pInt_Size);
187169
/************************************************************************/
188170
/* SQLITE数据库函数 */
189171
/************************************************************************/

XEngine_Source/XEngine_StorageComponents/XStorage_SQLPacket/SQLPacket_Error.h

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,8 +19,6 @@
1919
#define ERROR_XENGINE_XSTROGE_CORE_DB_DELETEFILE_PARAMENT 0x130B0020 //参数错误
2020
#define ERROR_XENGINE_XSTROGE_CORE_DB_QUERYFILE_PARAMENT 0x130B0030 //参数错误
2121
#define ERROR_XENGINE_XSTROGE_CORE_DB_QUERYFILE_EMPTY 0x130B0031 //查找数据为空
22-
#define ERROR_XENGINE_XSTROGE_CORE_DB_GETCOUNT_PARAMENT 0x130B0040 //参数错误
23-
#define ERROR_XENGINE_XSTROGE_CORE_DB_GETCOUNT_BROKE 0x130B0041 //数据库被损坏
2422
#define ERROR_XENGINE_XSTROGE_CORE_DB_QUERYFILETABLE_PARAMENT 0x130B00B1//参数错误
2523
#define ERROR_XENGINE_XSTROGE_CORE_DB_QUERYFILETABLE_EMPTY 0x130B00B2 //空的表
2624
#define ERROR_XENGINE_XSTROGE_CORE_DB_QUERYMD5_PARAMENT 0x130B00D0 //参数错误

XEngine_Source/XEngine_StorageComponents/XStorage_SQLPacket/XStorage_MySql/XStorage_MySql.cpp

Lines changed: 43 additions & 94 deletions
Original file line numberDiff line numberDiff line change
@@ -154,7 +154,7 @@ BOOL CXStorage_MySql::XStorage_MySql_FileInsert(XSTORAGECORE_DBFILE *pSt_DBFile)
154154
_stprintf_s(tszTableName, _T("%04d%02d"), st_LibTimer.wYear, st_LibTimer.wMonth);
155155
}
156156
//插入语句
157-
_stprintf_s(tszSQLStatement, _T("INSERT INTO `%s` (FilePath,FileName,FileHash,FileUser,FileSize,FileTime) VALUES('%s','%s','%s','%s',%lld,now())"), tszTableName, pSt_DBFile->st_ProtocolFile.tszFilePath, pSt_DBFile->st_ProtocolFile.tszFileName, pSt_DBFile->st_ProtocolFile.tszFileHash, pSt_DBFile->st_ProtocolFile.tszFileUser, pSt_DBFile->st_ProtocolFile.nFileSize);
157+
_stprintf_s(tszSQLStatement, _T("INSERT INTO `%s` (PathKey,FilePath,FileName,FileHash,FileUser,FileSize,FileTime) VALUES('%s','%s','%s','%s','%s',%lld,now())"), tszTableName, pSt_DBFile->tszPathKey, pSt_DBFile->st_ProtocolFile.tszFilePath, pSt_DBFile->st_ProtocolFile.tszFileName, pSt_DBFile->st_ProtocolFile.tszFileHash, pSt_DBFile->st_ProtocolFile.tszFileUser, pSt_DBFile->st_ProtocolFile.nFileSize);
158158
if (!DataBase_MySQL_Execute(xhDBSQL, tszSQLStatement))
159159
{
160160
XStorage_IsErrorOccur = TRUE;
@@ -353,29 +353,33 @@ BOOL CXStorage_MySql::XStorage_MySql_FileQuery(XSTORAGECORE_DBFILE*** pppSt_List
353353

354354
_tcscpy(st_DBFile.tszTableName, pptszResult[0]);
355355

356-
if (NULL != pptszFileResult[1])
356+
if (NULL != pptszFileResult[1])
357+
{
358+
_tcscpy(st_DBFile.tszPathKey, pptszFileResult[1]);
359+
}
360+
if (NULL != pptszFileResult[2])
357361
{
358-
_tcscpy(st_DBFile.st_ProtocolFile.tszFilePath, pptszFileResult[1]);
362+
_tcscpy(st_DBFile.st_ProtocolFile.tszFilePath, pptszFileResult[2]);
359363
}
360-
if (NULL != pptszFileResult[2])
364+
if (NULL != pptszFileResult[3])
361365
{
362-
_tcscpy(st_DBFile.st_ProtocolFile.tszFileName, pptszFileResult[2]);
366+
_tcscpy(st_DBFile.st_ProtocolFile.tszFileName, pptszFileResult[3]);
363367
}
364-
if (NULL != pptszFileResult[3])
368+
if (NULL != pptszFileResult[4])
365369
{
366-
_tcscpy(st_DBFile.st_ProtocolFile.tszFileHash, pptszFileResult[3]);
370+
_tcscpy(st_DBFile.st_ProtocolFile.tszFileHash, pptszFileResult[4]);
367371
}
368-
if (NULL != pptszFileResult[4])
369-
{
370-
_tcscpy(st_DBFile.st_ProtocolFile.tszFileUser, pptszFileResult[4]);
371-
}
372372
if (NULL != pptszFileResult[5])
373373
{
374-
st_DBFile.st_ProtocolFile.nFileSize = _ttoi64(pptszFileResult[5]);
374+
_tcscpy(st_DBFile.st_ProtocolFile.tszFileUser, pptszFileResult[5]);
375375
}
376376
if (NULL != pptszFileResult[6])
377377
{
378-
_tcscpy(st_DBFile.st_ProtocolFile.tszFileTime, pptszFileResult[6]);
378+
st_DBFile.st_ProtocolFile.nFileSize = _ttoi64(pptszFileResult[6]);
379+
}
380+
if (NULL != pptszFileResult[7])
381+
{
382+
_tcscpy(st_DBFile.st_ProtocolFile.tszFileTime, pptszFileResult[7]);
379383
}
380384
stl_ListFile.push_back(st_DBFile);
381385
}
@@ -457,29 +461,34 @@ BOOL CXStorage_MySql::XStorage_MySql_FileQueryForTable(XSTORAGECORE_DBFILE*** pp
457461
TCHAR** pptszFileResult = DataBase_MySQL_GetResult(xhDBSQL, xhTable);
458462

459463
_tcscpy((*pppSt_ListFile)[i]->tszTableName, lpszTableName);
464+
460465
if (NULL != pptszFileResult[1])
461466
{
462-
_tcscpy((*pppSt_ListFile)[i]->st_ProtocolFile.tszFilePath, pptszFileResult[1]);
467+
_tcscpy((*pppSt_ListFile)[i]->tszPathKey, pptszFileResult[1]);
463468
}
464469
if (NULL != pptszFileResult[2])
465470
{
466-
_tcscpy((*pppSt_ListFile)[i]->st_ProtocolFile.tszFileName, pptszFileResult[2]);
471+
_tcscpy((*pppSt_ListFile)[i]->st_ProtocolFile.tszFilePath, pptszFileResult[2]);
467472
}
468473
if (NULL != pptszFileResult[3])
469474
{
470-
_tcscpy((*pppSt_ListFile)[i]->st_ProtocolFile.tszFileHash, pptszFileResult[3]);
475+
_tcscpy((*pppSt_ListFile)[i]->st_ProtocolFile.tszFileName, pptszFileResult[3]);
471476
}
472477
if (NULL != pptszFileResult[4])
473478
{
474-
_tcscpy((*pppSt_ListFile)[i]->st_ProtocolFile.tszFileUser, pptszFileResult[4]);
479+
_tcscpy((*pppSt_ListFile)[i]->st_ProtocolFile.tszFileHash, pptszFileResult[4]);
475480
}
476481
if (NULL != pptszFileResult[5])
477482
{
478-
(*pppSt_ListFile)[i]->st_ProtocolFile.nFileSize = _ttoi64(pptszFileResult[5]);
483+
_tcscpy((*pppSt_ListFile)[i]->st_ProtocolFile.tszFileUser, pptszFileResult[5]);
479484
}
480485
if (NULL != pptszFileResult[6])
481486
{
482-
_tcscpy((*pppSt_ListFile)[i]->st_ProtocolFile.tszFileTime, pptszFileResult[6]);
487+
(*pppSt_ListFile)[i]->st_ProtocolFile.nFileSize = _ttoi64(pptszFileResult[6]);
488+
}
489+
if (NULL != pptszFileResult[7])
490+
{
491+
_tcscpy((*pppSt_ListFile)[i]->st_ProtocolFile.tszFileTime, pptszFileResult[7]);
483492
}
484493
}
485494
DataBase_MySQL_FreeResult(xhDBSQL, xhTable);
@@ -582,29 +591,34 @@ BOOL CXStorage_MySql::XStorage_MySql_FileQueryForHash(XSTORAGECORE_DBFILE* pSt_F
582591
TCHAR** pptszFileResult = DataBase_MySQL_GetResult(xhDBSQL, xhResult);
583592

584593
_tcscpy(pSt_FileInfo->tszTableName, pptszResult[0]);
585-
if (NULL != pptszFileResult[1])
586-
{
587-
_tcscpy(pSt_FileInfo->st_ProtocolFile.tszFilePath, pptszFileResult[1]);
588-
}
594+
595+
if (NULL != pptszFileResult[1])
596+
{
597+
_tcscpy(pSt_FileInfo->tszPathKey, pptszFileResult[1]);
598+
}
589599
if (NULL != pptszFileResult[2])
590600
{
591-
_tcscpy(pSt_FileInfo->st_ProtocolFile.tszFileName, pptszFileResult[2]);
601+
_tcscpy(pSt_FileInfo->st_ProtocolFile.tszFilePath, pptszFileResult[2]);
592602
}
593603
if (NULL != pptszFileResult[3])
594604
{
595-
_tcscpy(pSt_FileInfo->st_ProtocolFile.tszFileUser, pptszFileResult[3]);
605+
_tcscpy(pSt_FileInfo->st_ProtocolFile.tszFileName, pptszFileResult[3]);
596606
}
597607
if (NULL != pptszFileResult[4])
598608
{
599-
pSt_FileInfo->st_ProtocolFile.nFileSize = _ttoi64(pptszFileResult[4]);
609+
_tcscpy(pSt_FileInfo->st_ProtocolFile.tszFileUser, pptszFileResult[4]);
600610
}
601611
if (NULL != pptszFileResult[5])
602612
{
603-
_tcscpy(pSt_FileInfo->st_ProtocolFile.tszFileHash, pptszFileResult[5]);
613+
pSt_FileInfo->st_ProtocolFile.nFileSize = _ttoi64(pptszFileResult[5]);
604614
}
605615
if (NULL != pptszFileResult[6])
606616
{
607-
_tcscpy(pSt_FileInfo->st_ProtocolFile.tszFileTime, pptszFileResult[6]);
617+
_tcscpy(pSt_FileInfo->st_ProtocolFile.tszFileHash, pptszFileResult[6]);
618+
}
619+
if (NULL != pptszFileResult[7])
620+
{
621+
_tcscpy(pSt_FileInfo->st_ProtocolFile.tszFileTime, pptszFileResult[7]);
608622
}
609623
bFound = TRUE;
610624
break;
@@ -622,72 +636,6 @@ BOOL CXStorage_MySql::XStorage_MySql_FileQueryForHash(XSTORAGECORE_DBFILE* pSt_F
622636
}
623637
return TRUE;
624638
}
625-
/********************************************************************
626-
函数名称:XStorage_MySql_FileGetCount
627-
函数功能:获取数据库中文件总个数和总大小
628-
参数.一:pInt_Count
629-
In/Out:Out
630-
类型:64位整数型指针
631-
可空:N
632-
意思:导出获取到的文件个数
633-
参数.二:pInt_Size
634-
In/Out:Out
635-
类型:64位整数型指针
636-
可空:N
637-
意思:导出获取到的文件大小,单位字节(BYTE)
638-
返回值
639-
类型:逻辑型
640-
意思:是否成功
641-
备注:
642-
*********************************************************************/
643-
BOOL CXStorage_MySql::XStorage_MySql_FileGetCount(__int64x *pInt_Count, __int64x *pInt_Size)
644-
{
645-
XStorage_IsErrorOccur = FALSE;
646-
647-
if ((NULL == pInt_Count) || (NULL == pInt_Size))
648-
{
649-
XStorage_IsErrorOccur = TRUE;
650-
XStorage_dwErrorCode = ERROR_XENGINE_XSTROGE_CORE_DB_GETCOUNT_PARAMENT;
651-
return FALSE;
652-
}
653-
__int64u nllRow = 0;
654-
__int64u nllColumn = 0;
655-
TCHAR tszSQLStatement[1024]; //SQL语句
656-
memset(tszSQLStatement, '\0', sizeof(tszSQLStatement));
657-
658-
_stprintf_s(tszSQLStatement, _T("SELECT * FROM `XStorage_Count`"));
659-
//查询
660-
XHDATA xhResult = 0;
661-
if (!DataBase_MySQL_ExecuteQuery(xhDBSQL, &xhResult, tszSQLStatement, &nllRow, &nllColumn))
662-
{
663-
XStorage_IsErrorOccur = TRUE;
664-
XStorage_dwErrorCode = DataBase_GetLastError();
665-
return FALSE;
666-
}
667-
if (nllRow <= 0)
668-
{
669-
XStorage_IsErrorOccur = TRUE;
670-
XStorage_dwErrorCode = ERROR_XENGINE_XSTROGE_CORE_DB_GETCOUNT_BROKE;
671-
return FALSE;
672-
}
673-
//获取记录集
674-
TCHAR **pptszResult = DataBase_MySQL_GetResult(xhDBSQL, xhResult);
675-
if (NULL == pptszResult[0])
676-
{
677-
return FALSE;
678-
}
679-
if (NULL != pptszResult[1])
680-
{
681-
*pInt_Count = _ttoi64(pptszResult[1]);
682-
}
683-
if (NULL != pptszResult[2])
684-
{
685-
*pInt_Size = _ttoi64(pptszResult[2]);
686-
}
687-
DataBase_MySQL_FreeResult(xhDBSQL, xhResult);
688-
689-
return TRUE;
690-
}
691639
//////////////////////////////////////////////////////////////////////////
692640
// 保护函数
693641
//////////////////////////////////////////////////////////////////////////
@@ -727,6 +675,7 @@ BOOL CXStorage_MySql::XStorage_MySql_CreateTable()
727675

728676
_stprintf_s(tszSQLQuery, _T("CREATE TABLE IF NOT EXISTS `%s` ("
729677
"`ID` int NOT NULL AUTO_INCREMENT COMMENT 'ID序号',"
678+
"`PathKey` varchar(260) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '路径KEY',"
730679
"`FilePath` varchar(260) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '文件路径',"
731680
"`FileName` varchar(260) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '文件名称',"
732681
"`FileHash` varchar(260) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '文件HASH',"

XEngine_Source/XEngine_StorageComponents/XStorage_SQLPacket/XStorage_MySql/XStorage_MySql.h

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,6 @@ class CXStorage_MySql
2424
BOOL XStorage_MySql_FileQuery(XSTORAGECORE_DBFILE*** pppSt_ListFile, int* pInt_ListCount, LPCTSTR lpszTimeStart = NULL, LPCTSTR lpszTimeEnd = NULL, LPCTSTR lpszFile = NULL, LPCTSTR lpszHash = NULL);
2525
BOOL XStorage_MySql_FileQueryForTable(XSTORAGECORE_DBFILE*** pppSt_ListFile, int* pInt_ListCount, LPCTSTR lpszTableName);
2626
BOOL XStorage_MySql_FileQueryForHash(XSTORAGECORE_DBFILE* pSt_FileInfo, LPCTSTR lpszFileHash, LPCTSTR lpszUser = NULL, LPCTSTR lpszTimeStart = NULL, LPCTSTR lpszTimeEnd = NULL);
27-
BOOL XStorage_MySql_FileGetCount(__int64x *pInt_Count, __int64x *pInt_Size);
2827
protected:
2928
BOOL XStorage_MySql_CreateTable();
3029
BOOL XStorage_MySql_TimeMonth(LPCTSTR lpszStartTime, int* pInt_Month);

XEngine_Source/XEngine_StorageComponents/XStorage_SQLPacket/XStorage_SQLPacket.def

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,6 @@ EXPORTS
1010
XStorage_MySql_FileQuery
1111
XStorage_MySql_FileQueryForTable
1212
XStorage_MySql_FileQueryForHash
13-
XStorage_MySql_FileGetCount
1413

1514
XStorage_SQLite_Init
1615
XStorage_SQLite_Destory

XEngine_Source/XEngine_StorageComponents/XStorage_SQLPacket/XStorage_SQLite/XStorage_SQLite.cpp

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -154,7 +154,7 @@ BOOL CXStorage_SQLite::XStorage_SQLite_FileInsert(XSTORAGECORE_DBFILE* pSt_DBFil
154154
_stprintf_s(tszTableName, _T("%04d%02d"), st_LibTimer.wYear, st_LibTimer.wMonth);
155155
}
156156
//插入语句
157-
_stprintf_s(tszSQLStatement, _T("INSERT INTO `%s` (FilePath,FileName,FileHash,FileUser,FileSize,FileTime) VALUES('%s','%s','%s','%s',%lld,DATETIME('now', 'localtime'))"), tszTableName, pSt_DBFile->st_ProtocolFile.tszFilePath, pSt_DBFile->st_ProtocolFile.tszFileName, pSt_DBFile->st_ProtocolFile.tszFileHash, pSt_DBFile->st_ProtocolFile.tszFileUser, pSt_DBFile->st_ProtocolFile.nFileSize);
157+
_stprintf_s(tszSQLStatement, _T("INSERT INTO `%s` (PathKey,FilePath,FileName,FileHash,FileUser,FileSize,FileTime) VALUES('%s','%s','%s','%s','%s',%lld,DATETIME('now', 'localtime'))"), tszTableName, pSt_DBFile->tszPathKey, pSt_DBFile->st_ProtocolFile.tszFilePath, pSt_DBFile->st_ProtocolFile.tszFileName, pSt_DBFile->st_ProtocolFile.tszFileHash, pSt_DBFile->st_ProtocolFile.tszFileUser, pSt_DBFile->st_ProtocolFile.nFileSize);
158158
if (!DataBase_SQLite_Exec(xhSQL, tszSQLStatement))
159159
{
160160
XStorage_IsErrorOccur = TRUE;
@@ -351,6 +351,9 @@ BOOL CXStorage_SQLite::XStorage_SQLite_FileQuery(XSTORAGECORE_DBFILE*** pppSt_Li
351351
_tcscpy(st_DBFile.tszTableName, pptszResult[i]);
352352
nFiled++;
353353

354+
_tcscpy(st_DBFile.tszPathKey, pptszFileResult[nFiled]);
355+
nFiled++;
356+
354357
_tcscpy(st_DBFile.st_ProtocolFile.tszFilePath, pptszFileResult[nFiled]);
355358
nFiled++;
356359

@@ -449,9 +452,12 @@ BOOL CXStorage_SQLite::XStorage_SQLite_FileQueryForTable(XSTORAGECORE_DBFILE***
449452
nFiled++;
450453
_tcscpy((*pppSt_ListFile)[i]->tszTableName, lpszTableName);
451454

452-
_tcscpy((*pppSt_ListFile)[i]->st_ProtocolFile.tszFilePath, pptszResulte[nFiled]);
455+
_tcscpy((*pppSt_ListFile)[i]->tszPathKey, pptszResulte[nFiled]);
453456
nFiled++;
454457

458+
_tcscpy((*pppSt_ListFile)[i]->st_ProtocolFile.tszFilePath, pptszResulte[nFiled]);
459+
nFiled++;
460+
455461
_tcscpy((*pppSt_ListFile)[i]->st_ProtocolFile.tszFileName, pptszResulte[nFiled]);
456462
nFiled++;
457463

@@ -510,6 +516,7 @@ BOOL CXStorage_SQLite::XStorage_SQLite_CreateTable()
510516
_stprintf_s(tszSQLQuery, _T("PRAGMA foreign_keys = false;"
511517
"CREATE TABLE IF NOT EXISTS \"%s\" ("
512518
" \"ID\" INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,"
519+
" \"PathKey\" TEXT NOT NULL,"
513520
" \"FilePath\" TEXT NOT NULL,"
514521
" \"FileName\" TEXT NOT NULL,"
515522
" \"FileHash\" TEXT,"

XEngine_Source/XEngine_StorageComponents/XStorage_SQLPacket/pch.cpp

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -59,10 +59,6 @@ extern "C" BOOL XStorage_MySql_FileQueryForHash(XSTORAGECORE_DBFILE * pSt_FileIn
5959
{
6060
return m_MySql.XStorage_MySql_FileQueryForHash(pSt_FileInfo, lpszFileMD5, lpszUser, lpszTimeStart, lpszTimeEnd);
6161
}
62-
extern "C" BOOL XStorage_MySql_FileGetCount(__int64x * pInt_Count, __int64x * pInt_Size)
63-
{
64-
return m_MySql.XStorage_MySql_FileGetCount(pInt_Count, pInt_Size);
65-
}
6662
/************************************************************************/
6763
/* SQLITE数据库函数 */
6864
/************************************************************************/

0 commit comments

Comments
 (0)