Pārlūkot izejas kodu

设置bold字段数据:可插入图片;

sat23 4 gadi atpakaļ
vecāks
revīzija
4cc02822d3

+ 14 - 1
CTSManager/CTSManager/CTSManager.cpp

@@ -130,7 +130,7 @@ BOOL CCTSManagerApp::InitInstance()
 	CDatabase db;
 	if (db.Init(_STR_HOST_, _STR_USER_, _STR_PASSWD_, _STR_DBNAME_))
 	{
-		db.InserSoc(_T("RT2851C"), _T("RealTealk"), _T("RTK台湾"));
+		/*db.InserSoc(_T("RT2851C"), _T("RealTealk"), _T("RTK台湾"));
 		db.InserSoc(_T("RT2851M"), _T("RealTealk2"), _T("RTK台湾"));
 		std::vector<STSOC> vtSOC;
 		db.QuerySoc(vtSOC);
@@ -139,7 +139,20 @@ BOOL CCTSManagerApp::InitInstance()
 			TRACE3(_T("name=%s, provider=%s, note=%s\n"), it->name.c_str(),it->provider.c_str(), it->note.c_str());
 			it->note = _T("xxxx1111xxx");
 			db.UpdateSoc(it->name, *it);
+		}*/
+
+		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();
 		}
+
+		db.SetBinaryField("update brand set logo = ? where `name`='SCBC'", pImage, dwLength);
 	}
 #endif
 

+ 11 - 2
CTSManager/CTSManager/Database.cpp

@@ -19,13 +19,17 @@ BOOL CDatabase::SetBinaryField(std::string strCondition, void* pDataIn, int nDat
 {
 	CHECKDB;
 	MYSQL_STMT* stmt = NULL;
+	stmt = mysql_stmt_init(m_pConn);
+	if (!stmt)
+		return FALSE;
+
 	if (!mysql_stmt_prepare(stmt, strCondition.c_str(), strCondition.length()))
 	{
 		MYSQL_BIND bind;
 		memset(&bind, 0, sizeof(MYSQL_BIND));
 		bind.buffer_type = MYSQL_TYPE_BLOB;
-		(*bind.length) = nDataLen;	// Êä³öµÄ³¤¶È;
-		memcpy(bind.buffer, pDataIn, nDataLen);
+		bind.buffer_length = nDataLen;
+		bind.buffer = pDataIn;
 		if (!mysql_stmt_bind_param(stmt, (MYSQL_BIND*)&bind))
 		{
 			if (!mysql_stmt_execute(stmt))
@@ -38,6 +42,11 @@ BOOL CDatabase::SetBinaryField(std::string strCondition, void* pDataIn, int nDat
 	return FALSE;
 }
 
+BOOL CDatabase::GetBinaryField(std::string strCondition, void** lpDataOut, int& nDataLen)
+{
+	return 0;
+}
+
 BOOL CDatabase::Init(std::string host, std::string user, std::string password, std::string db)
 {
 	if (!m_pConn)

+ 3 - 2
CTSManager/CTSManager/Database.h

@@ -53,9 +53,10 @@ private:
 
 		return pImage;
 	}
-
-	BOOL SetBinaryField(std::string strCondition, void* pDataIn, int nDataLen);
 public:
+	BOOL SetBinaryField(std::string strCondition, void* pDataIn, int nDataLen);
+	BOOL GetBinaryField(std::string strCondition, void** lpDataOut, int &nDataLen);
+
 	// ³õʼ»¯Á¬½Ó;
 	BOOL Init(std::string host, std::string user, std::string password, std::string db);
 	// Ö´ÐÐÓï¾ä;