DataImpl.cpp 26 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946
  1. #include "StdAfx.h"
  2. #include "DataImpl.h"
  3. #include "CharEncoding.h"
  4. #include "Global.h"
  5. CDataImpl::CDataImpl(void):m_psqlite3(NULL),m_pszErrmsg(NULL)
  6. {
  7. }
  8. CDataImpl::~CDataImpl(void)
  9. {
  10. }
  11. BOOL CDataImpl::Open()
  12. {
  13. Close();
  14. CHAR szpath[MAX_PATH] = {0};
  15. _stprintf_s(szpath, _T("%ssms.db"), Global::g_szCurModuleDir );
  16. std::string strPath;
  17. if ( !CharEncoding::ASCII2UTF8(szpath,strPath))
  18. {
  19. return FALSE;
  20. }
  21. INT nResult = sqlite3_open(strPath.c_str(), &m_psqlite3);
  22. if ( nResult != SQLITE_OK )
  23. return FALSE;
  24. return TRUE;
  25. }
  26. void CDataImpl::Close()
  27. {
  28. if ( m_psqlite3 )
  29. sqlite3_close(m_psqlite3);
  30. m_psqlite3 = NULL;
  31. }
  32. BOOL CDataImpl::ExecteSQL(IN LPCSTR lpSQL)
  33. {
  34. if ( lpSQL == NULL || lpSQL[0] == '\0' )
  35. {
  36. //Global::WriteTextLog(_T("ExecteSQL:执行语句空!"));
  37. return FALSE;
  38. }
  39. if(m_psqlite3 == NULL)
  40. return FALSE;
  41. char* psqlite_error = NULL;
  42. int sqlite_error = sqlite3_exec(m_psqlite3, lpSQL, NULL, 0, &psqlite_error);
  43. if(SQLITE_OK != sqlite_error)
  44. {
  45. //Global::WriteTextLog(_T("ExecteSQL:%s"), psqlite_error);
  46. return FALSE;
  47. }
  48. return TRUE;
  49. }
  50. INT CDataImpl::QueryContactsType(IN OUT std::vector<STContactsType> &vtContactsType)
  51. {
  52. if ( m_psqlite3 == NULL )
  53. return -1;
  54. INT nRow = 0;
  55. INT nCol = 0;
  56. char** pazResult = NULL;
  57. int sqlite_error = sqlite3_get_table(m_psqlite3, "select Autoid, ContactsType from ContactsType", &pazResult, &nRow, &nCol, &m_pszErrmsg);
  58. if ( sqlite_error != SQLITE_OK)
  59. {
  60. //Global::WriteTextLog(_T("QueryContactsType:%s"), m_pszErrmsg);
  61. return -1;
  62. }
  63. for(int i = 1; i <= nRow; i++)
  64. {
  65. STContactsType tagObj;
  66. #ifndef USE_UTF8
  67. tagObj.strAutoid = pazResult[i*nCol + 0];
  68. tagObj.strContactsType = pazResult[i*nCol + 1];
  69. #else
  70. // 由Native for SQLite3插入的数据,都是utf8格式;
  71. CharEncoding::UTF82ASCII(pazResult[i*nCol + 0], tagObj.strAutoid);
  72. CharEncoding::UTF82ASCII(pazResult[i*nCol + 1], tagObj.strContactsType);
  73. #endif
  74. vtContactsType.push_back(tagObj);
  75. }
  76. sqlite3_free_table(pazResult);
  77. return nRow;
  78. }
  79. INT CDataImpl::QueryContactsInfo(IN OUT std::vector<STContactsInfo> &vtContactsInfo)
  80. {
  81. if ( m_psqlite3 == NULL )
  82. return -1;
  83. INT nRow = 0;
  84. INT nCol = 0;
  85. char** pazResult = NULL;
  86. int sqlite_error = sqlite3_get_table(m_psqlite3, "select Autoid, ContactsType, ContactsName,ContactsPhone, ContactsStatus from ContactsInfo", &pazResult, &nRow, &nCol, &m_pszErrmsg);
  87. if ( sqlite_error != SQLITE_OK)
  88. {
  89. //Global::WriteTextLog(_T("QueryContactsInfo:%s"), m_pszErrmsg);
  90. return -1;
  91. }
  92. for(int i = 1; i <= nRow; i++)
  93. {
  94. STContactsInfo tagObj;
  95. #ifndef USE_UTF8
  96. tagObj.strAutoid = pazResult[i*nCol + 0];
  97. tagObj.strContactsType = pazResult[i*nCol + 1];
  98. tagObj.strContactsName = pazResult[i*nCol + 2];
  99. tagObj.strContactsPhone = pazResult[i*nCol + 3];
  100. tagObj.strContactsStatus = pazResult[i*nCol + 4];
  101. #else
  102. // 由Native for SQLite3插入的数据,都是utf8格式;
  103. CharEncoding::UTF82ASCII(pazResult[i*nCol + 0], tagObj.strAutoid);
  104. CharEncoding::UTF82ASCII(pazResult[i*nCol + 1], tagObj.strContactsType);
  105. CharEncoding::UTF82ASCII(pazResult[i*nCol + 2], tagObj.strContactsName);
  106. CharEncoding::UTF82ASCII(pazResult[i*nCol + 3], tagObj.strContactsPhone);
  107. CharEncoding::UTF82ASCII(pazResult[i*nCol + 4], tagObj.strContactsStatus);
  108. #endif
  109. vtContactsInfo.push_back(tagObj);
  110. }
  111. sqlite3_free_table(pazResult);
  112. return nRow;
  113. }
  114. INT CDataImpl::QueryTaskInfo(IN OUT std::vector<STTaskInfo> &vtTaskInfo)
  115. {
  116. if ( m_psqlite3 == NULL )
  117. return -1;
  118. INT nRow = 0;
  119. INT nCol = 0;
  120. char** pazResult = NULL;
  121. int sqlite_error = sqlite3_get_table(m_psqlite3, "select Autoid,TirrgerTime, TaskPhone, TaskContent, ExecDate, TaskStatus, TirrgerCycle from TaskInfo", &pazResult, &nRow, &nCol, &m_pszErrmsg);
  122. if ( sqlite_error != SQLITE_OK)
  123. {
  124. //Global::WriteTextLog(_T("QueryTaskInfo:%s"), m_pszErrmsg);
  125. return -1;
  126. }
  127. for(int i = 1; i <= nRow; i++)
  128. {
  129. STTaskInfo tagObj;
  130. #ifndef USE_UTF8
  131. tagObj.strAutoid = pazResult[i*nCol + 0];
  132. tagObj.strTirrgerTime = pazResult[i*nCol + 1];
  133. tagObj.strTaskPhone = pazResult[i*nCol + 2];
  134. tagObj.strTaskContent = pazResult[i*nCol + 3];
  135. tagObj.strExecDate = pazResult[i*nCol + 4];
  136. tagObj.strTaskStatus = pazResult[i*nCol + 5];
  137. tagObj.strTirrgerCycle = pazResult[i*nCol + 6];
  138. #else
  139. // 由Native for SQLite3插入的数据,都是utf8格式;
  140. CharEncoding::UTF82ASCII(pazResult[i*nCol + 0], tagObj.strAutoid);
  141. CharEncoding::UTF82ASCII(pazResult[i*nCol + 1], tagObj.strTirrgerTime);
  142. CharEncoding::UTF82ASCII(pazResult[i*nCol + 2], tagObj.strTaskPhone);
  143. CharEncoding::UTF82ASCII(pazResult[i*nCol + 3], tagObj.strTaskContent);
  144. CharEncoding::UTF82ASCII(pazResult[i*nCol + 4], tagObj.strExecDate);
  145. CharEncoding::UTF82ASCII(pazResult[i*nCol + 5], tagObj.strTaskStatus);
  146. CharEncoding::UTF82ASCII(pazResult[i*nCol + 6], tagObj.strTirrgerCycle);
  147. #endif
  148. vtTaskInfo.push_back(tagObj);
  149. }
  150. sqlite3_free_table(pazResult);
  151. return nRow;
  152. }
  153. INT CDataImpl::QuerySendRecord(IN OUT std::vector<STSendRecord> &vtSendRecord)
  154. {
  155. if ( m_psqlite3 == NULL )
  156. return -1;
  157. INT nRow = 0;
  158. INT nCol = 0;
  159. char** pazResult = NULL;
  160. int sqlite_error = sqlite3_get_table(m_psqlite3, "select Autoid, SendId, SendType, SendDateTime,SendPhone,SendContent,SendStatus,SendLog from SendRecord", &pazResult, &nRow, &nCol, &m_pszErrmsg);
  161. if ( sqlite_error != SQLITE_OK)
  162. {
  163. //Global::WriteTextLog(_T("QueryContactsType:%s"), m_pszErrmsg);
  164. return -1;
  165. }
  166. for(int i = 1; i <= nRow; i++)
  167. {
  168. STSendRecord tagObj;
  169. #ifndef USE_UTF8
  170. tagObj.strAutoid = pazResult[i*nCol + 0];
  171. tagObj.strSendId = pazResult[i*nCol + 1];
  172. tagObj.strSendType = pazResult[i*nCol + 2];
  173. tagObj.strSendDateTime = pazResult[i*nCol + 3];
  174. tagObj.strSendPhone = pazResult[i*nCol + 4];
  175. tagObj.strSendContent = pazResult[i*nCol + 5];
  176. tagObj.strSendResult = pazResult[i*nCol + 6];
  177. tagObj.strSendLog = pazResult[i*nCol + 7];
  178. #else
  179. // 由Native for SQLite3插入的数据,都是utf8格式;
  180. CharEncoding::UTF82ASCII(pazResult[i*nCol + 0], tagObj.strAutoid);
  181. CharEncoding::UTF82ASCII(pazResult[i*nCol + 1], tagObj.strSendId);
  182. CharEncoding::UTF82ASCII(pazResult[i*nCol + 2], tagObj.strSendType);
  183. CharEncoding::UTF82ASCII(pazResult[i*nCol + 3], tagObj.strSendDateTime);
  184. CharEncoding::UTF82ASCII(pazResult[i*nCol + 4], tagObj.strSendPhone);
  185. CharEncoding::UTF82ASCII(pazResult[i*nCol + 5], tagObj.strSendContent);
  186. CharEncoding::UTF82ASCII(pazResult[i*nCol + 6], tagObj.strSendResult);
  187. CharEncoding::UTF82ASCII(pazResult[i*nCol + 7], tagObj.strSendLog);
  188. #endif
  189. vtSendRecord.push_back(tagObj);
  190. }
  191. sqlite3_free_table(pazResult);
  192. return nRow;
  193. }
  194. INT CDataImpl::QuerySendRecord(IN LPCSTR lpSendId, IN OUT STSendRecord &SendRecord)
  195. {
  196. if ( m_psqlite3 == NULL )
  197. return -1;
  198. INT nRow = 0;
  199. INT nCol = 0;
  200. char** pazResult = NULL;
  201. std::string strQuery = "select Autoid, SendType, SendId, SendDateTime,SendPhone,SendContent,SendStatus,SendLog from SendRecord where SendId = '";
  202. strQuery.append(lpSendId);
  203. strQuery.append("';");
  204. int sqlite_error = sqlite3_get_table(m_psqlite3, strQuery.c_str(), &pazResult, &nRow, &nCol, &m_pszErrmsg);
  205. if ( sqlite_error != SQLITE_OK)
  206. {
  207. //Global::WriteTextLog(_T("QueryContactsType:%s"), m_pszErrmsg);
  208. return -1;
  209. }
  210. for(int i = 1; i <= nRow; i++)
  211. {
  212. STSendRecord tagObj;
  213. #ifndef USE_UTF8
  214. tagObj.strAutoid = pazResult[i*nCol + 0];
  215. tagObj.strSendType = pazResult[i*nCol + 1];
  216. tagObj.strSendId = pazResult[i*nCol + 2];
  217. tagObj.strSendDateTime = pazResult[i*nCol + 3];
  218. tagObj.strSendPhone = pazResult[i*nCol + 4];
  219. tagObj.strSendContent = pazResult[i*nCol + 5];
  220. tagObj.strSendResult = pazResult[i*nCol + 6];
  221. tagObj.strSendLog = pazResult[i*nCol + 7];
  222. #else
  223. // 由Native for SQLite3插入的数据,都是utf8格式;
  224. CharEncoding::UTF82ASCII(pazResult[i*nCol + 0], SendRecord.strAutoid);
  225. CharEncoding::UTF82ASCII(pazResult[i*nCol + 1], SendRecord.strSendType);
  226. CharEncoding::UTF82ASCII(pazResult[i*nCol + 2], SendRecord.strSendId);
  227. CharEncoding::UTF82ASCII(pazResult[i*nCol + 3], SendRecord.strSendDateTime);
  228. CharEncoding::UTF82ASCII(pazResult[i*nCol + 4], SendRecord.strSendPhone);
  229. CharEncoding::UTF82ASCII(pazResult[i*nCol + 5], SendRecord.strSendContent);
  230. CharEncoding::UTF82ASCII(pazResult[i*nCol + 6], SendRecord.strSendResult);
  231. CharEncoding::UTF82ASCII(pazResult[i*nCol + 7], SendRecord.strSendLog);
  232. #endif
  233. }
  234. sqlite3_free_table(pazResult);
  235. return nRow;
  236. }
  237. INT CDataImpl::QuerySendRecordByAutoid(IN LPCSTR lpAutoId, IN OUT STSendRecord &SendRecord)
  238. {
  239. if ( m_psqlite3 == NULL )
  240. return -1;
  241. INT nRow = 0;
  242. INT nCol = 0;
  243. char** pazResult = NULL;
  244. std::string strQuery = "select Autoid, SendId, SendType, SendDateTime,SendPhone,SendContent,SendStatus,SendLog from SendRecord where Autoid = ";
  245. strQuery.append(lpAutoId);
  246. strQuery.append(";");
  247. int sqlite_error = sqlite3_get_table(m_psqlite3, strQuery.c_str(), &pazResult, &nRow, &nCol, &m_pszErrmsg);
  248. if ( sqlite_error != SQLITE_OK)
  249. {
  250. //Global::WriteTextLog(_T("QueryContactsType:%s"), m_pszErrmsg);
  251. return -1;
  252. }
  253. for(int i = 1; i <= nRow; i++)
  254. {
  255. STSendRecord tagObj;
  256. #ifndef USE_UTF8
  257. tagObj.strAutoid = pazResult[i*nCol + 0];
  258. tagObj.strSendId = pazResult[i*nCol + 1];
  259. tagObj.strSendType = pazResult[i*nCol + 2];
  260. tagObj.strSendDateTime = pazResult[i*nCol + 3];
  261. tagObj.strSendPhone = pazResult[i*nCol + 4];
  262. tagObj.strSendContent = pazResult[i*nCol + 5];
  263. tagObj.strSendResult = pazResult[i*nCol + 6];
  264. tagObj.strSendLog = pazResult[i*nCol + 7];
  265. #else
  266. // 由Native for SQLite3插入的数据,都是utf8格式;
  267. CharEncoding::UTF82ASCII(pazResult[i*nCol + 0], SendRecord.strAutoid);
  268. CharEncoding::UTF82ASCII(pazResult[i*nCol + 1], SendRecord.strSendId);
  269. CharEncoding::UTF82ASCII(pazResult[i*nCol + 2], SendRecord.strSendType);
  270. CharEncoding::UTF82ASCII(pazResult[i*nCol + 3], SendRecord.strSendDateTime);
  271. CharEncoding::UTF82ASCII(pazResult[i*nCol + 4], SendRecord.strSendPhone);
  272. CharEncoding::UTF82ASCII(pazResult[i*nCol + 5], SendRecord.strSendContent);
  273. CharEncoding::UTF82ASCII(pazResult[i*nCol + 6], SendRecord.strSendResult);
  274. CharEncoding::UTF82ASCII(pazResult[i*nCol + 7], SendRecord.strSendLog);
  275. #endif
  276. }
  277. sqlite3_free_table(pazResult);
  278. return nRow;
  279. }
  280. BOOL CDataImpl::InsertContactsType(IN LPCSTR lpContactsType)
  281. {
  282. if ( lpContactsType == NULL || lpContactsType[0] == '\0' )
  283. {
  284. //Global::WriteTextLog(_T("InsertContactsType:变量空!"));
  285. return FALSE;
  286. }
  287. if(m_psqlite3 == NULL)
  288. return FALSE;
  289. std::string strInsert = "INSERT INTO ContactsType(ContactsType) VALUES ('";
  290. #ifndef USE_UTF8
  291. strInsert.append(lpContactsType);
  292. #else
  293. string str;
  294. CharEncoding::ASCII2UTF8(lpContactsType,str);
  295. strInsert.append(str);
  296. #endif
  297. strInsert.append("');");
  298. char* psqlite_error = NULL;
  299. int sqlite_error = sqlite3_exec(m_psqlite3, strInsert.c_str(), NULL, 0, &psqlite_error);
  300. if(SQLITE_OK != sqlite_error)
  301. {
  302. //Global::WriteTextLog(_T("InsertContactsType:%s"), psqlite_error);
  303. return FALSE;
  304. }
  305. return TRUE;
  306. }
  307. BOOL CDataImpl::InsertContactsInfo(IN LPCSTR lpContactsType, IN LPCSTR lpContactsName, IN LPCSTR lpContactsPhone, IN LPCSTR lpContactsStatus)
  308. {
  309. if ( lpContactsName == NULL || lpContactsName[0] == '\0' ||
  310. lpContactsPhone == NULL || lpContactsPhone[0] == '\0' ||
  311. lpContactsStatus == NULL || lpContactsStatus[0] == '\0' )
  312. {
  313. //Global::WriteTextLog(_T("InsertContactsInfo:变量空!"));
  314. return FALSE;
  315. }
  316. if(m_psqlite3 == NULL)
  317. return FALSE;
  318. std::string strInsert = "INSERT INTO ContactsInfo(ContactsType,ContactsName,ContactsPhone,ContactsStatus) VALUES ('";
  319. #ifndef USE_UTF8
  320. strInsert.append(lpContactsType);
  321. strInsert.append("','");
  322. strInsert.append(lpContactsName);
  323. strInsert.append("','");
  324. strInsert.append(lpContactsPhone);
  325. strInsert.append("','");
  326. strInsert.append(lpContactsStatus);
  327. strInsert.append("');");
  328. #else
  329. string str;
  330. CharEncoding::ASCII2UTF8(lpContactsType,str);
  331. strInsert.append(str);
  332. strInsert.append("','");
  333. CharEncoding::ASCII2UTF8(lpContactsName,str);
  334. strInsert.append(str);
  335. strInsert.append("','");
  336. CharEncoding::ASCII2UTF8(lpContactsPhone,str);
  337. strInsert.append(str);
  338. strInsert.append("','");
  339. CharEncoding::ASCII2UTF8(lpContactsStatus,str);
  340. strInsert.append(str);
  341. strInsert.append("');");
  342. #endif
  343. char* psqlite_error = NULL;
  344. int sqlite_error = sqlite3_exec(m_psqlite3, strInsert.c_str(), NULL, 0, &psqlite_error);
  345. if(SQLITE_OK != sqlite_error)
  346. {
  347. //Global::WriteTextLog(_T("InsertContactsInfo:%s"), psqlite_error);
  348. return FALSE;
  349. }
  350. return TRUE;
  351. }
  352. BOOL CDataImpl::InsertTaskInfo(IN LPCSTR lpTirrgerCycle, IN LPCSTR lpTirrgerTime, IN LPCSTR lpTaskPhone, IN LPCSTR lpTaskContent, IN LPCSTR lpExecDate, IN LPCSTR lpTaskStatus)
  353. {
  354. if ( lpTirrgerTime == NULL || lpTirrgerTime[0] == '\0' ||
  355. lpTirrgerCycle == NULL || lpTirrgerCycle[0] == '\0' ||
  356. lpTaskPhone == NULL || lpTaskPhone[0] == '\0' ||
  357. lpTaskContent == NULL || lpTaskContent[0] == '\0' ||
  358. lpTaskStatus == NULL || lpTaskStatus[0] == '\0'
  359. )
  360. {
  361. //Global::WriteTextLog(_T("InsertTaskInfo:变量空!"));
  362. return FALSE;
  363. }
  364. if(m_psqlite3 == NULL)
  365. return FALSE;
  366. std::string strInsert = "INSERT INTO TaskInfo(TirrgerCycle,TirrgerTime,TaskPhone,TaskContent,ExecDate,TaskStatus) VALUES (";
  367. #ifndef USE_UTF8
  368. strInsert.append(lpTirrgerCycle);
  369. strInsert.append(",'");
  370. strInsert.append(lpTirrgerTime);
  371. strInsert.append("','");
  372. strInsert.append(lpTaskPhone);
  373. strInsert.append("','");
  374. strInsert.append(lpTaskContent);
  375. strInsert.append("','");
  376. strInsert.append(lpExecDate);
  377. strInsert.append("','");
  378. strInsert.append(lpTaskStatus);
  379. strInsert.append("');");
  380. #else
  381. string str;
  382. CharEncoding::ASCII2UTF8(lpTirrgerCycle,str);
  383. strInsert.append(str);
  384. strInsert.append(",'");
  385. CharEncoding::ASCII2UTF8(lpTirrgerTime,str);
  386. strInsert.append(str);
  387. strInsert.append("','");
  388. CharEncoding::ASCII2UTF8(lpTaskPhone,str);
  389. strInsert.append(str);
  390. strInsert.append("','");
  391. CharEncoding::ASCII2UTF8(lpTaskContent,str);
  392. strInsert.append(str);
  393. strInsert.append("','");
  394. CharEncoding::ASCII2UTF8(lpExecDate,str);
  395. strInsert.append(str);
  396. strInsert.append("','");
  397. CharEncoding::ASCII2UTF8(lpTaskStatus,str);
  398. strInsert.append(str);
  399. strInsert.append("');");
  400. #endif
  401. char* psqlite_error = NULL;
  402. int sqlite_error = sqlite3_exec(m_psqlite3, strInsert.c_str(), NULL, 0, &psqlite_error);
  403. if(SQLITE_OK != sqlite_error)
  404. {
  405. //Global::WriteTextLog(_T("InsertTaskInfo:%s"), psqlite_error);
  406. return FALSE;
  407. }
  408. return TRUE;
  409. }
  410. BOOL CDataImpl::InsertSendRecord(IN LPCSTR lpSendType, IN LPCSTR lpSendId, IN LPCSTR lpSendDateTime, IN LPCSTR lpSendPhone, IN LPCSTR lpSendContent, IN LPCSTR lpSendStatus, IN LPCSTR lpSendLog)
  411. {
  412. if (lpSendDateTime == NULL || lpSendDateTime[0] == '\0' ||
  413. lpSendPhone == NULL || lpSendPhone[0] == '\0' ||
  414. lpSendContent == NULL || lpSendContent[0] == '\0' ||
  415. lpSendStatus == NULL || lpSendStatus[0] == '\0'
  416. )
  417. {
  418. //Global::WriteTextLog(_T("InsertSendRecord:变量空!"));
  419. return FALSE;
  420. }
  421. if(m_psqlite3 == NULL)
  422. return FALSE;
  423. std::string strInsert = "INSERT INTO SendRecord(SendType,SendId,SendDateTime,SendPhone,SendContent,SendStatus,SendLog) VALUES ('";
  424. #ifndef USE_UTF8
  425. strInsert.append(lpSendType);
  426. strInsert.append("','");
  427. strInsert.append(lpSendId);
  428. strInsert.append("','");
  429. strInsert.append(lpSendDateTime);
  430. strInsert.append("','");
  431. strInsert.append(lpSendPhone);
  432. strInsert.append("','");
  433. strInsert.append(lpSendContent);
  434. strInsert.append("',");
  435. strInsert.append(lpSendStatus);
  436. strInsert.append(",'");
  437. strInsert.append(lpSendLog);
  438. strInsert.append("');");
  439. #else
  440. string str;
  441. CharEncoding::ASCII2UTF8(lpSendType,str);
  442. strInsert.append(str);
  443. strInsert.append("','");
  444. CharEncoding::ASCII2UTF8(lpSendId,str);
  445. strInsert.append(str);
  446. strInsert.append("','");
  447. CharEncoding::ASCII2UTF8(lpSendDateTime,str);
  448. strInsert.append(str);
  449. strInsert.append("','");
  450. CharEncoding::ASCII2UTF8(lpSendPhone,str);
  451. strInsert.append(str);
  452. strInsert.append("','");
  453. CharEncoding::ASCII2UTF8(lpSendContent,str);
  454. strInsert.append(str);
  455. strInsert.append("',");
  456. CharEncoding::ASCII2UTF8(lpSendStatus,str);
  457. strInsert.append(str);
  458. strInsert.append(",'");
  459. CharEncoding::ASCII2UTF8(lpSendLog,str);
  460. strInsert.append(str);
  461. strInsert.append("');");
  462. #endif
  463. char* psqlite_error = NULL;
  464. int sqlite_error = sqlite3_exec(m_psqlite3, strInsert.c_str(), NULL, 0, &psqlite_error);
  465. if(SQLITE_OK != sqlite_error)
  466. {
  467. //Global::WriteTextLog(_T("InsertSendRecord:%s"), psqlite_error);
  468. return FALSE;
  469. }
  470. return TRUE;
  471. }
  472. BOOL CDataImpl::UpdateContactsType(IN LPCSTR lpAutoid, IN LPCSTR lpContactsType)
  473. {
  474. if ( lpAutoid == NULL || lpAutoid[0] == '\0' ||
  475. lpContactsType == NULL || lpContactsType[0] == '\0')
  476. {
  477. //Global::WriteTextLog(_T("UpdateContactsType:变量空!"));
  478. return FALSE;
  479. }
  480. if(m_psqlite3 == NULL)
  481. return FALSE;
  482. std::string strInsert = "UPDATE ContactsType SET ContactsType = '";
  483. #ifndef USE_UTF8
  484. strInsert.append(lpContactsType);
  485. strInsert.append("' WHERE Autoid = ");
  486. strInsert.append(lpAutoid);
  487. strInsert.append(";");
  488. #else
  489. string str;
  490. CharEncoding::ASCII2UTF8(lpContactsType,str);
  491. strInsert.append(str);
  492. strInsert.append("' WHERE Autoid = ");
  493. strInsert.append(lpAutoid);
  494. strInsert.append(";");
  495. #endif
  496. char* psqlite_error = NULL;
  497. int sqlite_error = sqlite3_exec(m_psqlite3, strInsert.c_str(), NULL, 0, &psqlite_error);
  498. if(SQLITE_OK != sqlite_error)
  499. {
  500. //Global::WriteTextLog(_T("UpdateContactsType:%s"), psqlite_error);
  501. return FALSE;
  502. }
  503. return TRUE;
  504. }
  505. BOOL CDataImpl::UpdateContactsInfo(IN LPCSTR lpAutoid, IN LPCSTR lpContactsType, IN LPCSTR lpContactsName, IN LPCSTR lpContactsPhone, IN LPCSTR lpContactsStatus)
  506. {
  507. if (lpAutoid == NULL || lpAutoid[0] == '\0' ||
  508. lpContactsName == NULL || lpContactsName[0] == '\0' ||
  509. lpContactsPhone == NULL || lpContactsPhone[0] == '\0' ||
  510. lpContactsStatus == NULL || lpContactsStatus[0] == '\0' )
  511. {
  512. //Global::WriteTextLog(_T("UpdateContactsInfo:变量空!"));
  513. return FALSE;
  514. }
  515. if(m_psqlite3 == NULL)
  516. return FALSE;
  517. std::string strInsert = "UPDATE ContactsInfo SET ContactsType = '";
  518. #ifndef USE_UTF8
  519. strInsert.append(lpContactsType);
  520. strInsert.append("', ContactsName = '");
  521. strInsert.append(lpContactsName);
  522. strInsert.append("', ContactsPhone = '");
  523. strInsert.append(lpContactsPhone);
  524. strInsert.append("', ContactsStatus = '");
  525. strInsert.append(lpContactsStatus);
  526. strInsert.append("' WHERE Autoid = ");
  527. strInsert.append(lpAutoid);
  528. strInsert.append(";");
  529. #else
  530. string str;
  531. CharEncoding::ASCII2UTF8(lpContactsType,str);
  532. strInsert.append(str);
  533. strInsert.append("', ContactsName = '");
  534. CharEncoding::ASCII2UTF8(lpContactsName,str);
  535. strInsert.append(str);
  536. strInsert.append("', ContactsPhone = '");
  537. CharEncoding::ASCII2UTF8(lpContactsPhone,str);
  538. strInsert.append(str);
  539. strInsert.append("', ContactsStatus = '");
  540. CharEncoding::ASCII2UTF8(lpContactsStatus, str);
  541. strInsert.append(str);
  542. strInsert.append("' WHERE Autoid = ");
  543. strInsert.append(lpAutoid);
  544. strInsert.append(";");
  545. #endif
  546. char* psqlite_error = NULL;
  547. int sqlite_error = sqlite3_exec(m_psqlite3, strInsert.c_str(), NULL, 0, &psqlite_error);
  548. if(SQLITE_OK != sqlite_error)
  549. {
  550. //Global::WriteTextLog(_T("UpdateContactsInfo:%s"), psqlite_error);
  551. return FALSE;
  552. }
  553. return TRUE;
  554. }
  555. BOOL CDataImpl::UpdateTaskInfo(IN LPCSTR lpTirrgerCycle, IN LPCSTR lpTirrgerTime, IN LPCSTR lpTaskPhone, IN LPCSTR lpTaskContent, IN LPCSTR lpExecDate)
  556. {
  557. if (lpTirrgerCycle == NULL || lpTirrgerCycle[0] == '\0' ||
  558. lpTirrgerTime == NULL || lpTirrgerTime[0] == '\0' ||
  559. lpTaskPhone == NULL || lpTaskPhone[0] == '\0' ||
  560. lpTaskContent == NULL || lpTaskContent[0] == '\0' ||
  561. lpExecDate == NULL || lpExecDate[0] == '\0'
  562. )
  563. {
  564. //Global::WriteTextLog(_T("UpdateTaskInfo:变量空!"));
  565. return FALSE;
  566. }
  567. if(m_psqlite3 == NULL)
  568. return FALSE;
  569. std::string strInsert = "UPDATE TaskInfo SET ExecDate = '";
  570. #ifndef USE_UTF8
  571. strInsert.append(lpExecDate);
  572. strInsert.append("' WHERE TirrgerTime = '");
  573. strInsert.append(lpTirrgerTime);
  574. strInsert.append("' and TirrgerCycle = ");
  575. strInsert.append(lpTirrgerCycle);
  576. strInsert.append(" and TaskPhone = '");
  577. strInsert.append(lpTaskPhone);
  578. strInsert.append("' and TaskContent = '");
  579. strInsert.append(lpTaskContent);
  580. strInsert.append("';");
  581. #else
  582. string str;
  583. CharEncoding::ASCII2UTF8(lpExecDate,str);
  584. strInsert.append(str);
  585. strInsert.append("' where TirrgerTime = '");
  586. CharEncoding::ASCII2UTF8(lpTirrgerTime,str);
  587. strInsert.append(str);
  588. strInsert.append("' and TirrgerCycle = ");
  589. CharEncoding::ASCII2UTF8(lpTirrgerCycle,str);
  590. strInsert.append(str);
  591. strInsert.append(" and TaskPhone = '");
  592. CharEncoding::ASCII2UTF8(lpTaskPhone,str);
  593. strInsert.append(str);
  594. strInsert.append("' and TaskContent = '");
  595. CharEncoding::ASCII2UTF8(lpTaskContent,str);
  596. strInsert.append(str);
  597. strInsert.append("';");
  598. #endif
  599. char* psqlite_error = NULL;
  600. int sqlite_error = sqlite3_exec(m_psqlite3, strInsert.c_str(), NULL, 0, &psqlite_error);
  601. if(SQLITE_OK != sqlite_error)
  602. {
  603. //Global::WriteTextLog(_T("UpdateTaskInfo:%s"), psqlite_error);
  604. return FALSE;
  605. }
  606. return TRUE;
  607. }
  608. BOOL CDataImpl::UpdateTaskInfo(IN LPCSTR lpAutoid, IN LPCSTR lpTirrgerCycle, IN LPCSTR lpTirrgerTime, IN LPCSTR lpTaskPhone, IN LPCSTR lpTaskContent, IN LPCSTR lpExecDate, IN LPCSTR lpTaskStatus)
  609. {
  610. if (lpAutoid == NULL || lpAutoid[0] == '\0' ||
  611. lpTirrgerTime == NULL || lpTirrgerTime[0] == '\0' ||
  612. lpTirrgerCycle == NULL || lpTirrgerCycle[0] == '\0' ||
  613. lpTaskPhone == NULL || lpTaskPhone[0] == '\0' ||
  614. lpTaskContent == NULL || lpTaskContent[0] == '\0' ||
  615. lpTaskStatus == NULL || lpTaskStatus[0] == '\0'
  616. )
  617. {
  618. //Global::WriteTextLog(_T("UpdateTaskInfo:变量空!"));
  619. return FALSE;
  620. }
  621. if(m_psqlite3 == NULL)
  622. return FALSE;
  623. std::string strInsert = "UPDATE TaskInfo SET TirrgerTime = '";
  624. #ifndef USE_UTF8
  625. strInsert.append(lpTirrgerTime);
  626. strInsert.append("', TirrgerCycle = ");
  627. strInsert.append(lpTirrgerCycle);
  628. strInsert.append(", TaskPhone = '");
  629. strInsert.append(lpTaskPhone);
  630. strInsert.append("', TaskContent = '");
  631. strInsert.append(lpTaskContent);
  632. strInsert.append("', ExecDate = '");
  633. strInsert.append(lpExecDate);
  634. strInsert.append("', TaskStatus = '");
  635. strInsert.append(lpTaskStatus);
  636. strInsert.append("' WHERE Autoid = ");
  637. strInsert.append(lpAutoid);
  638. strInsert.append(";");
  639. #else
  640. string str;
  641. CharEncoding::ASCII2UTF8(lpTirrgerTime,str);
  642. strInsert.append(str);
  643. strInsert.append("', TirrgerCycle = ");
  644. CharEncoding::ASCII2UTF8(lpTirrgerCycle,str);
  645. strInsert.append(str);
  646. strInsert.append(", TaskPhone = '");
  647. CharEncoding::ASCII2UTF8(lpTaskPhone,str);
  648. strInsert.append(str);
  649. strInsert.append("', TaskContent = '");
  650. CharEncoding::ASCII2UTF8(lpTaskContent,str);
  651. strInsert.append(str);
  652. strInsert.append("', ExecDate = '");
  653. CharEncoding::ASCII2UTF8(lpExecDate,str);
  654. strInsert.append(str);
  655. strInsert.append("', TaskStatus = '");
  656. CharEncoding::ASCII2UTF8(lpTaskStatus, str);
  657. strInsert.append(str);
  658. strInsert.append("' WHERE Autoid = ");
  659. strInsert.append(lpAutoid);
  660. strInsert.append(";");
  661. #endif
  662. char* psqlite_error = NULL;
  663. int sqlite_error = sqlite3_exec(m_psqlite3, strInsert.c_str(), NULL, 0, &psqlite_error);
  664. if(SQLITE_OK != sqlite_error)
  665. {
  666. //Global::WriteTextLog(_T("UpdateTaskInfo:%s"), psqlite_error);
  667. return FALSE;
  668. }
  669. return TRUE;
  670. }
  671. BOOL CDataImpl::UpdateSendRecord( IN LPCSTR lpSendId, IN LPCSTR lpSendStatus, IN LPCSTR lpSendLog)
  672. {
  673. if (lpSendId == NULL || lpSendId[0] == '\0' ||
  674. lpSendStatus == NULL || lpSendStatus[0] == '\0' ||
  675. lpSendLog == NULL || lpSendLog[0] == '\0'
  676. )
  677. {
  678. //Global::WriteTextLog(_T("UpdateSendRecord:变量空!"));
  679. return FALSE;
  680. }
  681. if(m_psqlite3 == NULL)
  682. return FALSE;
  683. std::string strInsert = "UPDATE SendRecord SET SendStatus = ";
  684. #ifndef USE_UTF8
  685. strInsert.append(lpSendStatus);
  686. strInsert.append(",SendLog = '");
  687. strInsert.append(lpSendLog);
  688. strInsert.append("' WHERE SendId = '");
  689. strInsert.append(lpSendId);
  690. strInsert.append("';");
  691. #else
  692. string str;
  693. strInsert.append(lpSendStatus);
  694. strInsert.append(",SendLog = '");
  695. CharEncoding::ASCII2UTF8(lpSendLog,str);
  696. strInsert.append(str);
  697. strInsert.append("' WHERE SendId = '");
  698. strInsert.append(lpSendId);
  699. strInsert.append("';");
  700. #endif
  701. char* psqlite_error = NULL;
  702. int sqlite_error = sqlite3_exec(m_psqlite3, strInsert.c_str(), NULL, 0, &psqlite_error);
  703. if(SQLITE_OK != sqlite_error)
  704. {
  705. //Global::WriteTextLog(_T("UpdateSendRecord:%s"), psqlite_error);
  706. return FALSE;
  707. }
  708. return TRUE;
  709. }
  710. BOOL CDataImpl::UpdateSendRecord(IN LPCSTR lpAutoid, IN LPCSTR lpSendId, IN LPCSTR lpSendDateTime, IN LPCSTR lpSendPhone, IN LPCSTR lpSendContent, IN LPCSTR lpSendStatus, IN LPCSTR lpSendLog)
  711. {
  712. if (lpAutoid == NULL || lpAutoid[0] == '\0' ||
  713. lpSendDateTime == NULL || lpSendDateTime[0] == '\0' ||
  714. lpSendPhone == NULL || lpSendPhone[0] == '\0' ||
  715. lpSendContent == NULL || lpSendContent[0] == '\0' ||
  716. lpSendStatus == NULL || lpSendStatus[0] == '\0'
  717. )
  718. {
  719. //Global::WriteTextLog(_T("UpdateSendRecord:变量空!"));
  720. return FALSE;
  721. }
  722. if(m_psqlite3 == NULL)
  723. return FALSE;
  724. std::string strInsert = "UPDATE SendRecord SET SendId = '";
  725. #ifndef USE_UTF8
  726. strInsert.append(lpSendId);
  727. strInsert.append("',SendDateTime = '");
  728. strInsert.append(lpSendDateTime);
  729. strInsert.append("',SendPhone = '");
  730. strInsert.append(lpSendPhone);
  731. strInsert.append("',SendContent = '");
  732. strInsert.append(lpSendContent);
  733. strInsert.append("', SendStatus = ");
  734. strInsert.append(lpSendStatus);
  735. strInsert.append(",SendLog = '");
  736. strInsert.append(lpSendLog);
  737. strInsert.append("' WHERE Autoid = ");
  738. strInsert.append(lpAutoid);
  739. strInsert.append(";");
  740. #else
  741. string str;
  742. CharEncoding::ASCII2UTF8(lpSendId,str);
  743. strInsert.append(str);
  744. strInsert.append("',SendDateTime = '");
  745. CharEncoding::ASCII2UTF8(lpSendDateTime,str);
  746. strInsert.append(str);
  747. strInsert.append("',SendPhone = '");
  748. CharEncoding::ASCII2UTF8(lpSendPhone,str);
  749. strInsert.append(str);
  750. strInsert.append("',SendContent = '");
  751. CharEncoding::ASCII2UTF8(lpSendContent,str);
  752. strInsert.append(str);
  753. strInsert.append("', SendStatus = ");
  754. strInsert.append(lpSendStatus);
  755. strInsert.append(",SendLog = '");
  756. CharEncoding::ASCII2UTF8(lpSendLog,str);
  757. strInsert.append(str);
  758. strInsert.append("' WHERE Autoid = ");
  759. strInsert.append(lpAutoid);
  760. strInsert.append(";");
  761. #endif
  762. char* psqlite_error = NULL;
  763. int sqlite_error = sqlite3_exec(m_psqlite3, strInsert.c_str(), NULL, 0, &psqlite_error);
  764. if(SQLITE_OK != sqlite_error)
  765. {
  766. //Global::WriteTextLog(_T("UpdateSendRecord:%s"), psqlite_error);
  767. return FALSE;
  768. }
  769. return TRUE;
  770. }
  771. BOOL CDataImpl::ClearnTaskStatus(IN LPCSTR lpAutoid)
  772. {
  773. if (lpAutoid == NULL || lpAutoid[0] == '\0' )
  774. {
  775. //Global::WriteTextLog(_T("ClearnTaskStatus:变量空!"));
  776. return FALSE;
  777. }
  778. if (m_psqlite3 == NULL)
  779. return FALSE;
  780. std::string strInsert = "UPDATE TaskInfo SET ExecDate = ''";
  781. strInsert.append(" WHERE Autoid = ");
  782. strInsert.append(lpAutoid);
  783. strInsert.append(";");
  784. char* psqlite_error = NULL;
  785. int sqlite_error = sqlite3_exec(m_psqlite3, strInsert.c_str(), NULL, 0, &psqlite_error);
  786. if (SQLITE_OK != sqlite_error)
  787. {
  788. //Global::WriteTextLog(_T("ClearnTaskStatus:%s"), psqlite_error);
  789. return FALSE;
  790. }
  791. return TRUE;
  792. }