VTK  9.3.20240423
vtkSQLiteDatabase.h
Go to the documentation of this file.
1// SPDX-FileCopyrightText: Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
2// SPDX-FileCopyrightText: Copyright 2008 Sandia Corporation
3// SPDX-License-Identifier: LicenseRef-BSD-3-Clause-Sandia-USGov
36#ifndef vtkSQLiteDatabase_h
37#define vtkSQLiteDatabase_h
38
39#include "vtkIOSQLModule.h" // For export macro
40#include "vtkSQLDatabase.h"
41
42VTK_ABI_NAMESPACE_BEGIN
43class vtkSQLQuery;
44class vtkSQLiteQuery;
45class vtkStringArray;
47
48class VTKIOSQL_EXPORT vtkSQLiteDatabase : public vtkSQLDatabase
49{
50
51 friend class vtkSQLiteQuery;
52
53public:
55 void PrintSelf(ostream& os, vtkIndent indent) override;
57
58 enum
59 {
63 CREATE
64 };
65
67
76 bool Open(const char* password) override;
77 bool Open(const char* password, int mode);
79
83 void Close() override;
84
88 bool IsOpen() override;
89
94
99
103 vtkStringArray* GetRecord(const char* table) override;
104
108 bool IsSupported(int feature) override;
109
113 bool HasError() override;
114
118 const char* GetLastErrorText() override;
119
121
124 const char* GetDatabaseType() override { return this->DatabaseType; }
126
128
131 vtkGetFilePathMacro(DatabaseFileName);
132 vtkSetFilePathMacro(DatabaseFileName);
134
139
149 vtkSQLDatabaseSchema* schema, int tblHandle, int colHandle) override;
150
151protected:
154
160 bool ParseURL(const char* url) override;
161
162private:
164
165 // We want this to be private, a user of this class
166 // should not be setting this for any reason
167 vtkSetStringMacro(DatabaseType);
168
169 vtkStringArray* Tables;
170
171 char* DatabaseType;
172 char* DatabaseFileName;
173
174 vtkStdString TempURL;
175
176 vtkSQLiteDatabase(const vtkSQLiteDatabase&) = delete;
177 void operator=(const vtkSQLiteDatabase&) = delete;
178};
179
180VTK_ABI_NAMESPACE_END
181#endif // vtkSQLiteDatabase_h
a simple class to control print indentation
Definition vtkIndent.h:108
represent an SQL database schema
maintain a connection to an sql database
executes an sql query and retrieves results
Definition vtkSQLQuery.h:60
maintain a connection to an SQLite database
bool Open(const char *password) override
Open a new connection to the database.
bool Open(const char *password, int mode)
Open a new connection to the database.
bool HasError() override
Did the last operation generate an error.
const char * GetDatabaseType() override
String representing database type (e.g.
vtkStringArray * GetTables() override
Get the list of tables from the database.
bool IsOpen() override
Return whether the database has an open connection.
bool ParseURL(const char *url) override
Overridden to determine connection parameters given the URL.
vtkStdString GetColumnSpecification(vtkSQLDatabaseSchema *schema, int tblHandle, int colHandle) override
Return the SQL string with the syntax to create a column inside a "CREATE TABLE" SQL statement.
vtkSetFilePathMacro(DatabaseFileName)
String representing the database filename.
vtkStdString GetURL() override
Get the URL of the database.
bool IsSupported(int feature) override
Return whether a feature is supported by the database.
void Close() override
Close the connection to the database.
const char * GetLastErrorText() override
Get the last error text from the database.
vtkGetFilePathMacro(DatabaseFileName)
String representing the database filename.
~vtkSQLiteDatabase() override
static vtkSQLiteDatabase * New()
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
vtkSQLQuery * GetQueryInstance() override
Return an empty query on this database.
vtkStringArray * GetRecord(const char *table) override
Get the list of fields for a particular table.
vtkSQLQuery implementation for SQLite databases
Wrapper around std::string to keep symbols short.
a vtkAbstractArray subclass for strings