Jelajahi Sumber

添加新测试用例。

Jeff 4 tahun lalu
induk
melakukan
72acfe694c

+ 4 - 1
CTSManager/CTSManager/CTSManager.cpp

@@ -13,6 +13,8 @@
 #include "CTSManagerDoc.h"
 #include "CTSManagerView.h"
 
+#include "test.h"
+
 #ifdef _DEBUG
 #define new DEBUG_NEW
 #endif
@@ -140,7 +142,8 @@ BOOL CCTSManagerApp::InitInstance()
 #endif
 
 #ifdef _DEBUG
-	DBTest();
+	TestCase_Soc();
+	TestCase_Brand();
 #else
 	CDatabase::GetInstance()->Init(Global::g_szDBAddress, Global::g_szDBAccount, Global::g_szDBPassword, Global::g_szDBName);
 #endif

+ 5 - 0
CTSManager/CTSManager/CTSManager.ini

@@ -0,0 +1,5 @@
+[mysql]
+dbaddress=thinking.zicp.io
+dbaccount=root
+dbpassword=mysql@851208
+dbname=scbc_cts

+ 2 - 0
CTSManager/CTSManager/CTSManager.vcxproj

@@ -218,6 +218,7 @@
     <ClInclude Include="Resource.h" />
     <ClInclude Include="table.h" />
     <ClInclude Include="targetver.h" />
+    <ClInclude Include="test.h" />
     <ClInclude Include="TitleBar.h" />
     <ClInclude Include="ViewTree.h" />
   </ItemGroup>
@@ -249,6 +250,7 @@
       <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|x64'">Create</PrecompiledHeader>
     </ClCompile>
     <ClCompile Include="PropertiesWnd.cpp" />
+    <ClCompile Include="test.cpp" />
     <ClCompile Include="TitleBar.cpp" />
     <ClCompile Include="ViewTree.cpp" />
   </ItemGroup>

+ 6 - 0
CTSManager/CTSManager/CTSManager.vcxproj.filters

@@ -105,6 +105,9 @@
     <ClInclude Include="CFormViewQBrand.h">
       <Filter>头文件</Filter>
     </ClInclude>
+    <ClInclude Include="test.h">
+      <Filter>sql</Filter>
+    </ClInclude>
   </ItemGroup>
   <ItemGroup>
     <ClCompile Include="CTSManager.cpp">
@@ -179,6 +182,9 @@
     <ClCompile Include="CFormViewQBrand.cpp">
       <Filter>源文件</Filter>
     </ClCompile>
+    <ClCompile Include="test.cpp">
+      <Filter>sql</Filter>
+    </ClCompile>
   </ItemGroup>
   <ItemGroup>
     <ResourceCompile Include="CTSManager.rc">

+ 0 - 450
CTSManager/CTSManager/Database.cpp

@@ -1171,453 +1171,3 @@ BOOL CDatabase::QueryBranch(std::vector<STBranch>& vtBranch)
 
 	return TRUE;
 }
