1//============================================================================
2//
3// SSSS tt lll lll
4// SS SS tt ll ll
5// SS tttttt eeee ll ll aaaa
6// SSSS tt ee ee ll ll aa
7// SS tt eeeeee ll ll aaaaa -- "An Atari 2600 VCS Emulator"
8// SS SS tt ee ll ll aa aa
9// SSSS ttt eeeee llll llll aaaaa
10//
11// Copyright (c) 1995-2019 by Bradford W. Mott, Stephen Anthony
12// and the Stella Team
13//
14// See the file "License.txt" for information on usage and redistribution of
15// this file, and for a DISCLAIMER OF ALL WARRANTIES.
16//============================================================================
17
18#ifndef SQLITE_STATEMENT_HXX
19#define SQLITE_STATEMENT_HXX
20
21#include <sqlite3.h>
22
23#include "bspf.hxx"
24
25class SqliteStatement {
26 public:
27
28 SqliteStatement(sqlite3* handle, string sql);
29
30 ~SqliteStatement();
31
32 operator sqlite3_stmt*() const { return myStmt; }
33
34 SqliteStatement& bind(int index, const string& value);
35
36 bool step() const;
37
38 void reset() const;
39
40 string columnText(int index) const;
41
42 private:
43
44 sqlite3_stmt* myStmt;
45
46 sqlite3* myHandle;
47
48 private:
49
50 SqliteStatement() = delete;
51 SqliteStatement(const SqliteStatement&) = delete;
52 SqliteStatement(SqliteStatement&&) = delete;
53 SqliteStatement& operator=(const SqliteStatement&) = delete;
54 SqliteStatement& operator=(SqliteStatement&&) = delete;
55};
56
57#endif // SQLITE_STATEMENT_HXX
58