Quellcode durchsuchen

增加数据库处理类功能;

sat23 vor 4 Jahren
Ursprung
Commit
563584c9cc

+ 226 - 8
CTSManager/CTSManager/Database.cpp

@@ -164,7 +164,7 @@ BOOL CDatabase::InsertBrand(const STBranch& brand)
 	_stprintf_s(szSql, INSER_BRAND, brand.name.c_str(), brand.note.c_str());
 	if (0 != mysql_query(m_pConn, szSql)) {
 #ifdef _DEBUG
-		TRACE1(_T("InserProvider error=%s\n"), m_pError ? m_pError : "");
+		TRACE1(_T("InsertBrand error=%s\n"), m_pError ? m_pError : "");
 #endif
 		return FALSE;
 	}
@@ -179,7 +179,7 @@ BOOL CDatabase::InsertBrand(std::string name, std::string note)
 	_stprintf_s(szSql, INSER_BRAND, name.c_str(), note.c_str());
 	if (0 != mysql_query(m_pConn, szSql)) {
 #ifdef _DEBUG
-		TRACE1(_T("InserProvider error=%s\n"), m_pError ? m_pError : "");
+		TRACE1(_T("InsertBrand error=%s\n"), m_pError ? m_pError : "");
 #endif
 		return FALSE;
 	}
@@ -194,7 +194,7 @@ BOOL CDatabase::DeleteBrand(std::string name)
 	_stprintf_s(szSql, DEL_BRAND, name.c_str());
 	if (0 != mysql_query(m_pConn, szSql)) {
 #ifdef _DEBUG
-		TRACE1(_T("DeleteProvider error=%s\n"), m_pError ? m_pError : "");
+		TRACE1(_T("DeleteBrand error=%s\n"), m_pError ? m_pError : "");
 #endif
 		return FALSE;
 	}
@@ -209,11 +209,62 @@ BOOL CDatabase::UpdateBrand(std::string name, const STBranch& brand)
 	_stprintf_s(szSql, MOD_BRAND, name.c_str(), brand.name.c_str(), brand.note.c_str());
 	if (0 != mysql_query(m_pConn, szSql)) {
 #ifdef _DEBUG
-		TRACE1(_T("DeleteProvider error=%s\n"), m_pError ? m_pError : "");
+		TRACE1(_T("UpdateBrand error=%s\n"), m_pError ? m_pError : "");
+#endif
+		return FALSE;
+	}
+
+	return TRUE;
+}
+
+BOOL CDatabase::QueryBrand(std::vector<STBranch>& vtBrand)
+{
+	CHECKDB;
+	if (0 != mysql_query(m_pConn, QUERY_BRAND)) {
+#ifdef _DEBUG
+		TRACE1(_T("QueryBrand error=%s\n"), m_pError ? m_pError : "");
 #endif
 		return FALSE;
 	}
 
+	// 获取表数据;
+	MYSQL_RES* pData = mysql_store_result(m_pConn);
+	if (pData == NULL) {
+#ifdef _DEBUG
+		TRACE1(_T("QueryBrand error=%s\n"), m_pError ? m_pError : "");
+#endif
+		return FALSE;
+	}
+
+#ifdef _DEBUG
+	// 统计表字段;
+	unsigned int nLen = mysql_num_fields(pData);
+	// 字段长度是否一致;
+	if (nLen != 2) {
+		mysql_free_result(pData);
+		return FALSE;
+	}
+
+	// 打印出字段名称;
+	TCHAR szLog[MAX_PATH] = { 0 };
+	for (int i = 0; i < nLen; i++) {
+		_stprintf_s(szLog, _T("字段名称:%s\n"), mysql_fetch_field(pData)->name);
+		OutputDebugString(szLog);
+	}
+#endif
+
+	// 遍历数据;
+	MYSQL_ROW row;
+	while ((row = mysql_fetch_row(pData)) != NULL) {
+		STBranch brand;
+		brand.name = row[0];
+		brand.note = row[1];
+		vtBrand.push_back(brand);
+	}
+
+	// 释放内存;
+	mysql_free_result(pData);
+
 	return TRUE;
 }
 
