Prüfungsamt-Projekt
1.0.0
|
00001 // ########################################################################## 00002 // #### #### 00003 // #### Prüfungsamt-Client #### 00004 // #### ============================ #### 00005 // #### #### 00006 // #### Datenbank-Verbindung #### 00007 // #### #### 00008 // #### Version 1.00 -- 12. Juli 2000 #### 00009 // #### #### 00010 // #### Copyright (C) 2000 Thomas Dreibholz #### 00011 // #### Universität Bonn #### 00012 // #### EMail: dreibh@iem.uni-due.de #### 00013 // #### WWW: https://www.nntb.no/~dreibh #### 00014 // #### #### 00015 // ########################################################################## 00016 00017 00018 #ifndef SQL_CONNECTION_H 00019 #define SQL_CONNECTION_H 00020 00021 00022 #include "system.h" 00023 #include "sqlconnectioninterface.h" 00024 00025 00026 #ifdef DEBUG 00027 #undef DEBUG 00028 #endif 00029 #include <libpq++.h> 00030 00031 00039 class SQLConnection : virtual public SQLConnectionInterface 00040 { 00041 // ====== Constructor ==================================================== 00048 public: 00049 SQLConnection(PgDatabase* database, SQLMonitorInterface* monitor = NULL); 00050 00051 00052 // ====== Transaktionsbefehle ============================================ 00058 void beginTransaction(); 00059 00065 void commitTransaction(); 00066 00072 void rollbackTransaction(); 00073 00074 00075 // ====== Befehl ausführen =============================================== 00081 void execute(const char* command); 00082 00083 00084 // ====== Cursor-Befehle ================================================= 00090 void createCursor(const char* cursorName, const char* command); 00091 00097 void fetchCursor(const char* cursorName, const char* what); 00098 00104 void deleteCursor(const char* cursorName); 00105 00111 cardinal getTuples(); 00112 00118 cardinal getFields(); 00119 00125 const char* getField(cardinal col); 00126 00132 const char* getValue(cardinal row, cardinal col); 00133 00139 void optimize(const char* tableName); 00140 00141 00142 // ====== SQL-Monitor-Befehle ============================================ 00148 SQLMonitorInterface* getMonitor() const; 00149 00155 void setMonitor(SQLMonitorInterface* monitor); 00156 00157 00158 // ====== Private Daten ================================================== 00159 private: 00160 bool executeCommandOk(const char* command); 00161 bool executeTuplesOk(const char* command); 00162 00163 00164 PgDatabase* Database; 00165 SQLMonitorInterface* Monitor; 00166 bool Transaction; 00167 }; 00168 00169 00170 #endif