-
-// 示例;
-void test(MYSQL* mysql)
-{
-#define STRING_SIZE 50
-
-#define SELECT_SAMPLE "SELECT col1, col2, col3, col4 \
-                       FROM test_table"
-
-	MYSQL_STMT* stmt;
-	MYSQL_BIND    bind[4];
-	MYSQL_RES* prepare_meta_result;
-	MYSQL_TIME    ts;
-	unsigned long length[4];
-	int           param_count, column_count, row_count;
-	short         small_data;
-	int           int_data;
-	char          str_data[STRING_SIZE];
-	my_bool       is_null[4];
-	my_bool       error[4];
-
-	/* Prepare a SELECT query to fetch data from test_table */
-	stmt = mysql_stmt_init(mysql);
-	if (!stmt)
-	{
-		fprintf(stderr, " mysql_stmt_init(), out of memory\n");
-		exit(0);
-	}
-	if (mysql_stmt_prepare(stmt, SELECT_SAMPLE, strlen(SELECT_SAMPLE)))
-	{
-		fprintf(stderr, " mysql_stmt_prepare(), SELECT failed\n");
-		fprintf(stderr, " %s\n", mysql_stmt_error(stmt));
-		exit(0);
-	}
-	fprintf(stdout, " prepare, SELECT successful\n");
-
-	/* Get the parameter count from the statement */
-	param_count = mysql_stmt_param_count(stmt);
-	fprintf(stdout, " total parameters in SELECT: %d\n", param_count);
-
-	if (param_count != 0) /* validate parameter count */
-	{
-		fprintf(stderr, " invalid parameter count returned by MySQL\n");
-		exit(0);
-	}
-
-	/* Execute the SELECT query */
-	if (mysql_stmt_execute(stmt))
-	{
-		fprintf(stderr, " mysql_stmt_execute(), failed\n");
-		fprintf(stderr, " %s\n", mysql_stmt_error(stmt));
-		exit(0);
-	}
-
-	/* Fetch result set meta information */
-	prepare_meta_result = mysql_stmt_result_metadata(stmt);
-	if (!prepare_meta_result)
-	{
-		fprintf(stderr,
-			" mysql_stmt_result_metadata(), \
-           returned no meta information\n");
-		fprintf(stderr, " %s\n", mysql_stmt_error(stmt));
-		exit(0);
-	}
-
-	/* Get total columns in the query */
-	column_count = mysql_num_fields(prepare_meta_result);
-	fprintf(stdout,
-		" total columns in SELECT statement: %d\n",
-		column_count);
-
-	if (column_count != 4) /* validate column count */
-	{
-		fprintf(stderr, " invalid column count returned by MySQL\n");
-		exit(0);
-	}
-
-	/* Bind the result buffers for all 4 columns before fetching them */
-
-	memset(bind, 0, sizeof(bind));
-
-	/* INTEGER COLUMN */
-	bind[0].buffer_type = MYSQL_TYPE_LONG;
-	bind[0].buffer = (char*)&int_data;
-	bind[0].is_null = &is_null[0];
-	bind[0].length = &length[0];
-	bind[0].error = &error[0];
-
-	/* STRING COLUMN */
-	bind[1].buffer_type = MYSQL_TYPE_STRING;
-	bind[1].buffer = (char*)str_data;
-	bind[1].buffer_length = STRING_SIZE;
-	bind[1].is_null = &is_null[1];
-	bind[1].length = &length[1];
-	bind[1].error = &error[1];
-
-	/* SMALLINT COLUMN */
-	bind[2].buffer_type = MYSQL_TYPE_SHORT;
-	bind[2].buffer = (char*)&small_data;
-	bind[2].is_null = &is_null[2];
-	bind[2].length = &length[2];
-	bind[2].error = &error[2];
-
-	/* TIMESTAMP COLUMN */
-	bind[3].buffer_type = MYSQL_TYPE_TIMESTAMP;
-	bind[3].buffer = (char*)&ts;
-	bind[3].is_null = &is_null[3];
-	bind[3].length = &length[3];
-	bind[3].error = &error[3];
-
-	/* Bind the result buffers */
-	if (mysql_stmt_bind_result(stmt, bind))
-	{
-		fprintf(stderr, " mysql_stmt_bind_result() failed\n");
-		fprintf(stderr, " %s\n", mysql_stmt_error(stmt));
-		exit(0);
-	}
-
-	/* Now buffer all results to client (optional step) */
-	if (mysql_stmt_store_result(stmt))
-	{
-		fprintf(stderr, " mysql_stmt_store_result() failed\n");
-		fprintf(stderr, " %s\n", mysql_stmt_error(stmt));
-		exit(0);
-	}
-
-	/* Fetch all rows */
-	row_count = 0;
-	fprintf(stdout, "Fetching results ...\n");
-	while (!mysql_stmt_fetch(stmt))
-	{
-		row_count++;
-		fprintf(stdout, "  row %d\n", row_count);
-
-		/* column 1 */
-		fprintf(stdout, "   column1 (integer)  : ");
-		if (is_null[0])
-			fprintf(stdout, " NULL\n");
-		else
-			fprintf(stdout, " %d(%ld)\n", int_data, length[0]);
-
-		/* column 2 */
-		fprintf(stdout, "   column2 (string)   : ");
-		if (is_null[1])
-			fprintf(stdout, " NULL\n");
-		else
-			fprintf(stdout, " %s(%ld)\n", str_data, length[1]);
-
-		/* column 3 */
-		fprintf(stdout, "   column3 (smallint) : ");
-		if (is_null[2])
-			fprintf(stdout, " NULL\n");
-		else
-			fprintf(stdout, " %d(%ld)\n", small_data, length[2]);
-
-		/* column 4 */
-		fprintf(stdout, "   column4 (timestamp): ");
-		if (is_null[3])
-			fprintf(stdout, " NULL\n");
-		else
-			fprintf(stdout, " %04d-%02d-%02d %02d:%02d:%02d (%ld)\n",
-				ts.year, ts.month, ts.day,
-				ts.hour, ts.minute, ts.second,
-				length[3]);
-		fprintf(stdout, "\n");
-	}
-
-	/* Validate rows fetched */
-	fprintf(stdout, " total rows fetched: %d\n", row_count);
-	if (row_count != 2)
-	{
-		fprintf(stderr, " MySQL failed to return all rows\n");
-		exit(0);
-	}
-
-	/* Free the prepared result metadata */
-	mysql_free_result(prepare_meta_result);
-
-
-	/* Close the statement */
-	if (mysql_stmt_close(stmt))
-	{
-		/* mysql_stmt_close() invalidates stmt, so call          */
-		/* mysql_error(mysql) rather than mysql_stmt_error(stmt) */
-		fprintf(stderr, " failed while closing the statement\n");
-		fprintf(stderr, " %s\n", mysql_error(mysql));
-		exit(0);
-	}
-}
-
-void DBTest()
-{
-	if (CDatabase::GetInstance()->Init(_STR_HOST_, _STR_USER_, _STR_PASSWD_, _STR_DBNAME_))
-	{
-		if (0) {
-			CDatabase::GetInstance()->InserSoc(_T("RT2851C"), _T("RealTealk"), _T("RTK台湾"));
-			CDatabase::GetInstance()->InserSoc(_T("RT2851M"), _T("RealTealk2"), _T("RTK台湾"));
-			std::vector<STSOC> vtSOC;
-			CDatabase::GetInstance()->QuerySoc(vtSOC);
-
-			for (std::vector<STSOC>::iterator it = vtSOC.begin(); it != vtSOC.end(); it++) {
-				_dprintf(_T("name=%s, provider=%s, note=%s\n"), it->name.c_str(), it->provider.c_str(), it->note.c_str());
-				it->note = _T("xxxx1111xxx");
-				CDatabase::GetInstance()->UpdateSoc(it->name, *it);
-			}
-		}
-
-		if (0)
-		{
-			// 新增用户;
-			CDatabase::GetInstance()->InsertUser(_T("user"), _T("123456"), _T("0000-0000-0000-0000"));
-			CDatabase::GetInstance()->InsertUser(_T("user1"), _T("123456"), _T("0000-0000-0000-0000"));
-			CDatabase::GetInstance()->InsertUser(_T("user2"), _T("123456"), _T("0000-0000-0000-0000"));
-			CDatabase::GetInstance()->InsertUser(_T("user3"), _T("123456"), _T("0000-0000-0000-0000"));
-
-			// 更新用户;
-			STUser stUser;
-			stUser.user = _T("admin");
-			stUser.password = _T("96321");
-			stUser.permission = _T("1111-1111-1111-1111-1111-1111-1111-1111");
-			CDatabase::GetInstance()->UpdateUser(_T("user"), stUser);
-
-			// 查询用户;
-			std::vector<STUser> vtUser;
-			CDatabase::GetInstance()->QueryUser(vtUser);
-			for ( std::vector<STUser>::iterator it = vtUser.begin(); it != vtUser.end(); it++ )
-			{
-				_dprintf(_T("用户名:%s,用户密码:%s,用户权限:%s\n"), it->user.c_str(), it->password.c_str(), it->permission.c_str());
-			}
-
-			// 删除用户;
-			CDatabase::GetInstance()->DeleteUser("user5");
-			CDatabase::GetInstance()->DeleteUser("user3");
-		}
-
-		if (1)
-		{
-			// 新增品牌;
-			CDatabase::GetInstance()->InsertBrand(_T("SCBC"), _T(""), _T(""), _T(""), _T("SCBC"));
-			CDatabase::GetInstance()->ImportBrandLogo(_T("SCBC"), _T("D:\\logo\\r1\\micromax.jpg"));
-
-			CDatabase::GetInstance()->InsertBrand(_T("MICROMAX"), _T(""));
-			CDatabase::GetInstance()->ImportBrandLogo(_T("MICROMAX"), _T("D:\\logo\\r1\\micromax.jpg"));
-
-			CDatabase::GetInstance()->InsertBrand(_T("ARTEL"), _T(""));
-			CDatabase::GetInstance()->ImportBrandLogo(_T("ARTEL"), _T("D:\\logo\\r1\\artel.jpg"));
-
-			CDatabase::GetInstance()->InsertBrand(_T("PANASONIC"), _T(""));
-			CDatabase::GetInstance()->ImportBrandLogo(_T("PANASONIC"), _T("D:\\logo\\r1\\PANASONIC.jpg"));
-
-			CDatabase::GetInstance()->InsertBrand(_T("THOMSON"), _T(""));
-			CDatabase::GetInstance()->ImportBrandLogo(_T("THOMSON"), _T("D:\\logo\\r1\\THOMSON.jpg"));
-
-			CDatabase::GetInstance()->InsertBrand(_T("SANYO"), _T(""));
-			CDatabase::GetInstance()->ImportBrandLogo(_T("SANYO"), _T("D:\\logo\\r1\\SANYO.jpg"));
-
-			CDatabase::GetInstance()->InsertBrand(_T("JVC"), _T(""));
-			CDatabase::GetInstance()->ImportBrandLogo(_T("JVC"), _T("D:\\logo\\r1\\JVC.jpg"));
-
-			CDatabase::GetInstance()->InsertBrand(_T("NOKIA"), _T(""));
-			CDatabase::GetInstance()->ImportBrandLogo(_T("NOKIA"), _T("D:\\logo\\r1\\NOKIA.jpg"));
-
-			CDatabase::GetInstance()->InsertBrand(_T("EAS-ELECTRIC"), _T(""));
-			CDatabase::GetInstance()->ImportBrandLogo(_T("EAS-ELECTRIC"), _T("D:\\logo\\r1\\EAS-ELECTRIC.jpg"));
-
-			CDatabase::GetInstance()->InsertBrand(_T("STRONG"), _T(""));
-			CDatabase::GetInstance()->ImportBrandLogo(_T("STRONG"), _T("D:\\logo\\r1\\STRONG.jpg"));
-
-			CDatabase::GetInstance()->InsertBrand(_T("LLOYD"), _T(""));
-			CDatabase::GetInstance()->ImportBrandLogo(_T("LLOYD"), _T("D:\\logo\\r1\\LLOYD.jpg"));
-
-			CDatabase::GetInstance()->InsertBrand(_T("CASPER"), _T(""));
-			CDatabase::GetInstance()->ImportBrandLogo(_T("CASPER"), _T("D:\\logo\\r1\\CASPER.jpg"));
-
-			CDatabase::GetInstance()->InsertBrand(_T("CONDOR"), _T(""));
-			CDatabase::GetInstance()->ImportBrandLogo(_T("CONDOR"), _T("D:\\logo\\r1\\CONDOR.jpg"));
-
-			CDatabase::GetInstance()->InsertBrand(_T("DENKA"), _T(""));
-			CDatabase::GetInstance()->ImportBrandLogo(_T("DENKA"), _T("D:\\logo\\r1\\DENKA.jpg"));
-
-			CDatabase::GetInstance()->InsertBrand(_T("ACONATIC"), _T(""));
-			CDatabase::GetInstance()->ImportBrandLogo(_T("ACONATIC"), _T("D:\\logo\\r1\\ACONATIC.jpg"));
-
-			CDatabase::GetInstance()->InsertBrand(_T("CG"), _T(""));
-			CDatabase::GetInstance()->ImportBrandLogo(_T("CG"), _T("D:\\logo\\r1\\CG.jpg"));
-
-			CDatabase::GetInstance()->InsertBrand(_T("ORIENT"), _T(""));
-			CDatabase::GetInstance()->ImportBrandLogo(_T("ORIENT"), _T("D:\\logo\\r1\\ORIENT.jpg"));
-
-			CDatabase::GetInstance()->InsertBrand(_T("KALLEY"), _T(""));
-			CDatabase::GetInstance()->ImportBrandLogo(_T("KALLEY"), _T("D:\\logo\\r1\\KALLEY.jpg"));
-
-			CDatabase::GetInstance()->InsertBrand(_T("EVVOLI"), _T(""));
-			CDatabase::GetInstance()->ImportBrandLogo(_T("EVVOLI"), _T("D:\\logo\\r1\\EVVOLI.jpg"));
-
-			CDatabase::GetInstance()->InsertBrand(_T("COMPAQ"), _T(""));
-			CDatabase::GetInstance()->ImportBrandLogo(_T("COMPAQ"), _T("D:\\logo\\r1\\COMPAQ.jpg"));
-
-			CDatabase::GetInstance()->InsertBrand(_T("VISION-TECHNOLOGY"), _T(""));
-			CDatabase::GetInstance()->ImportBrandLogo(_T("VISION-TECHNOLOGY"), _T("D:\\logo\\r1\\VISION.jpg"));
-
-			CDatabase::GetInstance()->InsertBrand(_T("SINGER"), _T(""));
-			CDatabase::GetInstance()->ImportBrandLogo(_T("SINGER"), _T("D:\\logo\\r1\\SINGER.jpg"));
-
-			CDatabase::GetInstance()->InsertBrand(_T("HYUNDAI"), _T(""));
-			CDatabase::GetInstance()->ImportBrandLogo(_T("HYUNDAI"), _T("D:\\logo\\r1\\HYUNDAI.jpg"));
-
-			CDatabase::GetInstance()->InsertBrand(_T("RECCO"), _T(""));
-			CDatabase::GetInstance()->ImportBrandLogo(_T("RECCO"), _T("D:\\logo\\r1\\RECCO.jpg"));
-
-			CDatabase::GetInstance()->InsertBrand(_T("AMSTRAD"), _T(""));
-			CDatabase::GetInstance()->ImportBrandLogo(_T("AMSTRAD"), _T("D:\\logo\\r1\\AMSTRAD.jpg"));
-
-			CDatabase::GetInstance()->InsertBrand(_T("HITACHI"), _T(""));
-			CDatabase::GetInstance()->ImportBrandLogo(_T("HITACHI"), _T("D:\\logo\\r1\\HITACHI.jpg"));
-
-			CDatabase::GetInstance()->InsertBrand(_T("ERITO"), _T(""));
-			CDatabase::GetInstance()->ImportBrandLogo(_T("ERITO"), _T("D:\\logo\\r1\\ERITO.jpg"));
-
-			CDatabase::GetInstance()->InsertBrand(_T("PIONEER"), _T(""));
-			CDatabase::GetInstance()->ImportBrandLogo(_T("PIONEER"), _T("D:\\logo\\r1\\PIONEER.jpg"));
-
-			CDatabase::GetInstance()->InsertBrand(_T("PEL"), _T(""));
-			CDatabase::GetInstance()->ImportBrandLogo(_T("PEL"), _T("D:\\logo\\r1\\PEL.jpg"));
-
-			CDatabase::GetInstance()->InsertBrand(_T("MINISTER"), _T(""));
-			CDatabase::GetInstance()->ImportBrandLogo(_T("MINISTER"), _T("D:\\logo\\r1\\MINISTER.jpg"));
-
-			CDatabase::GetInstance()->InsertBrand(_T("SCHNEIDER"), _T(""));
-			CDatabase::GetInstance()->ImportBrandLogo(_T("SCHNEIDER"), _T("D:\\logo\\r1\\SCHNEIDER.jpg"));
-
-			CDatabase::GetInstance()->InsertBrand(_T("INNOS"), _T(""));
-			CDatabase::GetInstance()->ImportBrandLogo(_T("INNOS"), _T("D:\\logo\\r1\\INNOS.jpg"));
-
-			CDatabase::GetInstance()->InsertBrand(_T("LUCOMS"), _T(""));
-			CDatabase::GetInstance()->ImportBrandLogo(_T("LUCOMS"), _T("D:\\logo\\r1\\LUCOMS.jpg"));
-
-			CDatabase::GetInstance()->InsertBrand(_T("XTREME"), _T(""));
-			CDatabase::GetInstance()->ImportBrandLogo(_T("XTREME"), _T("D:\\logo\\r1\\XTREME.jpg"));
-
-			CDatabase::GetInstance()->InsertBrand(_T("ALHAFIDH"), _T(""));
-			CDatabase::GetInstance()->ImportBrandLogo(_T("ALHAFIDH"), _T("D:\\logo\\r1\\ALHAFIDH.jpg"));
-
-			CDatabase::GetInstance()->InsertBrand(_T("ESSENTIELB"), _T(""));
-			CDatabase::GetInstance()->ImportBrandLogo(_T("ESSENTIELB"), _T("D:\\logo\\r1\\ESSENTIELB.jpg"));
-
-			CDatabase::GetInstance()->InsertBrand(_T("MASTER-G"), _T(""));
-			CDatabase::GetInstance()->ImportBrandLogo(_T("MASTER-G"), _T("D:\\logo\\r1\\MASTER-G.jpg"));
-
-			CDatabase::GetInstance()->InsertBrand(_T("KAPEK"), _T(""));
-			CDatabase::GetInstance()->ImportBrandLogo(_T("KAPEK"), _T("D:\\logo\\r1\\KAPEK.jpg"));
-
-			CDatabase::GetInstance()->InsertBrand(_T("BOTECH"), _T(""));
-			CDatabase::GetInstance()->ImportBrandLogo(_T("BOTECH"), _T("D:\\logo\\r1\\BOTECH.jpg"));
-
-			CDatabase::GetInstance()->InsertBrand(_T("HOME-ELITE"), _T(""));
-			CDatabase::GetInstance()->ImportBrandLogo(_T("HOME-ELITE"), _T("D:\\logo\\r1\\HOME-ELITE.jpg"));
-
-			CDatabase::GetInstance()->InsertBrand(_T("SAMPO"), _T(""));
-			CDatabase::GetInstance()->ImportBrandLogo(_T("SAMPO"), _T("D:\\logo\\r1\\SAMPO.jpg"));
-
-			CDatabase::GetInstance()->InsertBrand(_T("TESLA"), _T(""));
-			CDatabase::GetInstance()->ImportBrandLogo(_T("TESLA"), _T("D:\\logo\\r1\\TESLA.jpg"));
-
-			CDatabase::GetInstance()->InsertBrand(_T("STREAM-SYSTEM"), _T(""));
-			CDatabase::GetInstance()->ImportBrandLogo(_T("STREAM-SYSTEM"), _T("D:\\logo\\r1\\STREAM-SYSTEM.jpg"));
-
-			CDatabase::GetInstance()->InsertBrand(_T("ZTRUST"), _T(""));
-			CDatabase::GetInstance()->ImportBrandLogo(_T("ZTRUST"), _T("D:\\logo\\r1\\ZTRUST.jpg"));
-
-			CDatabase::GetInstance()->InsertBrand(_T("AIWA"), _T(""));
-			CDatabase::GetInstance()->ImportBrandLogo(_T("AIWA"), _T("D:\\logo\\r1\\AIWA.jpg"));
-
-			CDatabase::GetInstance()->InsertBrand(_T("BOREAL"), _T(""));
-			CDatabase::GetInstance()->ImportBrandLogo(_T("BOREAL"), _T("D:\\logo\\r1\\BOREAL.jpg"));
-
-			CDatabase::GetInstance()->InsertBrand(_T("MYSTIC"), _T(""));
-			CDatabase::GetInstance()->ImportBrandLogo(_T("MYSTIC"), _T("D:\\logo\\r1\\MYSTIC.jpg"));
-
-			CDatabase::GetInstance()->InsertBrand(_T("POLAROID"), _T(""));
-			CDatabase::GetInstance()->ImportBrandLogo(_T("POLAROID"), _T("D:\\logo\\r1\\POLAROID.jpg"));
-
-			CDatabase::GetInstance()->InsertBrand(_T("SCEPTER"), _T(""));
-			CDatabase::GetInstance()->ImportBrandLogo(_T("SCEPTER"), _T("D:\\logo\\r1\\SCEPTER.jpg"));
-
-			CDatabase::GetInstance()->InsertBrand(_T("BROOKSTONE"), _T(""));
-			CDatabase::GetInstance()->ImportBrandLogo(_T("BROOKSTONE"), _T("D:\\logo\\r1\\BROOKSTONE.jpg"));
-
-			CDatabase::GetInstance()->InsertBrand(_T("RAYLAN"), _T(""));
-			CDatabase::GetInstance()->ImportBrandLogo(_T("RAYLAN"), _T("D:\\logo\\r1\\RAYLAN.jpg"));
-
-			CDatabase::GetInstance()->InsertBrand(_T("PRIME-TECHNICS"), _T(""));
-			CDatabase::GetInstance()->ImportBrandLogo(_T("PRIME-TECHNICS"), _T("D:\\logo\\r1\\PRIME-TECHNICS.jpg"));
-
-			CDatabase::GetInstance()->InsertBrand(_T("CHALLENGER"), _T(""));
-			CDatabase::GetInstance()->ImportBrandLogo(_T("CHALLENGER"), _T("D:\\logo\\r1\\CHALLENGER.jpg"));
-
-			CDatabase::GetInstance()->InsertBrand(_T("TELEFUNKEN"), _T(""));
-			CDatabase::GetInstance()->ImportBrandLogo(_T("TELEFUNKEN"), _T("D:\\logo\\r1\\TELEFUNKEN.jpg"));
-
-			CDatabase::GetInstance()->InsertBrand(_T("THE-UHD"), _T(""));
-			CDatabase::GetInstance()->ImportBrandLogo(_T("THE-UHD"), _T("D:\\logo\\r1\\THE-UHD.jpg"));
-
-			// 查询品牌;
-			TCHAR szValue[MAX_PATH] = {0};
-			std::vector<STBrand> vtBrand;
-			CDatabase::GetInstance()->QueryBrand(vtBrand);
-			for ( std::vector<STBrand>::iterator it = vtBrand.begin(); it != vtBrand.end(); it++ )
-			{
-				_dprintf(_T("品牌:%s"), it->name.c_str());
-				_stprintf_s(szValue, _T("D:\\brand\\logo\\%s.jpg"), it->name.c_str());
-				// 导出logo;
-				CDatabase::GetInstance()->ExportBrandLogo(it->name, szValue);
-			}
-		}
-
-		if (0) {
-			CFile file;
-			BYTE* pImage = NULL;
-			DWORD dwLength = 0;
-			if (file.Open(_T("D:\\桌面\\logo\\channels\\AccuWeather.png"), CFile::modeRead))
-			{
-				dwLength = file.GetLength();
-				pImage = new BYTE[dwLength];
-				file.Read(pImage, dwLength);
-				file.Close();
-			}
-
-			CDatabase::GetInstance()->SetBinaryField("update brand set logo = ? where `name`='SCBC'", pImage, dwLength);
-			if (pImage)
-				delete[]pImage;
-			pImage = NULL;
-			dwLength = 0;
-		}
-
-		if (0)
-		{
-			BYTE* pImage = NULL;
-			DWORD dwLength = 0;
-			CDatabase::GetInstance()->GetBinaryField("select logo from brand where `name`='SCBC';", (void**)&pImage, dwLength);
-
-			CFile file;
-			if (file.Open(_T("D:\\11.png"), CFile::modeCreate | CFile::modeWrite))
-			{
-				file.Write(pImage, dwLength);
-				file.Close();
-			}
-		}
-	}
-}