@@ -224,7 +275,7 @@ BOOL CDatabase::InsertQuarter(const STQuarter& quarter)
 	_stprintf_s(szSql, INSER_QUARTER, quarter.name.c_str(), quarter.scp.c_str(), quarter.note.c_str());
 	if (0 != mysql_query(m_pConn, szSql)) {
 #ifdef _DEBUG
-		TRACE1(_T("InserProvider error=%s\n"), m_pError ? m_pError : "");
+		TRACE1(_T("InsertQuarter error=%s\n"), m_pError ? m_pError : "");
 #endif
 		return FALSE;
 	}
@@ -239,7 +290,7 @@ BOOL CDatabase::InsertQuarter(std::string name, std::string scp, std::string not
 	_stprintf_s(szSql, INSER_QUARTER, name.c_str(), scp.c_str(), note.c_str());
 	if (0 != mysql_query(m_pConn, szSql)) {
 #ifdef _DEBUG
-		TRACE1(_T("InserProvider error=%s\n"), m_pError ? m_pError : "");
+		TRACE1(_T("InsertQuarter error=%s\n"), m_pError ? m_pError : "");
 #endif
 		return FALSE;
 	}
@@ -254,7 +305,7 @@ BOOL CDatabase::DeleteQuarter(std::string name)
 	_stprintf_s(szSql, DEL_QUARTER, name.c_str());
 	if (0 != mysql_query(m_pConn, szSql)) {
 #ifdef _DEBUG
-		TRACE1(_T("DeleteProvider error=%s\n"), m_pError ? m_pError : "");
+		TRACE1(_T("DeleteQuarter error=%s\n"), m_pError ? m_pError : "");
 #endif
 		return FALSE;
 	}
@@ -269,10 +320,177 @@ BOOL CDatabase::UpdateQuarter(std::string name, const STQuarter& quarter)
 	_stprintf_s(szSql, MOD_QUARTER, name.c_str(), quarter.name.c_str(), quarter.scp.c_str(), quarter.note.c_str());
 	if (0 != mysql_query(m_pConn, szSql)) {
 #ifdef _DEBUG
-		TRACE1(_T("DeleteProvider error=%s\n"), m_pError ? m_pError : "");
+		TRACE1(_T("UpdateQuarter error=%s\n"), m_pError ? m_pError : "");
+#endif
+		return FALSE;
+	}
+
+	return TRUE;
+}
+
+BOOL CDatabase::QueryQuarter(std::vector<STQuarter>& vtQuarter)
+{
+	CHECKDB;
+	if (0 != mysql_query(m_pConn, QUERY_QUARTER)) {
+#ifdef _DEBUG
+		TRACE1(_T("QueryQuarter error=%s\n"), m_pError ? m_pError : "");
 #endif
 		return FALSE;
 	}
 
+	// 获取表数据;
+	MYSQL_RES* pData = mysql_store_result(m_pConn);
+	if (pData == NULL) {
+#ifdef _DEBUG
+		TRACE1(_T("QueryQuarter error=%s\n"), m_pError ? m_pError : "");
+#endif
+		return FALSE;
+	}
+
+#ifdef _DEBUG
+	// 统计表字段;
+	unsigned int nLen = mysql_num_fields(pData);
+	// 字段长度是否一致;
+	if (nLen != 3) {
+		mysql_free_result(pData);
+		return FALSE;
+	}
+
+	// 打印出字段名称;
+	TCHAR szLog[MAX_PATH] = { 0 };
+	for (int i = 0; i < nLen; i++) {
+		_stprintf_s(szLog, _T("字段名称:%s\n"), mysql_fetch_field(pData)->name);
+		OutputDebugString(szLog);
+	}
+#endif
+
+	// 遍历数据;
+	MYSQL_ROW row;
+	while ((row = mysql_fetch_row(pData)) != NULL) {
+		STQuarter quarter;
+		quarter.name = row[0];
+		quarter.scp = row[1];
+		quarter.note = row[2];
+		vtQuarter.push_back(quarter);
+	}
+
+	// 释放内存;
+	mysql_free_result(pData);
+
+	return TRUE;
+}
+
+BOOL CDatabase::InsertServer(const STServer& Server)
+{
+	CHECKDB;
+	TCHAR szSql[MAX_PATH] = { 0 };
+	_stprintf_s(szSql, INSER_SERVER, Server.name.c_str(), Server.ip.c_str(), Server.type.c_str(), Server.user.c_str(), Server.password.c_str(),Server.note.c_str());
+	if (0 != mysql_query(m_pConn, szSql)) {
+#ifdef _DEBUG
+		TRACE1(_T("InsertServer error=%s\n"), m_pError ? m_pError : "");
+#endif
+		return FALSE;
+	}
+
+	return TRUE;
+}
+
+BOOL CDatabase::InsertServer(std::string name, std::string ip, std::string type, std::string user, std::string password, std::string note)
+{
+	CHECKDB;
+	TCHAR szSql[MAX_PATH] = { 0 };
+	_stprintf_s(szSql, INSER_SERVER, name.c_str(), ip.c_str(), type.c_str(), user.c_str(), password.c_str(), note.c_str());
+	if (0 != mysql_query(m_pConn, szSql)) {
+#ifdef _DEBUG
+		TRACE1(_T("InsertServer error=%s\n"), m_pError ? m_pError : "");
+#endif
+		return FALSE;
+	}
+
+	return TRUE;
+}
+
+BOOL CDatabase::DeleteServer(std::string name)
+{
+	CHECKDB;
+	TCHAR szSql[MAX_PATH] = { 0 };
+	_stprintf_s(szSql, DEL_SERVER, name.c_str());
+	if (0 != mysql_query(m_pConn, szSql)) {
+#ifdef _DEBUG
+		TRACE1(_T("DeleteServer error=%s\n"), m_pError ? m_pError : "");
+#endif
+		return FALSE;
+	}
+
+	return TRUE;
+}
+
+BOOL CDatabase::UpdateServer(std::string name, const STServer& Server)
+{
+	CHECKDB;
+	TCHAR szSql[MAX_PATH] = { 0 };
+	_stprintf_s(szSql, MOD_SERVER, name.c_str(), Server.name.c_str(), Server.ip.c_str(), Server.type.c_str(), Server.user.c_str(), Server.password.c_str(), Server.note.c_str());
+	if (0 != mysql_query(m_pConn, szSql)) {
+#ifdef _DEBUG
+		TRACE1(_T("UpdateServer error=%s\n"), m_pError ? m_pError : "");
+#endif
+		return FALSE;
+	}
+
+	return TRUE;
+}
+
+BOOL CDatabase::QueryServer(std::vector<STServer>& vtServer)
+{
+	CHECKDB;
+	if (0 != mysql_query(m_pConn, QUERY_SERVER)) {
+#ifdef _DEBUG
+		TRACE1(_T("QueryServer error=%s\n"), m_pError ? m_pError : "");
+#endif
+		return FALSE;
+	}
+
+	// 获取表数据;
+	MYSQL_RES* pData = mysql_store_result(m_pConn);
+	if (pData == NULL) {
+#ifdef _DEBUG
+		TRACE1(_T("QueryServer error=%s\n"), m_pError ? m_pError : "");
+#endif
+		return FALSE;
+	}
+
+#ifdef _DEBUG
+	// 统计表字段;
+	unsigned int nLen = mysql_num_fields(pData);
+	// 字段长度是否一致;
+	if (nLen != 6) {
+		mysql_free_result(pData);
+		return FALSE;
+	}
+
+	// 打印出字段名称;
+	TCHAR szLog[MAX_PATH] = { 0 };
+	for (int i = 0; i < nLen; i++) {
+		_stprintf_s(szLog, _T("字段名称:%s\n"), mysql_fetch_field(pData)->name);
+		OutputDebugString(szLog);
+	}
+#endif
+
+	// 遍历数据;
+	MYSQL_ROW row;
+	while ((row = mysql_fetch_row(pData)) != NULL) {
+		STServer server;
+		server.name = row[0];
+		server.ip = row[1];
+		server.type = row[2];
+		server.user = row[3];
+		server.password = row[4];
+		server.note = row[5];
+		vtServer.push_back(server);
+	}
+
+	// 释放内存;
+	mysql_free_result(pData);
+
 	return TRUE;
 }

