00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024 #ifndef RESOURCEPOOL_ORACLE_SQLSELECT_HH
00025 #define RESOURCEPOOL_ORACLE_SQLSELECT_HH
00026
00027 #ifndef RESOURCEPOOL_ORACLE_SQLSELECTROW_HH
00028 #include "SQLSelectRow.hh"
00029 #endif
00030
00031 namespace fatalmind {
00032 namespace oracle {
00033
00037 template<class TM, template<class> class SLMDC>
00038 class SQLSelect
00039 : public SQLSelectRow<TM, SLMDC>
00040 {
00041 typedef SQLSelectRow<TM, SLMDC> super;
00042 protected:
00043 using super::_SQL;
00044 using super::_slb;
00045 using super::fetcher;
00046 public:
00047 SQLSelect(const SQL::SQLStatement& SQL, SQL::SQLFetcher& fetcher);
00048 SQLSelect(const ResourcePool<ResourceType<TM> >& p, const SQL::SQLStatement& SQL, SQL::SQLFetcher& fetcher);
00049 SQLSelect(const SQLSelect&);
00050 virtual ~SQLSelect();
00051
00052 using super::execute;
00053 protected:
00054 virtual Clone* DoClone() const {
00055 return new SQLSelect<TM, SLMDC>(*this);
00056 }
00057 void _execute(oracleResource<TM>&, StatementCache&);
00058 virtual const std::string& getCommandName() const;
00059 static const std::string _SQLSelectName;
00060 };
00061
00062 }
00063 }
00064 #endif