+ 1 - 3
CTSManager/CTSManager/Database.h

@@ -68,6 +68,7 @@ public:
 	// 获取二进制字段值;
 	BOOL GetBinaryField(std::string strCondition, void** lpDataOut, unsigned long &nDataLen);
 
+	BOOL IsOpen() { return m_bConnected; }
 	// 初始化连接;
 	BOOL Init(std::string host, std::string user, std::string password, std::string db);
 	// 执行语句;
@@ -130,7 +131,4 @@ public:
 
 };
 
-
-extern void DBTest();
-
 #endif

+ 12 - 4
CTSManager/CTSManager/Global.cpp

@@ -36,10 +36,18 @@ namespace Global
 		_tcscpy_s(g_szConfig, szConfigpath);
 
 		TCHAR szValue[MAX_PATH] = { 0 };
-		GetPrivateProfileString(_T("mysql"), _T("dbname"), NULL, g_szDBName, MAX_PATH, szConfigpath);
-		GetPrivateProfileString(_T("mysql"), _T("dbaddress"), NULL, g_szDBAddress, MAX_PATH, szConfigpath);
-		GetPrivateProfileString(_T("mysql"), _T("dbaccount"), NULL, g_szDBAccount, MAX_PATH, szConfigpath);
-		GetPrivateProfileString(_T("mysql"), _T("dbpassword"), NULL, g_szDBPassword, MAX_PATH, szConfigpath);
+		if (PathFileExists(szConfigpath)) {
+			GetPrivateProfileString(_T("mysql"), _T("dbname"), _T("scbc_cts"), g_szDBName, MAX_PATH, szConfigpath);
+			GetPrivateProfileString(_T("mysql"), _T("dbaddress"), _T("localhost"), g_szDBAddress, MAX_PATH, szConfigpath);
+			GetPrivateProfileString(_T("mysql"), _T("dbaccount"), _T("root"), g_szDBAccount, MAX_PATH, szConfigpath);
+			GetPrivateProfileString(_T("mysql"), _T("dbpassword"), _T("123456"), g_szDBPassword, MAX_PATH, szConfigpath);
+		}
+		else {
+			_stprintf_s(g_szDBAddress, _T("localhost"));
+			_stprintf_s(g_szDBName, _T("scbc_cts"));
+			_stprintf_s(g_szDBAccount, _T("root"));
+			_stprintf_s(g_szDBPassword, _T("123456"));
+		}
 	}
 
 	/************************************************************************/