+ 9 - 0
CTSManager/CTSManager/Database.h

@@ -38,12 +38,21 @@ public:
 	BOOL InsertBrand(std::string name, std::string note);
 	BOOL DeleteBrand(std::string name);
 	BOOL UpdateBrand(std::string name, const STBranch& brand);
+	BOOL QueryBrand(std::vector<STBranch>& vtBrand);
 
 	// ¼¾¶È±í;
 	BOOL InsertQuarter(const STQuarter& quarter);
 	BOOL InsertQuarter(std::string name, std::string scp, std::string note);
 	BOOL DeleteQuarter(std::string name);
 	BOOL UpdateQuarter(std::string name, const STQuarter& quarter);
+	BOOL QueryQuarter(std::vector<STQuarter>& vtQuarter);
+
+	// ·þÎñÆ÷±í;
+	BOOL InsertServer(const STServer& Server);
+	BOOL InsertServer(std::string name, std::string ip, std::string type, std::string user, std::string password, std::string note);
+	BOOL DeleteServer(std::string name);
+	BOOL UpdateServer(std::string name, const STServer& Server);
+	BOOL QueryServer(std::vector<STServer>& vtServer);
 };
 
 #endif

+ 9 - 1
CTSManager/CTSManager/table.h

@@ -4,7 +4,7 @@
 #pragma once
 
 #include <string>
