summaryrefslogtreecommitdiff
path: root/libsqlitepp/selectcommand.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'libsqlitepp/selectcommand.cpp')
-rw-r--r--libsqlitepp/selectcommand.cpp83
1 files changed, 0 insertions, 83 deletions
diff --git a/libsqlitepp/selectcommand.cpp b/libsqlitepp/selectcommand.cpp
deleted file mode 100644
index a79b031..0000000
--- a/libsqlitepp/selectcommand.cpp
+++ /dev/null
@@ -1,83 +0,0 @@
-#include "selectcommand.h"
-#include "connection.h"
-#include "error.h"
-#include <string.h>
-#include <boost/multi_index_container.hpp>
-#include <boost/multi_index/ordered_index.hpp>
-
-namespace SQLite {
- class Column : public DB::Column {
- public:
- Column(const Glib::ustring & n, unsigned int i, sqlite3_stmt * s) :
- DB::Column(n, i),
- stmt(s)
- {
- }
-
- bool isNull() const {
- return (SQLITE_NULL == sqlite3_column_type(stmt, colNo));
- }
-
- void apply(DB::HandleField & h) const {
- switch (sqlite3_column_type(stmt, colNo)) {
- case SQLITE_INTEGER:
- h.integer(sqlite3_column_int64(stmt, colNo));
- return;
- case SQLITE_FLOAT:
- h.floatingpoint(sqlite3_column_double(stmt, colNo));
- return;
- case SQLITE_TEXT:
- {
- auto t = sqlite3_column_text(stmt, colNo);
- auto l = sqlite3_column_bytes(stmt, colNo);
- h.string(reinterpret_cast<const char *>(t), l);
- return;
- }
- case SQLITE_NULL:
- h.null();
- return;
- case SQLITE_BLOB:
- throw std::runtime_error("Blobs not supported");
- }
- }
-
- void rebind(DB::Command*, unsigned int) const {
- throw std::runtime_error("Not implemented");
- }
-
- private:
- sqlite3_stmt * const stmt;
- };
-}
-
-SQLite::SelectCommand::SelectCommand(const Connection * conn, const std::string & sql) :
- DB::Command(sql),
- DB::SelectCommand(sql),
- SQLite::Command(conn, sql)
-{
-}
-
-void
-SQLite::SelectCommand::execute()
-{
- // No explicit execute required
-}
-
-bool
-SQLite::SelectCommand::fetch()
-{
- switch (sqlite3_step(stmt)) {
- case SQLITE_ROW:
- if (columns->empty()) {
- for (int c = sqlite3_data_count(stmt) - 1; c >= 0; c -= 1) {
- insertColumn(DB::ColumnPtr(new Column(sqlite3_column_name(stmt, c), c, stmt)));
- }
- }
- return true;
- case SQLITE_DONE:
- return false;
- default:
- throw Error(sqlite3_errmsg(c->db));
- }
-}
-