1
Fork 0
mirror of https://github.com/SapphireServer/Sapphire.git synced 2025-05-04 09:47:46 +00:00
sapphire/src/servers/Server_Common/Database/Connection.h

103 lines
2.5 KiB
C
Raw Normal View History

#ifndef SAPPHIRE_CONNECTION_H
#define SAPPHIRE_CONNECTION_H
#include <boost/shared_ptr.hpp>
#include <boost/scoped_ptr.hpp>
#include <mysql.h>
#include <map>
2017-09-19 00:02:14 +02:00
namespace Core
{
namespace Db
{
typedef std::map< enum mysql_option, std::string > optionMap;
class MySqlBase;
2017-09-19 00:02:14 +02:00
class Statement;
2017-09-23 23:26:23 +02:00
class PreparedStatement;
class Connection
{
public:
Connection( MySqlBase * pBase,
const std::string& hostName,
const std::string& userName,
const std::string& password,
uint16_t port = 3306);
Connection( MySqlBase * pBase,
const std::string& hostName,
const std::string& userName,
const std::string& password,
const optionMap& options,
uint16_t port = 3306 );
virtual ~Connection();
void close();
2017-09-14 18:49:03 +02:00
bool isClosed() const;
void setOption( enum mysql_option option, const void *arg );
void setOption( enum mysql_option option, uint32_t arg );
void setOption( enum mysql_option option, const std::string& arg );
2017-09-14 18:49:03 +02:00
MySqlBase *getMySqlBase() const;
void setAutoCommit( bool autoCommit );
bool getAutoCommit();
2017-09-19 00:02:14 +02:00
std::string escapeString( const std::string& inData );
void setSchema( const std::string& catalog );
Statement * createStatement();
void beginTransaction();
void commitTransaction();
void rollbackTransaction();
std::string getSchema();
//DatabaseMetaData * getMetaData();
2017-09-19 00:02:14 +02:00
std::string getError();
bool isReadOnly();
void setReadOnly( bool readOnly );
bool isValid();
bool reconnect();
2017-09-23 23:26:23 +02:00
PreparedStatement* prepareStatement( const std::string& sql );
//sql::PreparedStatement * prepareStatement(const sql::SQLString& sql, int autoGeneratedKeys);
//sql::PreparedStatement * prepareStatement(const sql::SQLString& sql, int columnIndexes[]);
//sql::PreparedStatement * prepareStatement(const sql::SQLString& sql, int resultSetType, int resultSetConcurrency);
//sql::PreparedStatement * prepareStatement(const sql::SQLString& sql, sql::SQLString columnNames[]);
//void setTransactionIsolation(enum_transaction_isolation level);
std::string getLastStatementInfo();
MYSQL* getRawCon();
2017-09-19 00:02:14 +02:00
private:
MySqlBase* m_pBase;
MYSQL* m_pRawCon;
bool m_bConnected;
Connection( const Connection& );
void operator=( Connection& );
};
}
}
#endif //SAPPHIRE_CONNECTION_H