Платформы корпоративных информационных систем

         

Заголовок класса Connection



Пример 13-3. Заголовок класса Connection

#ifndef l_connection_h
#define l_connection_h

#include <sys/time.h>

#if defined(HAS_MSQL)
#include <msql. h>
#lelif defined(HAS_MYSQL)
#include <mysql.h>
#endif

#include "result.h"

class Connection { private:



int affected_rows;
#if defined(HAS_MSQL)

int connection;
#elif defined(HAS_MYSQL)

MYSQL mysql;

MYSQL 'connection; tfelse

#error База данных не определена,
#endif

public:

Connection(char *, char *);
Connection(char *, char *, char *, char *);
~Connection();

void Close();

void Connect(char 'host, char *db, char *uid, char *pw);
int GetAffectedRows();
char. *GetError();
int IsConnected();
Result *Query(char *);
};

#endif // l_connection_h

Методы, которые предоставляет класс Connection, одинаковы вне зависимости от используемой СУБД. Однако спрятанными в глубине класса окажутся закрытые члены, специфичные для той библиотеки, с которой он будет компилироваться. При установлении соединения единственными различными данными-членами станут те, которые представляют соединение с базой данных. Как отмечалось, mSQL для представления соединения использует величину типа int, a MySQL использует указатель на MYSQL и дополнительную величину типа MYSQL для установления соединения.



Содержание раздела