-
+// 插入数据;
 #define INSER_PROVIDER _T("INSERT INTO `provider` (`name`,`note`) VALUES ('%s', '%s');")
 #define INSER_QUARTER _T("INSERT INTO `quarter` (`name`,`scp`,`note`) VALUES ('%s', '%s', '%s');")
 #define INSER_BRAND _T("INSERT INTO `brand` (`name`,`note`,``) VALUES ('%s', '%s');")
@@ -16,15 +16,23 @@
  VALUES ('%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s');")
 #define INSER_LOG _T("INSERT INTO `log` (`user`,`datetime`,`content`) VALUES ('%s', 'datetime', '%s');")
 
+// 删除数据;
 #define DEL_PROVIDER _T("DELETE FROM `provider` WHERE `name` = '%s';")
 #define DEL_BRAND _T("DELETE FROM `brand` WHERE `name` = '%s';")
 #define DEL_QUARTER _T("DELETE FROM `quarter` where `name` = '%s';")
+#define DEL_SERVER _T("DELETE FROM `server` where `name` = '%s';")
 
+// 更新数据;
 #define MOD_PROVIDER _T("UPDATE `provider` SET `name`='%s',`note`='%s' WHERE `name`='%s';")
 #define MOD_BRAND _T("UPDATE `brand` SET `name`='%s',`note`='%s' WHERE `name`='%s';")
 #define MOD_QUARTER _T("UPDATE `quarter` SET `name`='%s', `scp` = '%s' ,`note`='%s' WHERE `name`='%s';")
+#define MOD_SERVER _T("UPDATE `server` SET `name`='%s', `ip` = '%s', `type`='%s', `user`='%s', `password`='%s', `note`='%s' WHERE `name`='%s';")
 
+// 查询数据;
 #define QUERY_PROVIDER _T("SELECT `name`, `note` FROM `provider`;")
+#define QUERY_BRAND _T("SELECT `name`, `note` FROM `brand`;")
+#define QUERY_QUARTER _T("SELECT `name`,`scp`, `note` FROM `quarter`;")
+#define QUERY_SERVER _T("SELECT `name`, `ip`, `type`, `user`, `password`, `note`;")
 
 // 供应商表;
 typedef struct {