VTK  9.4.20250207
vtkODBCDatabase.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
4
57#ifndef vtkODBCDatabase_h
58#define vtkODBCDatabase_h
59
60#include "vtkIOODBCModule.h" // For export macro
61#include "vtkSQLDatabase.h"
62
63VTK_ABI_NAMESPACE_BEGIN
64class vtkSQLQuery;
65class vtkODBCQuery;
66class vtkStringArray;
68
69class VTKIOODBC_EXPORT vtkODBCDatabase : public vtkSQLDatabase
70{
71
72 friend class vtkODBCQuery;
73
74public:
76 void PrintSelf(ostream& os, vtkIndent indent) override;
78
84 bool Open(const char* password) override;
85
89 void Close() override;
90
94 bool IsOpen() override;
95
100
104 const char* GetLastErrorText() override;
105
110
114 vtkStringArray* GetRecord(const char* table) override;
115
119 bool IsSupported(int feature) override;
120
122
127 vtkSetStringMacro(DataSourceName);
128 vtkGetStringMacro(DataSourceName);
130
131 vtkSetMacro(ServerPort, int);
132 vtkSetStringMacro(HostName);
133 vtkSetStringMacro(UserName);
134 vtkSetStringMacro(DatabaseName);
135 vtkGetStringMacro(DatabaseName);
136 vtkSetStringMacro(Password);
137
138 bool HasError() override;
139
141
144 const char* GetDatabaseType() override { return this->DatabaseType; }
146
148
157 vtkSQLDatabaseSchema* schema, int tblHandle, int colHandle) override;
158
164 vtkSQLDatabaseSchema* schema, int tblHandle, int idxHandle, bool& skipped) override;
165
170 bool CreateDatabase(const char* dbName, bool dropExisting);
171
176 bool DropDatabase(const char* dbName);
177
183 bool ParseURL(const char* url) override;
184
185protected:
188
189 vtkSetStringMacro(LastErrorText);
190
191private:
192 vtkStringArray* Tables;
193 vtkStringArray* Record;
194
195 char* LastErrorText;
196
197 char* HostName;
198 char* UserName;
199 char* Password;
200 char* DataSourceName;
201 char* DatabaseName;
202 int ServerPort;
203
204 vtkODBCInternals* Internals;
205
206 // We want this to be private, a user of this class
207 // should not be setting this for any reason
208 vtkSetStringMacro(DatabaseType);
209
210 char* DatabaseType;
211
212 vtkODBCDatabase(const vtkODBCDatabase&) = delete;
213 void operator=(const vtkODBCDatabase&) = delete;
214};
215
216VTK_ABI_NAMESPACE_END
217#endif // vtkODBCDatabase_h
a simple class to control print indentation
Definition vtkIndent.h:108
maintain an ODBC connection to a SQL database
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.
bool DropDatabase(const char *dbName)
Drop a database if it exists.
const char * GetLastErrorText() override
Get the last error text from the database.
vtkStringArray * GetRecord(const char *table) override
Get the list of fields for a particular table.
vtkStringArray * GetTables() override
Get the list of tables from the database.
vtkSQLQuery * GetQueryInstance() override
Return an empty query on this database.
bool HasError() override
Did the last operation generate an error.
vtkStdString GetURL() override
Get the URL of the database.
bool Open(const char *password) override
Open a new connection to the database.
const char * GetDatabaseType() override
String representing database type (e.g.
bool CreateDatabase(const char *dbName, bool dropExisting)
Create a new database, optionally dropping any existing database of the same name.
~vtkODBCDatabase() override
bool IsSupported(int feature) override
Return whether a feature is supported by the database.
bool ParseURL(const char *url) override
This will only handle URLs of the form odbc://[user@]datsourcename[:port]/[dbname].
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
void Close() override
Close the connection to the database.
bool IsOpen() override
Return whether the database has an open connection.
vtkStdString GetIndexSpecification(vtkSQLDatabaseSchema *schema, int tblHandle, int idxHandle, bool &skipped) override
Return the SQL string with the syntax to create an index inside a "CREATE TABLE" SQL statement.
static vtkODBCDatabase * New()
Simple class to hide ODBC structures.
vtkSQLQuery implementation for ODBC connections to databases
represent an SQL database schema
maintain a connection to an sql database
executes an sql query and retrieves results
Definition vtkSQLQuery.h:60
Wrapper around std::string to keep symbols short.
a vtkAbstractArray subclass for strings