added sqlite connection class (progress)
This commit is contained in:
+12
-21
@@ -1,39 +1,30 @@
|
||||
#include <utility>
|
||||
|
||||
#include "matador/sql/connection.hpp"
|
||||
|
||||
namespace matador::sql {
|
||||
|
||||
connection::connection(std::string dns)
|
||||
: dns_(std::move(dns)) {}
|
||||
|
||||
connection::connection()
|
||||
: query_(dialect_) {}
|
||||
|
||||
query_create_intermediate connection::create()
|
||||
void connection::open()
|
||||
{
|
||||
return query_create_intermediate{*this, query_.create()};
|
||||
is_open_ = true;
|
||||
}
|
||||
|
||||
query_drop_intermediate connection::drop()
|
||||
void connection::close()
|
||||
{
|
||||
return query_drop_intermediate{*this, query_.drop()};
|
||||
is_open_ = false;
|
||||
}
|
||||
|
||||
query_select_intermediate connection::select(std::initializer_list<std::string> column_names)
|
||||
bool connection::is_open() const
|
||||
{
|
||||
return query_select_intermediate{*this, query_.select(column_names)};
|
||||
return is_open_;
|
||||
}
|
||||
|
||||
query_insert_intermediate connection::insert()
|
||||
const std::string &connection::dns() const
|
||||
{
|
||||
return query_insert_intermediate{*this, query_.insert()};
|
||||
}
|
||||
|
||||
query_update_intermediate connection::update(const std::string &table)
|
||||
{
|
||||
return query_update_intermediate{*this, query_.update(table)};
|
||||
}
|
||||
|
||||
query_delete_intermediate connection::remove()
|
||||
{
|
||||
return query_delete_intermediate{*this, query_.remove()};
|
||||
return dns_;
|
||||
}
|
||||
|
||||
query_result<record> connection::fetch(const std::string &sql)
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
#include "matador/sql/connection_intermediates.hpp"
|
||||
#include "matador/sql/connection.hpp"
|
||||
#include "matador/sql/query_intermediates.hpp"
|
||||
#include "matador/sql/session.hpp"
|
||||
#include "matador/sql/query_builder.hpp"
|
||||
|
||||
namespace matador::sql {
|
||||
connection &query_intermediate::db()
|
||||
session &query_intermediate::db()
|
||||
{
|
||||
return db_;
|
||||
}
|
||||
@@ -23,7 +23,7 @@ record query_select_finish::fetch_one()
|
||||
return db().fetch(query().compile()).begin();
|
||||
}
|
||||
|
||||
query_intermediate::query_intermediate(connection &db, query_builder &query)
|
||||
query_intermediate::query_intermediate(session &db, query_builder &query)
|
||||
: db_(db), query_(query) {}
|
||||
|
||||
query_offset_intermediate query_order_direction_intermediate::offset(size_t offset)
|
||||
@@ -0,0 +1,56 @@
|
||||
#include "matador/sql/session.hpp"
|
||||
|
||||
#include <stdexcept>
|
||||
|
||||
namespace matador::sql {
|
||||
|
||||
session::session(connection_pool<connection> &pool)
|
||||
: pool_(pool)
|
||||
, query_(dialect_) {}
|
||||
|
||||
query_create_intermediate session::create()
|
||||
{
|
||||
return query_create_intermediate{*this, query_.create()};
|
||||
}
|
||||
|
||||
query_drop_intermediate session::drop()
|
||||
{
|
||||
return query_drop_intermediate{*this, query_.drop()};
|
||||
}
|
||||
|
||||
query_select_intermediate session::select(std::initializer_list<std::string> column_names)
|
||||
{
|
||||
return query_select_intermediate{*this, query_.select(column_names)};
|
||||
}
|
||||
|
||||
query_insert_intermediate session::insert()
|
||||
{
|
||||
return query_insert_intermediate{*this, query_.insert()};
|
||||
}
|
||||
|
||||
query_update_intermediate session::update(const std::string &table)
|
||||
{
|
||||
return query_update_intermediate{*this, query_.update(table)};
|
||||
}
|
||||
|
||||
query_delete_intermediate session::remove()
|
||||
{
|
||||
return query_delete_intermediate{*this, query_.remove()};
|
||||
}
|
||||
|
||||
query_result<record> session::fetch(const std::string &sql) {
|
||||
auto c = pool_.acquire();
|
||||
if (!c.valid()) {
|
||||
throw std::logic_error("no database connection available");
|
||||
}
|
||||
return c->fetch(sql);
|
||||
}
|
||||
|
||||
std::pair<size_t, std::string> session::execute(const std::string &sql) {
|
||||
auto c = pool_.acquire();
|
||||
if (!c.valid()) {
|
||||
throw std::logic_error("no database connection available");
|
||||
}
|
||||
return c->execute(sql);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user