1+ #include " pch.h"
2+ #include " ModuleDatabase_OilInfo.h"
3+ /* *******************************************************************
4+ // Created: 2024/05/08 14:52:14
5+ // File Name: D:\XEngine_APIService\XEngine_Source\XEngine_ModuleDatabase\ModuleDatabase_OilInfo\ModuleDatabase_OilInfo.cpp
6+ // File Path: D:\XEngine_APIService\XEngine_Source\XEngine_ModuleDatabase\ModuleDatabase_OilInfo
7+ // File Base: ModuleDatabase_OilInfo
8+ // File Ext: cpp
9+ // Project: XEngine(网络通信引擎)
10+ // Author: qyt
11+ // Purpose: 油价信息查询接口
12+ // History:
13+ *********************************************************************/
14+ CModuleDatabase_OilInfo::CModuleDatabase_OilInfo ()
15+ {
16+ }
17+ CModuleDatabase_OilInfo::~CModuleDatabase_OilInfo ()
18+ {
19+
20+ }
21+ // ////////////////////////////////////////////////////////////////////////
22+ // 公有函数
23+ // ////////////////////////////////////////////////////////////////////////
24+ /* *******************************************************************
25+ 函数名称:ModuleDatabase_OilInfo_Init
26+ 函数功能:初始化数据库
27+ 参数.一:pSt_DBConnector
28+ In/Out:In
29+ 类型:数据结构指针
30+ 可空:N
31+ 意思:数据数据库信息
32+ 返回值
33+ 类型:逻辑型
34+ 意思:是否成功
35+ 备注:
36+ *********************************************************************/
37+ bool CModuleDatabase_OilInfo::ModuleDatabase_OilInfo_Init (DATABASE_MYSQL_CONNECTINFO* pSt_DBConnector)
38+ {
39+ DBModule_IsErrorOccur = false ;
40+
41+ if (NULL == pSt_DBConnector)
42+ {
43+ DBModule_IsErrorOccur = true ;
44+ DBModule_dwErrorCode = ERROR_APISERVICE_MODULE_DATABASE_PARAMENT;
45+ return false ;
46+ }
47+ // 连接数据库
48+ _tcsxcpy (pSt_DBConnector->tszDBName , _X (" XEngine_APIInfo" ));
49+ if (!DataBase_MySQL_Connect (&xhDBSQL, pSt_DBConnector))
50+ {
51+ DBModule_IsErrorOccur = true ;
52+ DBModule_dwErrorCode = DataBase_GetLastError ();
53+ return false ;
54+ }
55+ return true ;
56+ }
57+ /* *******************************************************************
58+ 函数名称:ModuleDatabase_OilInfo_Destory
59+ 函数功能:销毁
60+ 返回值
61+ 类型:逻辑型
62+ 意思:是否成功
63+ 备注:
64+ *********************************************************************/
65+ bool CModuleDatabase_OilInfo::ModuleDatabase_OilInfo_Destory ()
66+ {
67+ DBModule_IsErrorOccur = false ;
68+
69+ DataBase_MySQL_Close (xhDBSQL);
70+ return true ;
71+ }
72+ /* *******************************************************************
73+ 函数名称:ModuleDatabase_OilInfo_Query
74+ 函数功能:查询数据
75+ 参数.一:pSt_OilInfo
76+ In/Out:In/Out
77+ 类型:数据结构指针
78+ 可空:N
79+ 意思:输入查询的信息,输出完整的信息
80+ 返回值
81+ 类型:逻辑型
82+ 意思:是否成功
83+ 备注:
84+ *********************************************************************/
85+ bool CModuleDatabase_OilInfo::ModuleDatabase_OilInfo_Query (XENGINE_OILINFO* pSt_OilInfo)
86+ {
87+ DBModule_IsErrorOccur = false ;
88+
89+ if ((NULL == pSt_OilInfo))
90+ {
91+ DBModule_IsErrorOccur = true ;
92+ DBModule_dwErrorCode = ERROR_APISERVICE_MODULE_DATABASE_PARAMENT;
93+ return false ;
94+ }
95+ // 查询
96+ XNETHANDLE xhTable = 0 ;
97+ __int64u nllLine = 0 ;
98+ __int64u nllRow = 0 ;
99+
100+ XCHAR tszSQLStatement[1024 ];
101+ memset (tszSQLStatement, ' \0 ' , sizeof (tszSQLStatement));
102+
103+ _xstprintf (tszSQLStatement, _X (" SELECT * FROM `OilPrice` WHERE tszRegion = '%s'" ), pSt_OilInfo->tszCityStr );
104+ #ifdef _MSC_BUILD
105+ XCHAR tszUTFStr[1024 ] = {};
106+ int nSLen = _tcsxlen (tszSQLStatement);
107+ BaseLib_OperatorCharset_AnsiToUTF (tszSQLStatement, tszUTFStr, &nSLen);
108+ if (!DataBase_MySQL_ExecuteQuery (xhDBSQL, &xhTable, tszUTFStr, &nllLine, &nllRow))
109+ #else
110+ if (!DataBase_MySQL_ExecuteQuery (xhDBSQL, &xhTable, tszSQLStatement, &nllLine, &nllRow))
111+ #endif
112+ {
113+ DBModule_IsErrorOccur = true ;
114+ DBModule_dwErrorCode = DataBase_GetLastError ();
115+ return false ;
116+ }
117+ if (nllLine <= 0 )
118+ {
119+ DBModule_IsErrorOccur = true ;
120+ DBModule_dwErrorCode = ERROR_APISERVICE_MODULE_DATABASE_NOTFOUND;
121+ return false ;
122+ }
123+ for (__int64u i = 0 ; i < nllLine; i++)
124+ {
125+ XCHAR** pptszResult = DataBase_MySQL_GetResult (xhDBSQL, xhTable);
126+
127+ if (NULL != pptszResult[1 ])
128+ {
129+ pSt_OilInfo->dlValue98 = _ttxof (pptszResult[1 ]);
130+ }
131+ if (NULL != pptszResult[2 ])
132+ {
133+ pSt_OilInfo->dlValue95 = _ttxof (pptszResult[2 ]);
134+ }
135+ if (NULL != pptszResult[3 ])
136+ {
137+ pSt_OilInfo->dlValue92 = _ttxof (pptszResult[3 ]);
138+ }
139+ if (NULL != pptszResult[4 ])
140+ {
141+ pSt_OilInfo->dlValue0 = _ttxof (pptszResult[4 ]);
142+ }
143+ if (NULL != pptszResult[5 ])
144+ {
145+ pSt_OilInfo->dlValue10 = _ttxof (pptszResult[5 ]);
146+ }
147+ if (NULL != pptszResult[6 ])
148+ {
149+ pSt_OilInfo->dlValue20 = _ttxof (pptszResult[6 ]);
150+ }
151+ if (NULL != pptszResult[7 ])
152+ {
153+ pSt_OilInfo->dlValue35 = _ttxof (pptszResult[7 ]);
154+ }
155+ if (NULL != pptszResult[8 ])
156+ {
157+ _tcsxcpy (pSt_OilInfo->tszUPTime , pptszResult[8 ]);
158+ }
159+ }
160+ DataBase_MySQL_FreeResult (xhDBSQL, xhTable);
161+ return true ;
162+ }
163+ /* *******************************************************************
164+ 函数名称:ModuleDatabase_OilInfo_UPDate
165+ 函数功能:更新数据
166+ 参数.一:pSt_OilInfo
167+ In/Out:In
168+ 类型:数据结构指针
169+ 可空:N
170+ 意思:输入要更新的数据
171+ 返回值
172+ 类型:逻辑型
173+ 意思:是否成功
174+ 备注:
175+ *********************************************************************/
176+ bool CModuleDatabase_OilInfo::ModuleDatabase_OilInfo_UPDate (XENGINE_OILINFO* pSt_OilInfo)
177+ {
178+ DBModule_IsErrorOccur = false ;
179+
180+ if (NULL == pSt_OilInfo)
181+ {
182+ DBModule_IsErrorOccur = true ;
183+ DBModule_dwErrorCode = ERROR_APISERVICE_MODULE_DATABASE_PARAMENT;
184+ return false ;
185+ }
186+ XCHAR tszSQLStatement[1024 ];
187+ memset (tszSQLStatement, ' \0 ' , sizeof (tszSQLStatement));
188+
189+ _xstprintf (tszSQLStatement, _X (" UPDATE `OilPrice` SET 98 = %lf,95 = %lf,92 = %lf,0 = %lf,-10 = %lf,-20 = %lf,-35 = %lf,tszUPTime = 'now()' WHERE tszRegion = '%s'" ), pSt_OilInfo->dlValue98 , pSt_OilInfo->dlValue95 , pSt_OilInfo->dlValue92 , pSt_OilInfo->dlValue0 , pSt_OilInfo->dlValue10 , pSt_OilInfo->dlValue20 , pSt_OilInfo->dlValue35 , pSt_OilInfo->tszCityStr );
190+
191+ #ifdef _MSC_BUILD
192+ XCHAR tszUTFStr[1024 ] = {};
193+ int nSLen = _tcsxlen (tszSQLStatement);
194+ BaseLib_OperatorCharset_AnsiToUTF (tszSQLStatement, tszUTFStr, &nSLen);
195+ if (!DataBase_MySQL_Execute (xhDBSQL, tszUTFStr))
196+ #else
197+ if (!DataBase_MySQL_Execute (xhDBSQL, tszSQLStatement))
198+ #endif
199+ {
200+ DBModule_IsErrorOccur = true ;
201+ DBModule_dwErrorCode = DataBase_GetLastError ();
202+ return false ;
203+ }
204+ return true ;
205+ }
0 commit comments