Nebula
Loading...
Searching...
No Matches
sqlite3table.h
Go to the documentation of this file.
1#pragma once
2#ifndef DB_SQLITE3TABLE_H
3#define DB_SQLITE3TABLE_H
4//------------------------------------------------------------------------------
12#include "db/table.h"
13
14//------------------------------------------------------------------------------
15namespace Db
16{
17class Command;
18
19class Sqlite3Table : public Table
20{
22public:
26 virtual ~Sqlite3Table();
27
29 virtual void Connect(const Ptr<Database>& db, ConnectMode connectMode, bool ignoreUnknownColumn);
31 virtual void Disconnect(bool dropTable);
32 // create a complex multicolumn index on a connected table
33 virtual void CreateMultiColumnIndex(const Util::Array<Attr::AttrId>& columnIds);
35 virtual void BindValueTable(const Ptr<ValueTable>& valueTable);
37 virtual void UnbindValueTable();
38
40 virtual void SetName(const Util::String& n);
42 virtual void CommitChanges(bool resetModifiedState, bool useTransaction);
44 virtual void CommitUncommittedColumns();
46 virtual void CommitDeletedRows();
47
48private:
49 friend class Sqlite3Database;
50
52 bool TableExists();
54 void DropTable();
56 void CreateTable();
58 void ReadTableLayout(bool ignoreUnknownColumns);
60 Util::String BuildColumnDef(const Column& column);
74 void BindValueToCommand(const Ptr<Command>& cmd, IndexT wildcardIndex, IndexT valueTableColIndex, IndexT valueTableRowIndex);
75
79
80 // static string fragments for string construction (prevents excessive string object construction)
83 static const Util::String CommaFrag;
88 static const Util::String SetFrag;
90 static const Util::String TickFrag;
92 static const Util::String RealFrag;
93 static const Util::String TextFrag;
94 static const Util::String BlobFrag;
95 static const Util::String WhereFrag;
97};
98
99} // namespace Db
100//------------------------------------------------------------------------------
101#endif
102
Describes a column in a database table.
Definition column.h:23
SQLite3 implementation of Db::Database.
Definition sqlite3database.h:38
Definition sqlite3table.h:20
static const Util::String DeleteFromFrag
Definition sqlite3table.h:96
static const Util::String BlobFrag
Definition sqlite3table.h:94
static const Util::String ValuesFrag
Definition sqlite3table.h:84
void CompileInsertCommand()
(re)compile the INSERT SQL command
Definition sqlite3table.cc:594
static const Util::String SetFrag
Definition sqlite3table.h:88
void ReadTableLayout(bool ignoreUnknownColumns)
read the database table columns
Definition sqlite3table.cc:219
void DropTable()
drop database table
Definition sqlite3table.cc:106
Ptr< Command > updateCommand
Definition sqlite3table.h:77
virtual void CommitChanges(bool resetModifiedState, bool useTransaction)
commit any changes
Definition sqlite3table.cc:417
virtual void UnbindValueTable()
unbind current value table from the table object, commits any changes to the database
Definition sqlite3table.cc:397
static const Util::String InsertIntoFrag
Definition sqlite3table.h:81
virtual void Connect(const Ptr< Database > &db, ConnectMode connectMode, bool ignoreUnknownColumn)
connect the table object with a database
Definition sqlite3table.cc:318
virtual void CommitDeletedRows()
commit deleted rows only
Definition sqlite3table.cc:559
static const Util::String WhereFrag
Definition sqlite3table.h:95
static const Util::String UpdateFrag
Definition sqlite3table.h:87
virtual void BindValueTable(const Ptr< ValueTable > &valueTable)
bind a value table to the table object, unbinds previous table
Definition sqlite3table.cc:382
Ptr< Command > deleteCommand
Definition sqlite3table.h:78
static const Util::String IntegerFrag
Definition sqlite3table.h:91
virtual void Disconnect(bool dropTable)
disconnect the table from a database
Definition sqlite3table.cc:366
Ptr< Command > insertCommand
Definition sqlite3table.h:76
__DeclareClass(Sqlite3Table)
void CompileUpdateCommand()
(re)compile the UPDATE SQL command
Definition sqlite3table.cc:647
bool TableExists()
return true if database table exist
Definition sqlite3table.cc:88
static const Util::String AssignWildcardFrag
Definition sqlite3table.h:89
virtual void SetName(const Util::String &n)
set name of table
Definition sqlite3table.cc:69
Sqlite3Table()
constructor
Definition sqlite3table.cc:41
static const Util::String WildcardFrag
Definition sqlite3table.h:85
static const Util::String CloseBracketFrag
Definition sqlite3table.h:86
void ExecuteInsertCommand()
execute the pre-compiled INSERT command for each new row
Definition sqlite3table.cc:792
void BindValueToCommand(const Ptr< Command > &cmd, IndexT wildcardIndex, IndexT valueTableColIndex, IndexT valueTableRowIndex)
bind a value from the value table to a wildcard of a compiled command
Definition sqlite3table.cc:743
virtual void CreateMultiColumnIndex(const Util::Array< Attr::AttrId > &columnIds)
This method creates a multicolumn index on the table.
Definition sqlite3table.cc:925
void CreateTable()
create database table
Definition sqlite3table.cc:166
static const Util::String RealFrag
Definition sqlite3table.h:92
void ExecuteUpdateCommand()
execute the pre-compiled UPDATE command for each modified row
Definition sqlite3table.cc:835
static const Util::String TickFrag
Definition sqlite3table.h:90
virtual void CommitUncommittedColumns()
commit uncommitted columns only
Definition sqlite3table.cc:516
static const Util::String CommaFrag
Definition sqlite3table.h:83
void CompileDeleteCommand()
(re)compile the DELETE SQL command
Definition sqlite3table.cc:712
void ExecuteDeleteCommand()
execute the pre-compiled DELETE command for each deleted row
Definition sqlite3table.cc:887
Util::String BuildColumnDef(const Column &column)
build a column definition SQL fragment
Definition sqlite3table.cc:123
static const Util::String TextFrag
Definition sqlite3table.h:93
virtual ~Sqlite3Table()
destructor
Definition sqlite3table.cc:54
static const Util::String OpenBracketFrag
Definition sqlite3table.h:82
Describes a table in a database, or more abstract, a set of typed columns grouped under a common name...
Definition table.h:34
Ptr< ValueTable > valueTable
Definition table.h:114
ConnectMode
connection modes
Definition table.h:39
Nebula's smart pointer class which manages the life time of RefCounted objects.
Definition ptr.h:38
Nebula's dynamic array class.
Definition array.h:60
Definition column.cc:10
Nebula's universal string class.
Definition string.h:50
int IndexT
Definition types.h:48