64,635
社区成员
发帖
与我相关
我的任务
分享
#ifdef MYSQL_EXPORTS
#define MYSQL_API __declspec(dllexport)
#else
#define MYSQL_API __declspec(dllimport)
#endif
#ifdef SQLSERVER_EXPORTS
#define MYSQL_API __declspec(dllexport)
#else
#define MYSQL_API __declspec(dllimport)
#endif
.h
#ifdef MYSQL_EXPORTS
#define MYSQL_API __declspec(dllexport)
#else
#define MYSQL_API __declspec(dllimport)
#endif
#include <WinSock2.h>
#include <iostream>
#include <string>
#include <list>
#include <tuple>
#include "mysql.h"
using namespace std;
#pragma comment(lib, "libmysql.lib")
#pragma warning(disable:4267)
#define cstring const string
enum PCM_PRODUCT
{
LOGIN,
PASSWORD,
PHONE
};
class MYSQL_API CSqlObject
{
public:
CSqlObject();
virtual ~CSqlObject();
public:
string GetErrorDesc();
int GetErrorID();
bool Connect(__in string szIpAddr, __in unsigned int unPort,
__in string szUser, __in string szPass, __in string szDatabase);
bool Command(__in string szComm);
virtual bool Result(__out string **pOutBuf, __out int *pNum, __in string symbol = "\t");
int Encrypt(__inout char* pInOut, __in int len);
int Decrypt(__inout char* pInOut, __in int len);
int RecordMemoryAddr(__in const char* pString, __in int len, __out char** pOut);
int ReductionMemoryAddr(__in const char* pInHex, __in int len, __out char** pOut);
tuple<int, string*> Split(__in string Value, __in string symbol);
protected:
MYSQL *m_pMySQL;
int m_nErrorID;
};
class MYSQL_API CSQLPcm : public CSqlObject
{
public:
CSQLPcm(cstring _user = "");
inline cstring GetUser()const;
inline void SetUser(cstring _user);
public:
list<void*>* Result(PCM_PRODUCT Pro);
list<void*>* Select(PCM_PRODUCT Pro, cstring _cszWhileValue = "");
list<void*>* Select(PCM_PRODUCT Pro, void* _pPhone);
bool Add(PCM_PRODUCT Pro, void* _pPhone);
bool Update(PCM_PRODUCT Pro, void* _pPhone1, void* _pPhone2);
bool Delete(PCM_PRODUCT Pro, void* _pPhone);
private:
string m_szUserId;
};
.cpp
#include "stdafx.h"
#include "CMySQL.h"
#include <queue>
using namespace std;
CSqlObject::CSqlObject()
:m_nErrorID(0)
, m_pMySQL(new MYSQL){}
CSqlObject::~CSqlObject(){}
bool CSqlObject::Connect(__in string szIpAddr, __in unsigned int unPort,
__in string szUser, __in string szPass, __in string szDatabase){return true;}
bool CSqlObject::Command(__in string szComm){return true;}
bool CSqlObject::Result(__out string **pOutBuf, __out int *pNum, __in string symbol){return true;}
string CSqlObject::GetErrorDesc(){return "";}
int CSqlObject::GetErrorID(){return 0;}
tuple<int, string*> CSqlObject::Split(__in string Value, __in string symbol){return make_tuple(0, (string*)NULL);}
int CSqlObject::Encrypt(char* pInOut, int len){return 0;}
int CSqlObject::Decrypt(char* pInOut, int len){return 0;}
int CSqlObject::RecordMemoryAddr(const char* pString, int len, char** pOut){return 0;}
int CSqlObject::ReductionMemoryAddr(const char* pInHex, int len, char** pOut){return 0;}
//////////////////////////////////////////////////////////
CSQLPcm::CSQLPcm(cstring _user)
:m_szUserId(_user){}
cstring CSQLPcm::GetUser()const{return "";}
void CSQLPcm::SetUser(cstring _user){}
list<void*>* CSQLPcm::Result(PCM_PRODUCT Pro){return NULL;}
list<void*>* CSQLPcm::Select(PCM_PRODUCT Pro, cstring _cszWhileValue){return NULL;}
list<void*>* CSQLPcm::Select(PCM_PRODUCT Pro, void* Param){return NULL;}
bool CSQLPcm::Add(PCM_PRODUCT Pro, void* Param){return true;}
bool CSQLPcm::Update(PCM_PRODUCT Pro, void* Param1, void* Param2){return true;}
bool CSQLPcm::Delete(PCM_PRODUCT Pro, void* Param){return true;}