0593f0edf1a85e554ba193da6156d9700a91fd99
[anna.git] / ResultCode.hpp
1 // ANNA - Anna is Not Nothingness Anymore                                                         //
2 //                                                                                                //
3 // (c) Copyright 2005-2015 Eduardo Ramos Testillano & Francisco Ruiz Rayo                         //
4 //                                                                                                //
5 // See project site at http://redmine.teslayout.com/projects/anna-suite                           //
6 // See accompanying file LICENSE or copy at http://www.teslayout.com/projects/public/anna.LICENSE //
7
8
9 #ifndef anna_dbms_oracle_ResultCode_hpp
10 #define anna_dbms_oracle_ResultCode_hpp
11
12 #include <anna/dbms/ResultCode.hpp>
13
14 struct OCIError;
15
16 namespace anna {
17
18 namespace dbms {
19
20 namespace oracle {
21
22 /**
23    Clase para acceder a la informacion devuelta por el gestor de base de datos
24    referente al ultimo comando realizado.
25  */
26 class ResultCode : public dbms::ResultCode {
27 public:
28   /**
29      Constructor.
30
31      \param status Codigo de resultado de la ultima operacion realizada.
32      \param error Estructura de datos que contiene la informacion adicional sobre el error.
33   */
34   explicit ResultCode(const int status, OCIError* error);
35
36 private:
37   class ErrorDecoder : public dbms::ResultCode::ErrorDecoder {
38     bool notFound(const int errorCode) const ;
39     bool successful(const int errorCode) const ;
40     bool locked(const int errorCode) const { return errorCode == 54; }
41     bool lostConnection(const int errorCode) const ;
42   };
43
44   static ErrorDecoder st_errorDecoder;
45 };
46
47 }
48 }
49 }
50
51 #endif
52