ComSDK
 Указатель Классы Пространства имен Функции Переменные Определения типов Перечисления Элементы перечислений Друзья Группы Страницы
postgresql_backend.h
1 //===========================================================================
2 #ifndef comfrm_PostgresqlBackendH
3 #define comfrm_PostgresqlBackendH
4 //===========================================================================
5 // Заготовка модуля PostgresqlBackend была сгенерирована специальным средством RAD разработки SA2-DE.
6 // Все права защищены. (2015)
7 //
8 // В данном файле представлен исходный текст основного заголовочного файла модуля.
9 //
10 // В данном файле представлен паттерн интерфейса класса.
11 // Описание класса:
12 // Абстрактный класс, описывающий интерфейс Action Item'а
13 // ======================================= //
14 // Параметры новой разработки.
15 // ======================================= //
16 // Имя комплекса: GCAD (gcd)
17 // Имя решения: GCAD_2 (gc3)
18 // Имя проекта: Client (cli)
19 // Полный SID: cligc3
20 // Время создания: 16:26:48
21 // Дата создания: 2015-10-10
22 // ======================================= //
23 // ============================================================================================ //
24 // Параметры ревизии(версии):
25 // ============================================================================================ //
26 // [prd]Period: 10/2015
27 // [aut]Author: Антон Першин
28 // [did]DeveloperID: ap
29 // [pid]ProblemID: 00001
30 // [rvs = did.date.pid]Revision: //#ap.2015-10-10.00001
31 // [dsc]Description: Класс, реализующий работу с PostgreSQL
32 // [ccm]CodeComment: rvs.{[s]Start | [e]End | []}{[n]New | [o]Old | [d]Develop}
33 // ============================================================================================ //
34 
35 //========================================================================
36 // ДОПОЛНИТЕЛЬНЫЕ ПОДКЛЮЧЕНИЯ (Типы и модули, необходимые для .h - файла)
37 //------------------------------------------------------------------------
38 #include "database_backend.h"
39 #include "libtools.h"
40 #include "sqltable.h"
41 
42 #include <postgresql/libpq-fe.h>
43 
44 #include <map>
45 
46 //========================================================================
47 namespace com {
48  namespace db {
49  class MAC_DLLEXPORT PostgresqlBackend : public DatabaseBackend
50  {
51  public:
53  virtual ~PostgresqlBackend(){}
54 
55  virtual void setDatabaseData(const std::string& p_host, unsigned short p_port, const std::string& p_db);
56  virtual ErrorCode addConnection(const std::string& p_user, const std::string& p_psw);
57  virtual bool isConnected(const std::string& p_user) const;
58  virtual void disconnect(const std::string& p_user);
59  virtual ErrorCode executeRequest(const std::string& p_user, const std::string& p_request, com::sql::SqlTable& o_table);
60  virtual ErrorCode retrieveTable(const std::string& p_user, const std::string& p_schema, const std::string& p_tableName,
61  com::sql::SqlTable& o_table);
62 
63  private:
64  ErrorCode connect(const std::string& p_connStr, const std::string& p_user);
65  inline PGconn* getConnObject(const std::string& p_user);
66  com::sql::SqlTable::ValueType convertFromOID(int p_OID);
67 
68  private:
69  std::string m_host;
70  unsigned short m_port;
71  std::string m_dbName;
72  std::map< std::string, PGconn* > m_connections;
73  };
74  }
75 }
76 //===========================================================================
77 #endif
78 //===========================================================================
79 
Модель SQL-таблицы
Definition: sqltable.h:132
ValueType
Тип значение колонки
Definition: sqltable.h:148
Интерфейс для работы с базой данных СУБД
Definition: database_backend.h:63
Definition: postgresql_backend.h:49
ErrorCode
Тип ошибок при работе с СУБД
Definition: database_backend.h:69