+ 0 - 5
CTSManager/CTSManager/table.h

@@ -5,11 +5,6 @@
 
 #include <string>
 
-#define _STR_HOST_		"localhost"
-#define _STR_USER_		"root"
-#define _STR_PASSWD_	"123456"
-#define _STR_DBNAME_	"scbc_cts"
-
 // 机芯方案商表;
 typedef struct {
 	std::string name;						// 机芯名称(唯一键值);

+ 670 - 0
CTSManager/CTSManager/test.cpp

@@ -0,0 +1,670 @@
+#include "pch.h"
+#include "test.h"
+#include "Database.h"
+
+// 示例;
+void test(MYSQL* mysql)
+{
+#define STRING_SIZE 50
+
+#define SELECT_SAMPLE "SELECT col1, col2, col3, col4 \
+                       FROM test_table"
+
+	MYSQL_STMT* stmt;
+	MYSQL_BIND    bind[4];
+	MYSQL_RES* prepare_meta_result;
+	MYSQL_TIME    ts;
+	unsigned long length[4];
+	int           param_count, column_count, row_count;
+	short         small_data;
+	int           int_data;
+	char          str_data[STRING_SIZE];
+	my_bool       is_null[4];
+	my_bool       error[4];
+
+	/* Prepare a SELECT query to fetch data from test_table */
+	stmt = mysql_stmt_init(mysql);
+	if (!stmt)
+	{
+		fprintf(stderr, " mysql_stmt_init(), out of memory\n");
+		exit(0);
+	}
+	if (mysql_stmt_prepare(stmt, SELECT_SAMPLE, strlen(SELECT_SAMPLE)))
+	{
+		fprintf(stderr, " mysql_stmt_prepare(), SELECT failed\n");
+		fprintf(stderr, " %s\n", mysql_stmt_error(stmt));
+		exit(0);
+	}
+	fprintf(stdout, " prepare, SELECT successful\n");
+
+	/* Get the parameter count from the statement */
+	param_count = mysql_stmt_param_count(stmt);
+	fprintf(stdout, " total parameters in SELECT: %d\n", param_count);
+
+	if (param_count != 0) /* validate parameter count */
+	{
+		fprintf(stderr, " invalid parameter count returned by MySQL\n");
+		exit(0);
+	}
+
+	/* Execute the SELECT query */
+	if (mysql_stmt_execute(stmt))
+	{
+		fprintf(stderr, " mysql_stmt_execute(), failed\n");
+		fprintf(stderr, " %s\n", mysql_stmt_error(stmt));
+		exit(0);
+	}
+
+	/* Fetch result set meta information */
+	prepare_meta_result = mysql_stmt_result_metadata(stmt);
+	if (!prepare_meta_result)
+	{
+		fprintf(stderr,
+			" mysql_stmt_result_metadata(), \
+           returned no meta information\n");
+		fprintf(stderr, " %s\n", mysql_stmt_error(stmt));
+		exit(0);
+	}
+
+	/* Get total columns in the query */
+	column_count = mysql_num_fields(prepare_meta_result);
+	fprintf(stdout,
+		" total columns in SELECT statement: %d\n",
+		column_count);
+
+	if (column_count != 4) /* validate column count */
+	{
+		fprintf(stderr, " invalid column count returned by MySQL\n");
+		exit(0);
+	}
+
+	/* Bind the result buffers for all 4 columns before fetching them */
+
+	memset(bind, 0, sizeof(bind));
+
+	/* INTEGER COLUMN */
+	bind[0].buffer_type = MYSQL_TYPE_LONG;
+	bind[0].buffer = (char*)&int_data;
+	bind[0].is_null = &is_null[0];
+	bind[0].length = &length[0];
+	bind[0].error = &error[0];
+
+	/* STRING COLUMN */
+	bind[1].buffer_type = MYSQL_TYPE_STRING;
+	bind[1].buffer = (char*)str_data;
+	bind[1].buffer_length = STRING_SIZE;
+	bind[1].is_null = &is_null[1];
+	bind[1].length = &length[1];
+	bind[1].error = &error[1];
+
+	/* SMALLINT COLUMN */
+	bind[2].buffer_type = MYSQL_TYPE_SHORT;
+	bind[2].buffer = (char*)&small_data;
+	bind[2].is_null = &is_null[2];
+	bind[2].length = &length[2];
+	bind[2].error = &error[2];
+
+	/* TIMESTAMP COLUMN */
+	bind[3].buffer_type = MYSQL_TYPE_TIMESTAMP;
+	bind[3].buffer = (char*)&ts;
+	bind[3].is_null = &is_null[3];
+	bind[3].length = &length[3];
+	bind[3].error = &error[3];
+
+	/* Bind the result buffers */
+	if (mysql_stmt_bind_result(stmt, bind))
+	{
+		fprintf(stderr, " mysql_stmt_bind_result() failed\n");
+		fprintf(stderr, " %s\n", mysql_stmt_error(stmt));
+		exit(0);
+	}
+
+	/* Now buffer all results to client (optional step) */
+	if (mysql_stmt_store_result(stmt))
+	{
+		fprintf(stderr, " mysql_stmt_store_result() failed\n");
+		fprintf(stderr, " %s\n", mysql_stmt_error(stmt));
+		exit(0);
+	}
+
+	/* Fetch all rows */
+	row_count = 0;
+	fprintf(stdout, "Fetching results ...\n");
+	while (!mysql_stmt_fetch(stmt))
+	{
+		row_count++;
+		fprintf(stdout, "  row %d\n", row_count);
+
+		/* column 1 */
+		fprintf(stdout, "   column1 (integer)  : ");
+		if (is_null[0])
+			fprintf(stdout, " NULL\n");
+		else
+			fprintf(stdout, " %d(%ld)\n", int_data, length[0]);
+
+		/* column 2 */
+		fprintf(stdout, "   column2 (string)   : ");
+		if (is_null[1])
+			fprintf(stdout, " NULL\n");
+		else
+			fprintf(stdout, " %s(%ld)\n", str_data, length[1]);
+
+		/* column 3 */
+		fprintf(stdout, "   column3 (smallint) : ");
+		if (is_null[2])
+			fprintf(stdout, " NULL\n");
+		else
+			fprintf(stdout, " %d(%ld)\n", small_data, length[2]);
+
+		/* column 4 */
+		fprintf(stdout, "   column4 (timestamp): ");
+		if (is_null[3])
+			fprintf(stdout, " NULL\n");
+		else
+			fprintf(stdout, " %04d-%02d-%02d %02d:%02d:%02d (%ld)\n",
+				ts.year, ts.month, ts.day,
+				ts.hour, ts.minute, ts.second,
+				length[3]);
+		fprintf(stdout, "\n");
+	}
+
+	/* Validate rows fetched */
+	fprintf(stdout, " total rows fetched: %d\n", row_count);
+	if (row_count != 2)
+	{
+		fprintf(stderr, " MySQL failed to return all rows\n");
+		exit(0);
+	}
+
+	/* Free the prepared result metadata */
+	mysql_free_result(prepare_meta_result);
+
+
+	/* Close the statement */
+	if (mysql_stmt_close(stmt))
+	{
+		/* mysql_stmt_close() invalidates stmt, so call          */
+		/* mysql_error(mysql) rather than mysql_stmt_error(stmt) */
+		fprintf(stderr, " failed while closing the statement\n");
+		fprintf(stderr, " %s\n", mysql_error(mysql));
+		exit(0);
+	}
+}
+
+void TestCase_Soc()
+{
+	if (CDatabase::GetInstance()->Init(Global::g_szDBAddress, Global::g_szDBAccount, Global::g_szDBPassword, Global::g_szDBName))
+	{
+		// 新增Soc;
+		CDatabase::GetInstance()->InserSoc(_T("RT2851J"), _T("RealTealk"), _T("RTK台湾"));
+		CDatabase::GetInstance()->InserSoc(_T("RT2841"), _T("RealTealk"), _T("RTK台湾"));
+		CDatabase::GetInstance()->InserSoc(_T("RT2851"), _T("RealTealk"), _T("RTK台湾"));
+		CDatabase::GetInstance()->InserSoc(_T("RT2841A"), _T("RealTealk"), _T("RTK台湾"));
+		CDatabase::GetInstance()->InserSoc(_T("RT2851M"), _T("RealTealk"), _T("RTK台湾"));
+		CDatabase::GetInstance()->InserSoc(_T("RT2851M-JP"), _T("RealTealk"), _T("RTK台湾"));
+
+		Sleep(1000);
+		// 查询、更新Soc;
+		std::vector<STSOC> vtSOC;
+		CDatabase::GetInstance()->QuerySoc(vtSOC);
+		for (std::vector<STSOC>::iterator it = vtSOC.begin(); it != vtSOC.end(); it++) {
+			_dprintf(_T("name=%s, provider=%s, note=%s\n"), it->name.c_str(), it->provider.c_str(), it->note.c_str());
+			it->note = it->name;
+			CDatabase::GetInstance()->UpdateSoc(it->name, *it);
+		}
+
+		Sleep(1000);
+		// 删除Soc;
+		CDatabase::GetInstance()->DeleteSoc(_T("RT2851J"));
+		CDatabase::GetInstance()->DeleteSoc(_T("RT2841"));
+		CDatabase::GetInstance()->DeleteSoc(_T("RT2851"));
+		CDatabase::GetInstance()->DeleteSoc(_T("RT2841A"));
+		CDatabase::GetInstance()->DeleteSoc(_T("RT2851M"));
+		CDatabase::GetInstance()->DeleteSoc(_T("RT2851M-JP"));
+	}
+}
+
+void TestCase_Brand()
+{
+	if (!CDatabase::GetInstance()->IsOpen())
+		return;
+
+	// 新增品牌-有些品牌有多种规格的Logo, 如不同分辨率,不同存储格式,这种情况属于后续的开发扩展;
+	CDatabase::GetInstance()->InsertBrand(_T("SCBC"), _T(""), _T(""), _T(""), _T("SCBC"));
+	CDatabase::GetInstance()->ImportBrandLogo(_T("SCBC"), _T("D:\\logo\\r1\\micromax.jpg"));
+
+	CDatabase::GetInstance()->InsertBrand(_T("MICROMAX"), _T(""));
+	CDatabase::GetInstance()->ImportBrandLogo(_T("MICROMAX"), _T("D:\\logo\\r1\\micromax.jpg"));
+
+	CDatabase::GetInstance()->InsertBrand(_T("ARTEL"), _T(""));
+	CDatabase::GetInstance()->ImportBrandLogo(_T("ARTEL"), _T("D:\\logo\\r1\\artel.jpg"));
+
+	CDatabase::GetInstance()->InsertBrand(_T("PANASONIC"), _T(""));
+	CDatabase::GetInstance()->ImportBrandLogo(_T("PANASONIC"), _T("D:\\logo\\r1\\PANASONIC.jpg"));
+
+	CDatabase::GetInstance()->InsertBrand(_T("THOMSON"), _T(""));
+	CDatabase::GetInstance()->ImportBrandLogo(_T("THOMSON"), _T("D:\\logo\\r1\\THOMSON.jpg"));
+
+	CDatabase::GetInstance()->InsertBrand(_T("SANYO"), _T(""));
+	CDatabase::GetInstance()->ImportBrandLogo(_T("SANYO"), _T("D:\\logo\\r1\\SANYO.jpg"));
+
+	CDatabase::GetInstance()->InsertBrand(_T("JVC"), _T(""));
+	CDatabase::GetInstance()->ImportBrandLogo(_T("JVC"), _T("D:\\logo\\r1\\JVC.jpg"));
+
+	CDatabase::GetInstance()->InsertBrand(_T("NOKIA"), _T(""));
+	CDatabase::GetInstance()->ImportBrandLogo(_T("NOKIA"), _T("D:\\logo\\r1\\NOKIA.jpg"));
+
+	CDatabase::GetInstance()->InsertBrand(_T("EAS-ELECTRIC"), _T(""));
+	CDatabase::GetInstance()->ImportBrandLogo(_T("EAS-ELECTRIC"), _T("D:\\logo\\r1\\EAS-ELECTRIC.jpg"));
+
+	CDatabase::GetInstance()->InsertBrand(_T("STRONG"), _T(""));
+	CDatabase::GetInstance()->ImportBrandLogo(_T("STRONG"), _T("D:\\logo\\r1\\STRONG.jpg"));
+
+	CDatabase::GetInstance()->InsertBrand(_T("LLOYD"), _T(""));
+	CDatabase::GetInstance()->ImportBrandLogo(_T("LLOYD"), _T("D:\\logo\\r1\\LLOYD.jpg"));
+
+	CDatabase::GetInstance()->InsertBrand(_T("CASPER"), _T(""));
+	CDatabase::GetInstance()->ImportBrandLogo(_T("CASPER"), _T("D:\\logo\\r1\\CASPER.jpg"));
+
+	CDatabase::GetInstance()->InsertBrand(_T("CONDOR"), _T(""));
+	CDatabase::GetInstance()->ImportBrandLogo(_T("CONDOR"), _T("D:\\logo\\r1\\CONDOR.jpg"));
+
+	CDatabase::GetInstance()->InsertBrand(_T("DENKA"), _T(""));
+	CDatabase::GetInstance()->ImportBrandLogo(_T("DENKA"), _T("D:\\logo\\r1\\DENKA.jpg"));
+
+	CDatabase::GetInstance()->InsertBrand(_T("ACONATIC"), _T(""));
+	CDatabase::GetInstance()->ImportBrandLogo(_T("ACONATIC"), _T("D:\\logo\\r1\\ACONATIC.jpg"));
+
+	CDatabase::GetInstance()->InsertBrand(_T("CG"), _T(""));
+	CDatabase::GetInstance()->ImportBrandLogo(_T("CG"), _T("D:\\logo\\r1\\CG.jpg"));
+
+	CDatabase::GetInstance()->InsertBrand(_T("ORIENT"), _T(""));
+	CDatabase::GetInstance()->ImportBrandLogo(_T("ORIENT"), _T("D:\\logo\\r1\\ORIENT.jpg"));
+
+	CDatabase::GetInstance()->InsertBrand(_T("KALLEY"), _T(""));
+	CDatabase::GetInstance()->ImportBrandLogo(_T("KALLEY"), _T("D:\\logo\\r1\\KALLEY.jpg"));
+
+	CDatabase::GetInstance()->InsertBrand(_T("EVVOLI"), _T(""));
+	CDatabase::GetInstance()->ImportBrandLogo(_T("EVVOLI"), _T("D:\\logo\\r1\\EVVOLI.jpg"));
+
+	CDatabase::GetInstance()->InsertBrand(_T("COMPAQ"), _T(""));
+	CDatabase::GetInstance()->ImportBrandLogo(_T("COMPAQ"), _T("D:\\logo\\r1\\COMPAQ.jpg"));
+
+	CDatabase::GetInstance()->InsertBrand(_T("VISION-TECHNOLOGY"), _T(""));
+	CDatabase::GetInstance()->ImportBrandLogo(_T("VISION-TECHNOLOGY"), _T("D:\\logo\\r1\\VISION.jpg"));
+
+	CDatabase::GetInstance()->InsertBrand(_T("SINGER"), _T(""));
+	CDatabase::GetInstance()->ImportBrandLogo(_T("SINGER"), _T("D:\\logo\\r1\\SINGER.jpg"));
+
+	CDatabase::GetInstance()->InsertBrand(_T("HYUNDAI"), _T(""));
+	CDatabase::GetInstance()->ImportBrandLogo(_T("HYUNDAI"), _T("D:\\logo\\r1\\HYUNDAI.jpg"));
+
+	CDatabase::GetInstance()->InsertBrand(_T("RECCO"), _T(""));
+	CDatabase::GetInstance()->ImportBrandLogo(_T("RECCO"), _T("D:\\logo\\r1\\RECCO.jpg"));
+
+	CDatabase::GetInstance()->InsertBrand(_T("AMSTRAD"), _T(""));
+	CDatabase::GetInstance()->ImportBrandLogo(_T("AMSTRAD"), _T("D:\\logo\\r1\\AMSTRAD.jpg"));
+
+	CDatabase::GetInstance()->InsertBrand(_T("HITACHI"), _T(""));
+	CDatabase::GetInstance()->ImportBrandLogo(_T("HITACHI"), _T("D:\\logo\\r1\\HITACHI.jpg"));
+
+	CDatabase::GetInstance()->InsertBrand(_T("ERITO"), _T(""));
+	CDatabase::GetInstance()->ImportBrandLogo(_T("ERITO"), _T("D:\\logo\\r1\\ERITO.jpg"));
+
+	CDatabase::GetInstance()->InsertBrand(_T("PIONEER"), _T(""));
+	CDatabase::GetInstance()->ImportBrandLogo(_T("PIONEER"), _T("D:\\logo\\r1\\PIONEER.jpg"));
+
+	CDatabase::GetInstance()->InsertBrand(_T("PEL"), _T(""));
+	CDatabase::GetInstance()->ImportBrandLogo(_T("PEL"), _T("D:\\logo\\r1\\PEL.jpg"));
+
+	CDatabase::GetInstance()->InsertBrand(_T("MINISTER"), _T(""));
+	CDatabase::GetInstance()->ImportBrandLogo(_T("MINISTER"), _T("D:\\logo\\r1\\MINISTER.jpg"));
+
+	CDatabase::GetInstance()->InsertBrand(_T("SCHNEIDER"), _T(""));
+	CDatabase::GetInstance()->ImportBrandLogo(_T("SCHNEIDER"), _T("D:\\logo\\r1\\SCHNEIDER.jpg"));
+
+	CDatabase::GetInstance()->InsertBrand(_T("INNOS"), _T(""));
+	CDatabase::GetInstance()->ImportBrandLogo(_T("INNOS"), _T("D:\\logo\\r1\\INNOS.jpg"));
+
+	CDatabase::GetInstance()->InsertBrand(_T("LUCOMS"), _T(""));
+	CDatabase::GetInstance()->ImportBrandLogo(_T("LUCOMS"), _T("D:\\logo\\r1\\LUCOMS.jpg"));
+
+	CDatabase::GetInstance()->InsertBrand(_T("XTREME"), _T(""));
+	CDatabase::GetInstance()->ImportBrandLogo(_T("XTREME"), _T("D:\\logo\\r1\\XTREME.jpg"));
+
+	CDatabase::GetInstance()->InsertBrand(_T("ALHAFIDH"), _T(""));
+	CDatabase::GetInstance()->ImportBrandLogo(_T("ALHAFIDH"), _T("D:\\logo\\r1\\ALHAFIDH.jpg"));
+
+	CDatabase::GetInstance()->InsertBrand(_T("ESSENTIELB"), _T(""));
+	CDatabase::GetInstance()->ImportBrandLogo(_T("ESSENTIELB"), _T("D:\\logo\\r1\\ESSENTIELB.jpg"));
+
+	CDatabase::GetInstance()->InsertBrand(_T("MASTER-G"), _T(""));
+	CDatabase::GetInstance()->ImportBrandLogo(_T("MASTER-G"), _T("D:\\logo\\r1\\MASTER-G.jpg"));
+
+	CDatabase::GetInstance()->InsertBrand(_T("KAPEK"), _T(""));
+	CDatabase::GetInstance()->ImportBrandLogo(_T("KAPEK"), _T("D:\\logo\\r1\\KAPEK.jpg"));
+
+	CDatabase::GetInstance()->InsertBrand(_T("BOTECH"), _T(""));
+	CDatabase::GetInstance()->ImportBrandLogo(_T("BOTECH"), _T("D:\\logo\\r1\\BOTECH.jpg"));
+
+	CDatabase::GetInstance()->InsertBrand(_T("HOME-ELITE"), _T(""));
+	CDatabase::GetInstance()->ImportBrandLogo(_T("HOME-ELITE"), _T("D:\\logo\\r1\\HOME-ELITE.jpg"));
+
+	CDatabase::GetInstance()->InsertBrand(_T("SAMPO"), _T(""));
+	CDatabase::GetInstance()->ImportBrandLogo(_T("SAMPO"), _T("D:\\logo\\r1\\SAMPO.jpg"));
+
+	CDatabase::GetInstance()->InsertBrand(_T("TESLA"), _T(""));
+	CDatabase::GetInstance()->ImportBrandLogo(_T("TESLA"), _T("D:\\logo\\r1\\TESLA.jpg"));
+
+	CDatabase::GetInstance()->InsertBrand(_T("STREAM-SYSTEM"), _T(""));
+	CDatabase::GetInstance()->ImportBrandLogo(_T("STREAM-SYSTEM"), _T("D:\\logo\\r1\\STREAM-SYSTEM.jpg"));
+
+	CDatabase::GetInstance()->InsertBrand(_T("ZTRUST"), _T(""));
+	CDatabase::GetInstance()->ImportBrandLogo(_T("ZTRUST"), _T("D:\\logo\\r1\\ZTRUST.jpg"));
+
+	CDatabase::GetInstance()->InsertBrand(_T("AIWA"), _T(""));
+	CDatabase::GetInstance()->ImportBrandLogo(_T("AIWA"), _T("D:\\logo\\r1\\AIWA.jpg"));
+
+	CDatabase::GetInstance()->InsertBrand(_T("BOREAL"), _T(""));
+	CDatabase::GetInstance()->ImportBrandLogo(_T("BOREAL"), _T("D:\\logo\\r1\\BOREAL.jpg"));
+
+	CDatabase::GetInstance()->InsertBrand(_T("MYSTIC"), _T(""));
+	CDatabase::GetInstance()->ImportBrandLogo(_T("MYSTIC"), _T("D:\\logo\\r1\\MYSTIC.jpg"));
+
+	CDatabase::GetInstance()->InsertBrand(_T("POLAROID"), _T(""));
+	CDatabase::GetInstance()->ImportBrandLogo(_T("POLAROID"), _T("D:\\logo\\r1\\POLAROID.jpg"));
+
+	CDatabase::GetInstance()->InsertBrand(_T("SCEPTER"), _T(""));
+	CDatabase::GetInstance()->ImportBrandLogo(_T("SCEPTER"), _T("D:\\logo\\r1\\SCEPTER.jpg"));
+
+	CDatabase::GetInstance()->InsertBrand(_T("BROOKSTONE"), _T(""));
+	CDatabase::GetInstance()->ImportBrandLogo(_T("BROOKSTONE"), _T("D:\\logo\\r1\\BROOKSTONE.jpg"));
+
+	CDatabase::GetInstance()->InsertBrand(_T("RAYLAN"), _T(""));
+	CDatabase::GetInstance()->ImportBrandLogo(_T("RAYLAN"), _T("D:\\logo\\r1\\RAYLAN.jpg"));
+
+	CDatabase::GetInstance()->InsertBrand(_T("PRIME-TECHNICS"), _T(""));
+	CDatabase::GetInstance()->ImportBrandLogo(_T("PRIME-TECHNICS"), _T("D:\\logo\\r1\\PRIME-TECHNICS.jpg"));
+
+	CDatabase::GetInstance()->InsertBrand(_T("CHALLENGER"), _T(""));
+	CDatabase::GetInstance()->ImportBrandLogo(_T("CHALLENGER"), _T("D:\\logo\\r1\\CHALLENGER.jpg"));
+
+	CDatabase::GetInstance()->InsertBrand(_T("TELEFUNKEN"), _T(""));
+	CDatabase::GetInstance()->ImportBrandLogo(_T("TELEFUNKEN"), _T("D:\\logo\\r1\\TELEFUNKEN.jpg"));
+
+	CDatabase::GetInstance()->InsertBrand(_T("THE-UHD"), _T(""));
+	CDatabase::GetInstance()->ImportBrandLogo(_T("THE-UHD"), _T("D:\\logo\\r1\\THE-UHD.jpg"));
+
+	// 查询品牌;
+	TCHAR szValue[MAX_PATH] = { 0 };
+	std::vector<STBrand> vtBrand;
+	CDatabase::GetInstance()->QueryBrand(vtBrand);
+	for (std::vector<STBrand>::iterator it = vtBrand.begin(); it != vtBrand.end(); it++)
+	{
+		_dprintf(_T("品牌:%s"), it->name.c_str());
+		_stprintf_s(szValue, _T("D:\\brand\\logo\\%s.jpg"), it->name.c_str());
+		// 导出logo;
+		CDatabase::GetInstance()->ExportBrandLogo(it->name, szValue);
+	}
+}
+
+void DBTest()
+{
+	if (CDatabase::GetInstance()->Init(Global::g_szDBAddress, Global::g_szDBAccount, Global::g_szDBPassword, Global::g_szDBName))
+	{
+		if (1) {
+			CDatabase::GetInstance()->InserSoc(_T("RT2851C"), _T("RealTealk"), _T("RTK台湾"));
+			CDatabase::GetInstance()->InserSoc(_T("RT2851M"), _T("RealTealk2"), _T("RTK台湾"));
+			std::vector<STSOC> vtSOC;
+			CDatabase::GetInstance()->QuerySoc(vtSOC);
+
+			for (std::vector<STSOC>::iterator it = vtSOC.begin(); it != vtSOC.end(); it++) {
+				_dprintf(_T("name=%s, provider=%s, note=%s\n"), it->name.c_str(), it->provider.c_str(), it->note.c_str());
+				it->note = _T("xxxx1111xxx");
+				CDatabase::GetInstance()->UpdateSoc(it->name, *it);
+			}
+		}
+
+		if (1)
+		{
+			// 新增用户;
+			CDatabase::GetInstance()->InsertUser(_T("user"), _T("123456"), _T("0000-0000-0000-0000"));
+			CDatabase::GetInstance()->InsertUser(_T("user1"), _T("123456"), _T("0000-0000-0000-0000"));
+			CDatabase::GetInstance()->InsertUser(_T("user2"), _T("123456"), _T("0000-0000-0000-0000"));
+			CDatabase::GetInstance()->InsertUser(_T("user3"), _T("123456"), _T("0000-0000-0000-0000"));
+
+			// 更新用户;
+			STUser stUser;
+			stUser.user = _T("admin");
+			stUser.password = _T("96321");
+			stUser.permission = _T("1111-1111-1111-1111-1111-1111-1111-1111");
+			CDatabase::GetInstance()->UpdateUser(_T("user"), stUser);
+
+			// 查询用户;
+			std::vector<STUser> vtUser;
+			CDatabase::GetInstance()->QueryUser(vtUser);
+			for (std::vector<STUser>::iterator it = vtUser.begin(); it != vtUser.end(); it++)
+			{
+				_dprintf(_T("用户名:%s,用户密码:%s,用户权限:%s\n"), it->user.c_str(), it->password.c_str(), it->permission.c_str());
+			}
+
+			// 删除用户;
+			CDatabase::GetInstance()->DeleteUser("user5");
+			CDatabase::GetInstance()->DeleteUser("user3");
+		}
+
+		if (1)
+		{
+			// 新增品牌;
+			CDatabase::GetInstance()->InsertBrand(_T("SCBC"), _T(""), _T(""), _T(""), _T("SCBC"));
+			CDatabase::GetInstance()->ImportBrandLogo(_T("SCBC"), _T("D:\\logo\\r1\\micromax.jpg"));
+
+			CDatabase::GetInstance()->InsertBrand(_T("MICROMAX"), _T(""));
+			CDatabase::GetInstance()->ImportBrandLogo(_T("MICROMAX"), _T("D:\\logo\\r1\\micromax.jpg"));
+
+			CDatabase::GetInstance()->InsertBrand(_T("ARTEL"), _T(""));
+			CDatabase::GetInstance()->ImportBrandLogo(_T("ARTEL"), _T("D:\\logo\\r1\\artel.jpg"));
+
+			CDatabase::GetInstance()->InsertBrand(_T("PANASONIC"), _T(""));
+			CDatabase::GetInstance()->ImportBrandLogo(_T("PANASONIC"), _T("D:\\logo\\r1\\PANASONIC.jpg"));
+
+			CDatabase::GetInstance()->InsertBrand(_T("THOMSON"), _T(""));
+			CDatabase::GetInstance()->ImportBrandLogo(_T("THOMSON"), _T("D:\\logo\\r1\\THOMSON.jpg"));
+
+			CDatabase::GetInstance()->InsertBrand(_T("SANYO"), _T(""));
+			CDatabase::GetInstance()->ImportBrandLogo(_T("SANYO"), _T("D:\\logo\\r1\\SANYO.jpg"));
+
+			CDatabase::GetInstance()->InsertBrand(_T("JVC"), _T(""));
+			CDatabase::GetInstance()->ImportBrandLogo(_T("JVC"), _T("D:\\logo\\r1\\JVC.jpg"));
+
+			CDatabase::GetInstance()->InsertBrand(_T("NOKIA"), _T(""));
+			CDatabase::GetInstance()->ImportBrandLogo(_T("NOKIA"), _T("D:\\logo\\r1\\NOKIA.jpg"));
+
+			CDatabase::GetInstance()->InsertBrand(_T("EAS-ELECTRIC"), _T(""));
+			CDatabase::GetInstance()->ImportBrandLogo(_T("EAS-ELECTRIC"), _T("D:\\logo\\r1\\EAS-ELECTRIC.jpg"));
+
+			CDatabase::GetInstance()->InsertBrand(_T("STRONG"), _T(""));
+			CDatabase::GetInstance()->ImportBrandLogo(_T("STRONG"), _T("D:\\logo\\r1\\STRONG.jpg"));
+
+			CDatabase::GetInstance()->InsertBrand(_T("LLOYD"), _T(""));
+			CDatabase::GetInstance()->ImportBrandLogo(_T("LLOYD"), _T("D:\\logo\\r1\\LLOYD.jpg"));
+
+			CDatabase::GetInstance()->InsertBrand(_T("CASPER"), _T(""));
+			CDatabase::GetInstance()->ImportBrandLogo(_T("CASPER"), _T("D:\\logo\\r1\\CASPER.jpg"));
+
+			CDatabase::GetInstance()->InsertBrand(_T("CONDOR"), _T(""));
+			CDatabase::GetInstance()->ImportBrandLogo(_T("CONDOR"), _T("D:\\logo\\r1\\CONDOR.jpg"));
+
+			CDatabase::GetInstance()->InsertBrand(_T("DENKA"), _T(""));
+			CDatabase::GetInstance()->ImportBrandLogo(_T("DENKA"), _T("D:\\logo\\r1\\DENKA.jpg"));
+
+			CDatabase::GetInstance()->InsertBrand(_T("ACONATIC"), _T(""));
+			CDatabase::GetInstance()->ImportBrandLogo(_T("ACONATIC"), _T("D:\\logo\\r1\\ACONATIC.jpg"));
+
+			CDatabase::GetInstance()->InsertBrand(_T("CG"), _T(""));
+			CDatabase::GetInstance()->ImportBrandLogo(_T("CG"), _T("D:\\logo\\r1\\CG.jpg"));
+
+			CDatabase::GetInstance()->InsertBrand(_T("ORIENT"), _T(""));
+			CDatabase::GetInstance()->ImportBrandLogo(_T("ORIENT"), _T("D:\\logo\\r1\\ORIENT.jpg"));
+
+			CDatabase::GetInstance()->InsertBrand(_T("KALLEY"), _T(""));
+			CDatabase::GetInstance()->ImportBrandLogo(_T("KALLEY"), _T("D:\\logo\\r1\\KALLEY.jpg"));
+
+			CDatabase::GetInstance()->InsertBrand(_T("EVVOLI"), _T(""));
+			CDatabase::GetInstance()->ImportBrandLogo(_T("EVVOLI"), _T("D:\\logo\\r1\\EVVOLI.jpg"));
+
+			CDatabase::GetInstance()->InsertBrand(_T("COMPAQ"), _T(""));
+			CDatabase::GetInstance()->ImportBrandLogo(_T("COMPAQ"), _T("D:\\logo\\r1\\COMPAQ.jpg"));
+
+			CDatabase::GetInstance()->InsertBrand(_T("VISION-TECHNOLOGY"), _T(""));
+			CDatabase::GetInstance()->ImportBrandLogo(_T("VISION-TECHNOLOGY"), _T("D:\\logo\\r1\\VISION.jpg"));
+
+			CDatabase::GetInstance()->InsertBrand(_T("SINGER"), _T(""));
+			CDatabase::GetInstance()->ImportBrandLogo(_T("SINGER"), _T("D:\\logo\\r1\\SINGER.jpg"));
+
+			CDatabase::GetInstance()->InsertBrand(_T("HYUNDAI"), _T(""));
+			CDatabase::GetInstance()->ImportBrandLogo(_T("HYUNDAI"), _T("D:\\logo\\r1\\HYUNDAI.jpg"));
+
+			CDatabase::GetInstance()->InsertBrand(_T("RECCO"), _T(""));
+			CDatabase::GetInstance()->ImportBrandLogo(_T("RECCO"), _T("D:\\logo\\r1\\RECCO.jpg"));
+
+			CDatabase::GetInstance()->InsertBrand(_T("AMSTRAD"), _T(""));
+			CDatabase::GetInstance()->ImportBrandLogo(_T("AMSTRAD"), _T("D:\\logo\\r1\\AMSTRAD.jpg"));
+
+			CDatabase::GetInstance()->InsertBrand(_T("HITACHI"), _T(""));
+			CDatabase::GetInstance()->ImportBrandLogo(_T("HITACHI"), _T("D:\\logo\\r1\\HITACHI.jpg"));
+
+			CDatabase::GetInstance()->InsertBrand(_T("ERITO"), _T(""));
+			CDatabase::GetInstance()->ImportBrandLogo(_T("ERITO"), _T("D:\\logo\\r1\\ERITO.jpg"));
+
+			CDatabase::GetInstance()->InsertBrand(_T("PIONEER"), _T(""));
+			CDatabase::GetInstance()->ImportBrandLogo(_T("PIONEER"), _T("D:\\logo\\r1\\PIONEER.jpg"));
+
+			CDatabase::GetInstance()->InsertBrand(_T("PEL"), _T(""));
+			CDatabase::GetInstance()->ImportBrandLogo(_T("PEL"), _T("D:\\logo\\r1\\PEL.jpg"));
+
+			CDatabase::GetInstance()->InsertBrand(_T("MINISTER"), _T(""));
+			CDatabase::GetInstance()->ImportBrandLogo(_T("MINISTER"), _T("D:\\logo\\r1\\MINISTER.jpg"));
+
+			CDatabase::GetInstance()->InsertBrand(_T("SCHNEIDER"), _T(""));
+			CDatabase::GetInstance()->ImportBrandLogo(_T("SCHNEIDER"), _T("D:\\logo\\r1\\SCHNEIDER.jpg"));
+
+			CDatabase::GetInstance()->InsertBrand(_T("INNOS"), _T(""));
+			CDatabase::GetInstance()->ImportBrandLogo(_T("INNOS"), _T("D:\\logo\\r1\\INNOS.jpg"));
+
+			CDatabase::GetInstance()->InsertBrand(_T("LUCOMS"), _T(""));
+			CDatabase::GetInstance()->ImportBrandLogo(_T("LUCOMS"), _T("D:\\logo\\r1\\LUCOMS.jpg"));
+
+			CDatabase::GetInstance()->InsertBrand(_T("XTREME"), _T(""));
+			CDatabase::GetInstance()->ImportBrandLogo(_T("XTREME"), _T("D:\\logo\\r1\\XTREME.jpg"));
+
+			CDatabase::GetInstance()->InsertBrand(_T("ALHAFIDH"), _T(""));
+			CDatabase::GetInstance()->ImportBrandLogo(_T("ALHAFIDH"), _T("D:\\logo\\r1\\ALHAFIDH.jpg"));
+
+			CDatabase::GetInstance()->InsertBrand(_T("ESSENTIELB"), _T(""));
+			CDatabase::GetInstance()->ImportBrandLogo(_T("ESSENTIELB"), _T("D:\\logo\\r1\\ESSENTIELB.jpg"));
+
+			CDatabase::GetInstance()->InsertBrand(_T("MASTER-G"), _T(""));
+			CDatabase::GetInstance()->ImportBrandLogo(_T("MASTER-G"), _T("D:\\logo\\r1\\MASTER-G.jpg"));
+
+			CDatabase::GetInstance()->InsertBrand(_T("KAPEK"), _T(""));
+			CDatabase::GetInstance()->ImportBrandLogo(_T("KAPEK"), _T("D:\\logo\\r1\\KAPEK.jpg"));
+
+			CDatabase::GetInstance()->InsertBrand(_T("BOTECH"), _T(""));
+			CDatabase::GetInstance()->ImportBrandLogo(_T("BOTECH"), _T("D:\\logo\\r1\\BOTECH.jpg"));
+
+			CDatabase::GetInstance()->InsertBrand(_T("HOME-ELITE"), _T(""));
+			CDatabase::GetInstance()->ImportBrandLogo(_T("HOME-ELITE"), _T("D:\\logo\\r1\\HOME-ELITE.jpg"));
+
+			CDatabase::GetInstance()->InsertBrand(_T("SAMPO"), _T(""));
+			CDatabase::GetInstance()->ImportBrandLogo(_T("SAMPO"), _T("D:\\logo\\r1\\SAMPO.jpg"));
+
+			CDatabase::GetInstance()->InsertBrand(_T("TESLA"), _T(""));
+			CDatabase::GetInstance()->ImportBrandLogo(_T("TESLA"), _T("D:\\logo\\r1\\TESLA.jpg"));
+
+			CDatabase::GetInstance()->InsertBrand(_T("STREAM-SYSTEM"), _T(""));
+			CDatabase::GetInstance()->ImportBrandLogo(_T("STREAM-SYSTEM"), _T("D:\\logo\\r1\\STREAM-SYSTEM.jpg"));
+
+			CDatabase::GetInstance()->InsertBrand(_T("ZTRUST"), _T(""));
+			CDatabase::GetInstance()->ImportBrandLogo(_T("ZTRUST"), _T("D:\\logo\\r1\\ZTRUST.jpg"));
+
+			CDatabase::GetInstance()->InsertBrand(_T("AIWA"), _T(""));
+			CDatabase::GetInstance()->ImportBrandLogo(_T("AIWA"), _T("D:\\logo\\r1\\AIWA.jpg"));
+
+			CDatabase::GetInstance()->InsertBrand(_T("BOREAL"), _T(""));
+			CDatabase::GetInstance()->ImportBrandLogo(_T("BOREAL"), _T("D:\\logo\\r1\\BOREAL.jpg"));
+
+			CDatabase::GetInstance()->InsertBrand(_T("MYSTIC"), _T(""));
+			CDatabase::GetInstance()->ImportBrandLogo(_T("MYSTIC"), _T("D:\\logo\\r1\\MYSTIC.jpg"));
+
+			CDatabase::GetInstance()->InsertBrand(_T("POLAROID"), _T(""));
+			CDatabase::GetInstance()->ImportBrandLogo(_T("POLAROID"), _T("D:\\logo\\r1\\POLAROID.jpg"));
+
+			CDatabase::GetInstance()->InsertBrand(_T("SCEPTER"), _T(""));
+			CDatabase::GetInstance()->ImportBrandLogo(_T("SCEPTER"), _T("D:\\logo\\r1\\SCEPTER.jpg"));
+
+			CDatabase::GetInstance()->InsertBrand(_T("BROOKSTONE"), _T(""));
+			CDatabase::GetInstance()->ImportBrandLogo(_T("BROOKSTONE"), _T("D:\\logo\\r1\\BROOKSTONE.jpg"));
+
+			CDatabase::GetInstance()->InsertBrand(_T("RAYLAN"), _T(""));
+			CDatabase::GetInstance()->ImportBrandLogo(_T("RAYLAN"), _T("D:\\logo\\r1\\RAYLAN.jpg"));
+
+			CDatabase::GetInstance()->InsertBrand(_T("PRIME-TECHNICS"), _T(""));
+			CDatabase::GetInstance()->ImportBrandLogo(_T("PRIME-TECHNICS"), _T("D:\\logo\\r1\\PRIME-TECHNICS.jpg"));
+
+			CDatabase::GetInstance()->InsertBrand(_T("CHALLENGER"), _T(""));
+			CDatabase::GetInstance()->ImportBrandLogo(_T("CHALLENGER"), _T("D:\\logo\\r1\\CHALLENGER.jpg"));
+
+			CDatabase::GetInstance()->InsertBrand(_T("TELEFUNKEN"), _T(""));
+			CDatabase::GetInstance()->ImportBrandLogo(_T("TELEFUNKEN"), _T("D:\\logo\\r1\\TELEFUNKEN.jpg"));
+
+			CDatabase::GetInstance()->InsertBrand(_T("THE-UHD"), _T(""));
+			CDatabase::GetInstance()->ImportBrandLogo(_T("THE-UHD"), _T("D:\\logo\\r1\\THE-UHD.jpg"));
+
+			// 查询品牌;
+			TCHAR szValue[MAX_PATH] = { 0 };
+			std::vector<STBrand> vtBrand;
+			CDatabase::GetInstance()->QueryBrand(vtBrand);
+			for (std::vector<STBrand>::iterator it = vtBrand.begin(); it != vtBrand.end(); it++)
+			{
+				_dprintf(_T("品牌:%s"), it->name.c_str());
+				_stprintf_s(szValue, _T("D:\\brand\\logo\\%s.jpg"), it->name.c_str());
+				// 导出logo;
+				CDatabase::GetInstance()->ExportBrandLogo(it->name, szValue);
+			}
+		}
+
+		if (1) {
+			CFile file;
+			BYTE* pImage = NULL;
+			DWORD dwLength = 0;
+			if (file.Open(_T("D:\\桌面\\logo\\channels\\AccuWeather.png"), CFile::modeRead))
+			{
+				dwLength = file.GetLength();
+				pImage = new BYTE[dwLength];
+				file.Read(pImage, dwLength);
+				file.Close();
+			}
+
+			CDatabase::GetInstance()->SetBinaryField("update brand set logo = ? where `name`='SCBC'", pImage, dwLength);
+			if (pImage)
+				delete[]pImage;
+			pImage = NULL;
+			dwLength = 0;
+		}
+
+		if (1)
+		{
+			BYTE* pImage = NULL;
+			DWORD dwLength = 0;
+			CDatabase::GetInstance()->GetBinaryField("select logo from brand where `name`='SCBC';", (void**)&pImage, dwLength);
+
+			CFile file;
+			if (file.Open(_T("D:\\11.png"), CFile::modeCreate | CFile::modeWrite))
+			{
+				file.Write(pImage, dwLength);
+				file.Close();
+			}
+		}
+	}
+}

+ 4 - 0
CTSManager/CTSManager/test.h

@@ -0,0 +1,4 @@
+#pragma once
+
+extern void TestCase_Soc();
+extern void TestCase_Brand();