123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104 |
- #ifndef __DATABASE_20201102__
- #define __DATABASE_20201102__
- #pragma once
- #include "table.h"
- class CDatabase
- {
- public:
- CDatabase();
- ~CDatabase();
- protected:
- private:
- MYSQL* m_pConn;
- BOOL m_bConnected;
- const char* m_pError;
- std::string m_strUser;
- std::string m_strPassword;
- std::string m_strHost;
- static char* m_spImage;
- // 该函数只能单线程使用;
- static char* ConvertBinaryToString(MYSQL *pConn, std::string file)
- {
- if (m_spImage != NULL)
- delete[]m_spImage;
- m_spImage = NULL;
- if (!PathFileExists(file.c_str()))
- return NULL;
- FILE* pf = NULL;
- if (0 != fopen_s(&pf, file.c_str(), _T("rb")))
- return NULL;
- if (pf == NULL)
- return NULL;
- fseek(pf, 0, SEEK_END);
- long nlen = ftell(pf);
- fseek(pf, 0, SEEK_SET);
- byte *pData = new byte[nlen];
- fread(pData, nlen, 1, pf);
- fclose(pf);
- m_spImage = new char[nlen + 10];
- mysql_real_escape_string(pConn, m_spImage, (char*)pData, nlen);
- if (pData)
- delete[]pData;
- return m_spImage;
- }
- public:
- BOOL SetBinaryField(std::string strCondition, void* pDataIn, int nDataLen);
- BOOL GetBinaryField(std::string strCondition, void** lpDataOut, unsigned long &nDataLen);
- // 初始化连接;
- BOOL Init(std::string host, std::string user, std::string password, std::string db);
- // 执行语句;
- BOOL ExcuteSQL(std::string sql);
- // 供应商表;
- BOOL InserProvider(const STProvider& provider);
- BOOL InserProvider(std::string name, std::string note);
- BOOL DeleteProvider(std::string name);
- BOOL UpdateProvider(std::string name, const STProvider &provider);
- BOOL QueryProvider(std::vector<STProvider>& vtProvider);
- // 机芯表;
- BOOL InserSoc(const STSOC& soc);
- BOOL InserSoc(std::string name, std::string provider, std::string note);
- BOOL DeleteSoc(std::string name);
- BOOL UpdateSoc(std::string name, const STSOC& soc);
- BOOL QuerySoc(std::vector<STSOC>& vtSoc);
- // 品牌表;
- BOOL InsertBrand(const STBranch& brand);
- 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);
- // 导入/导出品牌logo;
- BOOL ImportLogo(std::string name, std::string file);
- BOOL ExportLogo(std::string name, std::string file);
- // 季度表;
- 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
|