test.cpp 17 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477
  1. #include "pch.h"
  2. #include "test.h"
  3. #include "Database.h"
  4. // 示例;
  5. void test(MYSQL* mysql)
  6. {
  7. #define STRING_SIZE 50
  8. #define SELECT_SAMPLE "SELECT col1, col2, col3, col4 \
  9. FROM test_table"
  10. MYSQL_STMT* stmt;
  11. MYSQL_BIND bind[4];
  12. MYSQL_RES* prepare_meta_result;
  13. MYSQL_TIME ts;
  14. unsigned long length[4];
  15. int param_count, column_count, row_count;
  16. short small_data;
  17. int int_data;
  18. char str_data[STRING_SIZE];
  19. my_bool is_null[4];
  20. my_bool error[4];
  21. /* Prepare a SELECT query to fetch data from test_table */
  22. stmt = mysql_stmt_init(mysql);
  23. if (!stmt)
  24. {
  25. fprintf(stderr, " mysql_stmt_init(), out of memory\n");
  26. exit(0);
  27. }
  28. if (mysql_stmt_prepare(stmt, SELECT_SAMPLE, strlen(SELECT_SAMPLE)))
  29. {
  30. fprintf(stderr, " mysql_stmt_prepare(), SELECT failed\n");
  31. fprintf(stderr, " %s\n", mysql_stmt_error(stmt));
  32. exit(0);
  33. }
  34. fprintf(stdout, " prepare, SELECT successful\n");
  35. /* Get the parameter count from the statement */
  36. param_count = mysql_stmt_param_count(stmt);
  37. fprintf(stdout, " total parameters in SELECT: %d\n", param_count);
  38. if (param_count != 0) /* validate parameter count */
  39. {
  40. fprintf(stderr, " invalid parameter count returned by MySQL\n");
  41. exit(0);
  42. }
  43. /* Execute the SELECT query */
  44. if (mysql_stmt_execute(stmt))
  45. {
  46. fprintf(stderr, " mysql_stmt_execute(), failed\n");
  47. fprintf(stderr, " %s\n", mysql_stmt_error(stmt));
  48. exit(0);
  49. }
  50. /* Fetch result set meta information */
  51. prepare_meta_result = mysql_stmt_result_metadata(stmt);
  52. if (!prepare_meta_result)
  53. {
  54. fprintf(stderr,
  55. " mysql_stmt_result_metadata(), \
  56. returned no meta information\n");
  57. fprintf(stderr, " %s\n", mysql_stmt_error(stmt));
  58. exit(0);
  59. }
  60. /* Get total columns in the query */
  61. column_count = mysql_num_fields(prepare_meta_result);
  62. fprintf(stdout,
  63. " total columns in SELECT statement: %d\n",
  64. column_count);
  65. if (column_count != 4) /* validate column count */
  66. {
  67. fprintf(stderr, " invalid column count returned by MySQL\n");
  68. exit(0);
  69. }
  70. /* Bind the result buffers for all 4 columns before fetching them */
  71. memset(bind, 0, sizeof(bind));
  72. /* INTEGER COLUMN */
  73. bind[0].buffer_type = MYSQL_TYPE_LONG;
  74. bind[0].buffer = (char*)&int_data;
  75. bind[0].is_null = &is_null[0];
  76. bind[0].length = &length[0];
  77. bind[0].error = &error[0];
  78. /* STRING COLUMN */
  79. bind[1].buffer_type = MYSQL_TYPE_STRING;
  80. bind[1].buffer = (char*)str_data;
  81. bind[1].buffer_length = STRING_SIZE;
  82. bind[1].is_null = &is_null[1];
  83. bind[1].length = &length[1];
  84. bind[1].error = &error[1];
  85. /* SMALLINT COLUMN */
  86. bind[2].buffer_type = MYSQL_TYPE_SHORT;
  87. bind[2].buffer = (char*)&small_data;
  88. bind[2].is_null = &is_null[2];
  89. bind[2].length = &length[2];
  90. bind[2].error = &error[2];
  91. /* TIMESTAMP COLUMN */
  92. bind[3].buffer_type = MYSQL_TYPE_TIMESTAMP;
  93. bind[3].buffer = (char*)&ts;
  94. bind[3].is_null = &is_null[3];
  95. bind[3].length = &length[3];
  96. bind[3].error = &error[3];
  97. /* Bind the result buffers */
  98. if (mysql_stmt_bind_result(stmt, bind))
  99. {
  100. fprintf(stderr, " mysql_stmt_bind_result() failed\n");
  101. fprintf(stderr, " %s\n", mysql_stmt_error(stmt));
  102. exit(0);
  103. }
  104. /* Now buffer all results to client (optional step) */
  105. if (mysql_stmt_store_result(stmt))
  106. {
  107. fprintf(stderr, " mysql_stmt_store_result() failed\n");
  108. fprintf(stderr, " %s\n", mysql_stmt_error(stmt));
  109. exit(0);
  110. }
  111. /* Fetch all rows */
  112. row_count = 0;
  113. fprintf(stdout, "Fetching results ...\n");
  114. while (!mysql_stmt_fetch(stmt))
  115. {
  116. row_count++;
  117. fprintf(stdout, " row %d\n", row_count);
  118. /* column 1 */
  119. fprintf(stdout, " column1 (integer) : ");
  120. if (is_null[0])
  121. fprintf(stdout, " NULL\n");
  122. else
  123. fprintf(stdout, " %d(%ld)\n", int_data, length[0]);
  124. /* column 2 */
  125. fprintf(stdout, " column2 (string) : ");
  126. if (is_null[1])
  127. fprintf(stdout, " NULL\n");
  128. else
  129. fprintf(stdout, " %s(%ld)\n", str_data, length[1]);
  130. /* column 3 */
  131. fprintf(stdout, " column3 (smallint) : ");
  132. if (is_null[2])
  133. fprintf(stdout, " NULL\n");
  134. else
  135. fprintf(stdout, " %d(%ld)\n", small_data, length[2]);
  136. /* column 4 */
  137. fprintf(stdout, " column4 (timestamp): ");
  138. if (is_null[3])
  139. fprintf(stdout, " NULL\n");
  140. else
  141. fprintf(stdout, " %04d-%02d-%02d %02d:%02d:%02d (%ld)\n",
  142. ts.year, ts.month, ts.day,
  143. ts.hour, ts.minute, ts.second,
  144. length[3]);
  145. fprintf(stdout, "\n");
  146. }
  147. /* Validate rows fetched */
  148. fprintf(stdout, " total rows fetched: %d\n", row_count);
  149. if (row_count != 2)
  150. {
  151. fprintf(stderr, " MySQL failed to return all rows\n");
  152. exit(0);
  153. }
  154. /* Free the prepared result metadata */
  155. mysql_free_result(prepare_meta_result);
  156. /* Close the statement */
  157. if (mysql_stmt_close(stmt))
  158. {
  159. /* mysql_stmt_close() invalidates stmt, so call */
  160. /* mysql_error(mysql) rather than mysql_stmt_error(stmt) */
  161. fprintf(stderr, " failed while closing the statement\n");
  162. fprintf(stderr, " %s\n", mysql_error(mysql));
  163. exit(0);
  164. }
  165. }
  166. void TestCase_Soc()
  167. {
  168. if (CDatabase::GetInstance()->Init(Global::g_szDBAddress, Global::g_szDBAccount, Global::g_szDBPassword, Global::g_szDBName))
  169. {
  170. // 新增Soc;
  171. CDatabase::GetInstance()->InserSoc(_T("RT2851J"), _T("RealTealk"), _T("RTK台湾"));
  172. CDatabase::GetInstance()->InserSoc(_T("RT2841"), _T("RealTealk"), _T("RTK台湾"));
  173. CDatabase::GetInstance()->InserSoc(_T("RT2851"), _T("RealTealk"), _T("RTK台湾"));
  174. CDatabase::GetInstance()->InserSoc(_T("RT2841A"), _T("RealTealk"), _T("RTK台湾"));
  175. CDatabase::GetInstance()->InserSoc(_T("RT2851M"), _T("RealTealk"), _T("RTK台湾"));
  176. CDatabase::GetInstance()->InserSoc(_T("RT2851M-JP"), _T("RealTealk"), _T("RTK台湾"));
  177. Sleep(1000);
  178. // 查询、更新Soc;
  179. std::vector<STSOC> vtSOC;
  180. CDatabase::GetInstance()->QuerySoc(vtSOC);
  181. for (std::vector<STSOC>::iterator it = vtSOC.begin(); it != vtSOC.end(); it++) {
  182. _dprintf(_T("name=%s, provider=%s, note=%s\n"), it->name.c_str(), it->provider.c_str(), it->note.c_str());
  183. it->note = it->name;
  184. CDatabase::GetInstance()->UpdateSoc(it->name, *it);
  185. }
  186. Sleep(1000);
  187. // 删除Soc;
  188. CDatabase::GetInstance()->DeleteSoc(_T("RT2851J"));
  189. CDatabase::GetInstance()->DeleteSoc(_T("RT2841"));
  190. CDatabase::GetInstance()->DeleteSoc(_T("RT2851"));
  191. CDatabase::GetInstance()->DeleteSoc(_T("RT2841A"));
  192. CDatabase::GetInstance()->DeleteSoc(_T("RT2851M"));
  193. CDatabase::GetInstance()->DeleteSoc(_T("RT2851M-JP"));
  194. }
  195. }
  196. void TestCase_Brand()
  197. {
  198. if (!CDatabase::GetInstance()->IsOpen())
  199. return;
  200. // 新增品牌-有些品牌有多种规格的Logo, 如不同分辨率,不同存储格式,这种情况属于后续的开发扩展;
  201. CDatabase::GetInstance()->InsertBrand(_T("SCBC"), _T(""), _T(""), _T(""), _T("SCBC"));
  202. CDatabase::GetInstance()->ImportBrandLogo(_T("SCBC"), _T("D:\\logo\\r1\\micromax.jpg"));
  203. CDatabase::GetInstance()->InsertBrand(_T("MICROMAX"), _T(""));
  204. CDatabase::GetInstance()->ImportBrandLogo(_T("MICROMAX"), _T("D:\\logo\\r1\\micromax.jpg"));
  205. CDatabase::GetInstance()->InsertBrand(_T("ARTEL"), _T(""));
  206. CDatabase::GetInstance()->ImportBrandLogo(_T("ARTEL"), _T("D:\\logo\\r1\\artel.jpg"));
  207. CDatabase::GetInstance()->InsertBrand(_T("PANASONIC"), _T(""));
  208. CDatabase::GetInstance()->ImportBrandLogo(_T("PANASONIC"), _T("D:\\logo\\r1\\PANASONIC.jpg"));
  209. CDatabase::GetInstance()->InsertBrand(_T("THOMSON"), _T(""));
  210. CDatabase::GetInstance()->ImportBrandLogo(_T("THOMSON"), _T("D:\\logo\\r1\\THOMSON.jpg"));
  211. CDatabase::GetInstance()->InsertBrand(_T("SANYO"), _T(""));
  212. CDatabase::GetInstance()->ImportBrandLogo(_T("SANYO"), _T("D:\\logo\\r1\\SANYO.jpg"));
  213. CDatabase::GetInstance()->InsertBrand(_T("JVC"), _T(""));
  214. CDatabase::GetInstance()->ImportBrandLogo(_T("JVC"), _T("D:\\logo\\r1\\JVC.jpg"));
  215. CDatabase::GetInstance()->InsertBrand(_T("NOKIA"), _T(""));
  216. CDatabase::GetInstance()->ImportBrandLogo(_T("NOKIA"), _T("D:\\logo\\r1\\NOKIA.jpg"));
  217. CDatabase::GetInstance()->InsertBrand(_T("EAS-ELECTRIC"), _T(""));
  218. CDatabase::GetInstance()->ImportBrandLogo(_T("EAS-ELECTRIC"), _T("D:\\logo\\r1\\EAS-ELECTRIC.jpg"));
  219. CDatabase::GetInstance()->InsertBrand(_T("STRONG"), _T(""));
  220. CDatabase::GetInstance()->ImportBrandLogo(_T("STRONG"), _T("D:\\logo\\r1\\STRONG.jpg"));
  221. CDatabase::GetInstance()->InsertBrand(_T("LLOYD"), _T(""));
  222. CDatabase::GetInstance()->ImportBrandLogo(_T("LLOYD"), _T("D:\\logo\\r1\\LLOYD.jpg"));
  223. CDatabase::GetInstance()->InsertBrand(_T("CASPER"), _T(""));
  224. CDatabase::GetInstance()->ImportBrandLogo(_T("CASPER"), _T("D:\\logo\\r1\\CASPER.jpg"));
  225. CDatabase::GetInstance()->InsertBrand(_T("CONDOR"), _T(""));
  226. CDatabase::GetInstance()->ImportBrandLogo(_T("CONDOR"), _T("D:\\logo\\r1\\CONDOR.jpg"));
  227. CDatabase::GetInstance()->InsertBrand(_T("DENKA"), _T(""));
  228. CDatabase::GetInstance()->ImportBrandLogo(_T("DENKA"), _T("D:\\logo\\r1\\DENKA.jpg"));
  229. CDatabase::GetInstance()->InsertBrand(_T("ACONATIC"), _T(""));
  230. CDatabase::GetInstance()->ImportBrandLogo(_T("ACONATIC"), _T("D:\\logo\\r1\\ACONATIC.jpg"));
  231. CDatabase::GetInstance()->InsertBrand(_T("CG"), _T(""));
  232. CDatabase::GetInstance()->ImportBrandLogo(_T("CG"), _T("D:\\logo\\r1\\CG.jpg"));
  233. CDatabase::GetInstance()->InsertBrand(_T("ORIENT"), _T(""));
  234. CDatabase::GetInstance()->ImportBrandLogo(_T("ORIENT"), _T("D:\\logo\\r1\\ORIENT.jpg"));
  235. CDatabase::GetInstance()->InsertBrand(_T("KALLEY"), _T(""));
  236. CDatabase::GetInstance()->ImportBrandLogo(_T("KALLEY"), _T("D:\\logo\\r1\\KALLEY.jpg"));
  237. CDatabase::GetInstance()->InsertBrand(_T("EVVOLI"), _T(""));
  238. CDatabase::GetInstance()->ImportBrandLogo(_T("EVVOLI"), _T("D:\\logo\\r1\\EVVOLI.jpg"));
  239. CDatabase::GetInstance()->InsertBrand(_T("COMPAQ"), _T(""));
  240. CDatabase::GetInstance()->ImportBrandLogo(_T("COMPAQ"), _T("D:\\logo\\r1\\COMPAQ.jpg"));
  241. CDatabase::GetInstance()->InsertBrand(_T("VISION-TECHNOLOGY"), _T(""));
  242. CDatabase::GetInstance()->ImportBrandLogo(_T("VISION-TECHNOLOGY"), _T("D:\\logo\\r1\\VISION.jpg"));
  243. CDatabase::GetInstance()->InsertBrand(_T("SINGER"), _T(""));
  244. CDatabase::GetInstance()->ImportBrandLogo(_T("SINGER"), _T("D:\\logo\\r1\\SINGER.jpg"));
  245. CDatabase::GetInstance()->InsertBrand(_T("HYUNDAI"), _T(""));
  246. CDatabase::GetInstance()->ImportBrandLogo(_T("HYUNDAI"), _T("D:\\logo\\r1\\HYUNDAI.jpg"));
  247. CDatabase::GetInstance()->InsertBrand(_T("RECCO"), _T(""));
  248. CDatabase::GetInstance()->ImportBrandLogo(_T("RECCO"), _T("D:\\logo\\r1\\RECCO.jpg"));
  249. CDatabase::GetInstance()->InsertBrand(_T("AMSTRAD"), _T(""));
  250. CDatabase::GetInstance()->ImportBrandLogo(_T("AMSTRAD"), _T("D:\\logo\\r1\\AMSTRAD.jpg"));
  251. CDatabase::GetInstance()->InsertBrand(_T("HITACHI"), _T(""));
  252. CDatabase::GetInstance()->ImportBrandLogo(_T("HITACHI"), _T("D:\\logo\\r1\\HITACHI.jpg"));
  253. CDatabase::GetInstance()->InsertBrand(_T("ERITO"), _T(""));
  254. CDatabase::GetInstance()->ImportBrandLogo(_T("ERITO"), _T("D:\\logo\\r1\\ERITO.jpg"));
  255. CDatabase::GetInstance()->InsertBrand(_T("PIONEER"), _T(""));
  256. CDatabase::GetInstance()->ImportBrandLogo(_T("PIONEER"), _T("D:\\logo\\r1\\PIONEER.jpg"));
  257. CDatabase::GetInstance()->InsertBrand(_T("PEL"), _T(""));
  258. CDatabase::GetInstance()->ImportBrandLogo(_T("PEL"), _T("D:\\logo\\r1\\PEL.jpg"));
  259. CDatabase::GetInstance()->InsertBrand(_T("MINISTER"), _T(""));
  260. CDatabase::GetInstance()->ImportBrandLogo(_T("MINISTER"), _T("D:\\logo\\r1\\MINISTER.jpg"));
  261. CDatabase::GetInstance()->InsertBrand(_T("SCHNEIDER"), _T(""));
  262. CDatabase::GetInstance()->ImportBrandLogo(_T("SCHNEIDER"), _T("D:\\logo\\r1\\SCHNEIDER.jpg"));
  263. CDatabase::GetInstance()->InsertBrand(_T("INNOS"), _T(""));
  264. CDatabase::GetInstance()->ImportBrandLogo(_T("INNOS"), _T("D:\\logo\\r1\\INNOS.jpg"));
  265. CDatabase::GetInstance()->InsertBrand(_T("LUCOMS"), _T(""));
  266. CDatabase::GetInstance()->ImportBrandLogo(_T("LUCOMS"), _T("D:\\logo\\r1\\LUCOMS.jpg"));
  267. CDatabase::GetInstance()->InsertBrand(_T("XTREME"), _T(""));
  268. CDatabase::GetInstance()->ImportBrandLogo(_T("XTREME"), _T("D:\\logo\\r1\\XTREME.jpg"));
  269. CDatabase::GetInstance()->InsertBrand(_T("ALHAFIDH"), _T(""));
  270. CDatabase::GetInstance()->ImportBrandLogo(_T("ALHAFIDH"), _T("D:\\logo\\r1\\ALHAFIDH.jpg"));
  271. CDatabase::GetInstance()->InsertBrand(_T("ESSENTIELB"), _T(""));
  272. CDatabase::GetInstance()->ImportBrandLogo(_T("ESSENTIELB"), _T("D:\\logo\\r1\\ESSENTIELB.jpg"));
  273. CDatabase::GetInstance()->InsertBrand(_T("MASTER-G"), _T(""));
  274. CDatabase::GetInstance()->ImportBrandLogo(_T("MASTER-G"), _T("D:\\logo\\r1\\MASTER-G.jpg"));
  275. CDatabase::GetInstance()->InsertBrand(_T("KAPEK"), _T(""));
  276. CDatabase::GetInstance()->ImportBrandLogo(_T("KAPEK"), _T("D:\\logo\\r1\\KAPEK.jpg"));
  277. CDatabase::GetInstance()->InsertBrand(_T("BOTECH"), _T(""));
  278. CDatabase::GetInstance()->ImportBrandLogo(_T("BOTECH"), _T("D:\\logo\\r1\\BOTECH.jpg"));
  279. CDatabase::GetInstance()->InsertBrand(_T("HOME-ELITE"), _T(""));
  280. CDatabase::GetInstance()->ImportBrandLogo(_T("HOME-ELITE"), _T("D:\\logo\\r1\\HOME-ELITE.jpg"));
  281. CDatabase::GetInstance()->InsertBrand(_T("SAMPO"), _T(""));
  282. CDatabase::GetInstance()->ImportBrandLogo(_T("SAMPO"), _T("D:\\logo\\r1\\SAMPO.jpg"));
  283. CDatabase::GetInstance()->InsertBrand(_T("TESLA"), _T(""));
  284. CDatabase::GetInstance()->ImportBrandLogo(_T("TESLA"), _T("D:\\logo\\r1\\TESLA.jpg"));
  285. CDatabase::GetInstance()->InsertBrand(_T("STREAM-SYSTEM"), _T(""));
  286. CDatabase::GetInstance()->ImportBrandLogo(_T("STREAM-SYSTEM"), _T("D:\\logo\\r1\\STREAM-SYSTEM.jpg"));
  287. CDatabase::GetInstance()->InsertBrand(_T("ZTRUST"), _T(""));
  288. CDatabase::GetInstance()->ImportBrandLogo(_T("ZTRUST"), _T("D:\\logo\\r1\\ZTRUST.jpg"));
  289. CDatabase::GetInstance()->InsertBrand(_T("AIWA"), _T(""));
  290. CDatabase::GetInstance()->ImportBrandLogo(_T("AIWA"), _T("D:\\logo\\r1\\AIWA.jpg"));
  291. CDatabase::GetInstance()->InsertBrand(_T("BOREAL"), _T(""));
  292. CDatabase::GetInstance()->ImportBrandLogo(_T("BOREAL"), _T("D:\\logo\\r1\\BOREAL.jpg"));
  293. CDatabase::GetInstance()->InsertBrand(_T("MYSTIC"), _T(""));
  294. CDatabase::GetInstance()->ImportBrandLogo(_T("MYSTIC"), _T("D:\\logo\\r1\\MYSTIC.jpg"));
  295. CDatabase::GetInstance()->InsertBrand(_T("POLAROID"), _T(""));
  296. CDatabase::GetInstance()->ImportBrandLogo(_T("POLAROID"), _T("D:\\logo\\r1\\POLAROID.jpg"));
  297. CDatabase::GetInstance()->InsertBrand(_T("SCEPTER"), _T(""));
  298. CDatabase::GetInstance()->ImportBrandLogo(_T("SCEPTER"), _T("D:\\logo\\r1\\SCEPTER.jpg"));
  299. CDatabase::GetInstance()->InsertBrand(_T("BROOKSTONE"), _T(""));
  300. CDatabase::GetInstance()->ImportBrandLogo(_T("BROOKSTONE"), _T("D:\\logo\\r1\\BROOKSTONE.jpg"));
  301. CDatabase::GetInstance()->InsertBrand(_T("RAYLAN"), _T(""));
  302. CDatabase::GetInstance()->ImportBrandLogo(_T("RAYLAN"), _T("D:\\logo\\r1\\RAYLAN.jpg"));
  303. CDatabase::GetInstance()->InsertBrand(_T("PRIME-TECHNICS"), _T(""));
  304. CDatabase::GetInstance()->ImportBrandLogo(_T("PRIME-TECHNICS"), _T("D:\\logo\\r1\\PRIME-TECHNICS.jpg"));
  305. CDatabase::GetInstance()->InsertBrand(_T("CHALLENGER"), _T(""));
  306. CDatabase::GetInstance()->ImportBrandLogo(_T("CHALLENGER"), _T("D:\\logo\\r1\\CHALLENGER.jpg"));
  307. CDatabase::GetInstance()->InsertBrand(_T("TELEFUNKEN"), _T(""));
  308. CDatabase::GetInstance()->ImportBrandLogo(_T("TELEFUNKEN"), _T("D:\\logo\\r1\\TELEFUNKEN.jpg"));
  309. CDatabase::GetInstance()->InsertBrand(_T("THE-UHD"), _T(""));
  310. CDatabase::GetInstance()->ImportBrandLogo(_T("THE-UHD"), _T("D:\\logo\\r1\\THE-UHD.jpg"));
  311. // 查询品牌;
  312. TCHAR szValue[MAX_PATH] = { 0 };
  313. std::vector<STBrand> vtBrand;
  314. CDatabase::GetInstance()->QueryBrand(vtBrand);
  315. for (std::vector<STBrand>::iterator it = vtBrand.begin(); it != vtBrand.end(); it++)
  316. {
  317. _dprintf(_T("品牌:%s"), it->name.c_str());
  318. _stprintf_s(szValue, _T("D:\\brand\\logo\\%s.jpg"), it->name.c_str());
  319. // 导出logo;
  320. CDatabase::GetInstance()->ExportBrandLogo(it->name, szValue);
  321. }
  322. }
  323. void TestCase_User()
  324. {
  325. if (!CDatabase::GetInstance()->IsOpen())
  326. return;
  327. // 新增用户;
  328. CDatabase::GetInstance()->InsertUser(_T("admin"), _T("123456"), _T("0000-0000-0000-0000"));
  329. CDatabase::GetInstance()->InsertUser(_T("user"), _T("123456"), _T("0000-0000-0000-0000"));
  330. CDatabase::GetInstance()->InsertUser(_T("user1"), _T("123456"), _T("0000-0000-0000-0000"));
  331. CDatabase::GetInstance()->InsertUser(_T("user2"), _T("123456"), _T("0000-0000-0000-0000"));
  332. CDatabase::GetInstance()->InsertUser(_T("user3"), _T("123456"), _T("0000-0000-0000-0000"));
  333. // 查询用户;
  334. std::vector<STUser> vtUser;
  335. CDatabase::GetInstance()->QueryUser(vtUser);
  336. for (std::vector<STUser>::iterator it = vtUser.begin(); it != vtUser.end(); it++) {
  337. _dprintf(_T("用户名:%s,用户密码:%s,用户权限:%s\n"), it->user.c_str(), it->password.c_str(), it->permission.c_str());
  338. // 更新用户;
  339. it->password = _T("96321");
  340. it->permission = _T("1111-1111-1111-1111-1111-1111-1111-1111");
  341. CDatabase::GetInstance()->UpdateUser(it->user, *it);
  342. }
  343. // 删除用户;
  344. CDatabase::GetInstance()->DeleteUser("user");
  345. CDatabase::GetInstance()->DeleteUser("user1");
  346. CDatabase::GetInstance()->DeleteUser("user2");
  347. CDatabase::GetInstance()->DeleteUser("user3");
  348. }
  349. void DBTest()
  350. {
  351. if (CDatabase::GetInstance()->Init(Global::g_szDBAddress, Global::g_szDBAccount, Global::g_szDBPassword, Global::g_szDBName))
  352. {
  353. if (1) {
  354. CFile file;
  355. BYTE* pImage = NULL;
  356. DWORD dwLength = 0;
  357. if (file.Open(_T("D:\\桌面\\logo\\channels\\AccuWeather.png"), CFile::modeRead))
  358. {
  359. dwLength = file.GetLength();
  360. pImage = new BYTE[dwLength];
  361. file.Read(pImage, dwLength);
  362. file.Close();
  363. }
  364. CDatabase::GetInstance()->SetBinaryField("update brand set logo = ? where `name`='SCBC'", pImage, dwLength);
  365. if (pImage)
  366. delete[]pImage;
  367. pImage = NULL;
  368. dwLength = 0;
  369. }
  370. if (1)
  371. {
  372. BYTE* pImage = NULL;
  373. DWORD dwLength = 0;
  374. CDatabase::GetInstance()->GetBinaryField("select logo from brand where `name`='SCBC';", (void**)&pImage, dwLength);
  375. CFile file;
  376. if (file.Open(_T("D:\\11.png"), CFile::modeCreate | CFile::modeWrite))
  377. {
  378. file.Write(pImage, dwLength);
  379. file.Close();
  380. }
  381. }
  382. }
  383. }