statement_impl::statement_impl(prepare_temp_type const & prep) : session_(prep.get_prepare_info()->session_), refCount_(1), row_(0), fetchSize_(1), alreadyDescribed_(false) { backEnd_ = session_.make_statement_backend(); ref_counted_prepare_info * prepInfo = prep.get_prepare_info(); // take all bind/define info intos_.swap(prepInfo->intos_); uses_.swap(prepInfo->uses_); // allocate handle alloc(); // prepare the statement query_ = prepInfo->get_query(); try { prepare(query_); } catch(...) { clean_up(); throw; } define_and_bind(); }
statement_imp::statement_imp (prepare_temp_type const& prep) : m_session (prep.get_prepare_info().m_session) , m_stmt (0) , m_bReady (false) , m_bGotData (false) { ref_counted_prepare_info& rcpi = prep.get_prepare_info(); m_intos.swap (rcpi.m_intos); m_uses.swap (rcpi.m_uses); prepare (rcpi.get_query()); }
procedure_impl::procedure_impl(prepare_temp_type const & prep) : statement_impl(prep.get_prepare_info()->session_), refCount_(1) { ref_counted_prepare_info * prepInfo = prep.get_prepare_info(); // take all bind/define info intos_.swap(prepInfo->intos_); uses_.swap(prepInfo->uses_); // allocate handle alloc(); // prepare the statement prepare(rewrite_for_procedure_call(prepInfo->get_query())); define_and_bind(); }