VTK
vtkMySQLDatabase.h
Go to the documentation of this file.
1 /*=========================================================================
2 
3  Program: Visualization Toolkit
4  Module: vtkMySQLDatabase.h
5 
6  Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
7  All rights reserved.
8  See Copyright.txt or http://www.kitware.com/Copyright.htm for details.
9 
10  This software is distributed WITHOUT ANY WARRANTY; without even
11  the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
12  PURPOSE. See the above copyright notice for more information.
13 
14 =========================================================================*/
15 /*-------------------------------------------------------------------------
16  Copyright 2008 Sandia Corporation.
17  Under the terms of Contract DE-AC04-94AL85000 with Sandia Corporation,
18  the U.S. Government retains certain rights in this software.
19 -------------------------------------------------------------------------*/
39 #ifndef vtkMySQLDatabase_h
40 #define vtkMySQLDatabase_h
41 
42 #include "vtkIOMySQLModule.h" // For export macro
43 #include "vtkSQLDatabase.h"
44 
45 class vtkSQLQuery;
46 class vtkMySQLQuery;
47 class vtkStringArray;
49 
50 class VTKIOMYSQL_EXPORT vtkMySQLDatabase : public vtkSQLDatabase
51 {
52 
53  friend class vtkMySQLQuery;
54 
55 public:
57  void PrintSelf(ostream& os, vtkIndent indent) override;
58  static vtkMySQLDatabase *New();
59 
65  bool Open( const char* password = 0 ) override;
66 
70  void Close() override;
71 
75  bool IsOpen() override;
76 
80  vtkSQLQuery* GetQueryInstance() override;
81 
85  vtkStringArray* GetTables() override;
86 
90  vtkStringArray* GetRecord(const char *table) override;
91 
95  bool IsSupported(int feature) override;
96 
100  bool HasError() override;
101 
105  const char* GetLastErrorText() override;
106 
108 
111  const char* GetDatabaseType() override
112  {
113  return this->DatabaseType;
114  }
116 
118 
121  vtkSetStringMacro(HostName);
122  vtkGetStringMacro(HostName);
124 
126 
129  vtkSetStringMacro(User);
130  vtkGetStringMacro(User);
132 
134 
137  vtkSetStringMacro(Password);
139 
141 
144  vtkSetStringMacro(DatabaseName);
145  vtkGetStringMacro(DatabaseName);
147 
149 
154  vtkSetMacro(Reconnect,int);
155  vtkGetMacro(Reconnect,int);
156  vtkBooleanMacro(Reconnect,int);
158 
160 
163  vtkSetClampMacro(ServerPort, int, 0, VTK_INT_MAX);
164  vtkGetMacro(ServerPort, int);
166 
170  vtkStdString GetURL() override;
171 
178  vtkStdString GetTablePreamble( bool b ) override { return b ? vtkStdString() :"IF NOT EXISTS "; }
179 
192  int tblHandle,
193  int colHandle ) override;
194 
206  int tblHandle,
207  int idxHandle,
208  bool& skipped ) override;
209 
214  bool CreateDatabase( const char* dbName, bool dropExisting );
215 
220  bool DropDatabase( const char* dbName );
221 
227  bool ParseURL(const char* url) override;
228 
229 protected:
231  ~vtkMySQLDatabase();
232 
233 private:
234  // We want this to be private, a user of this class
235  // should not be setting this for any reason
236  vtkSetStringMacro(DatabaseType);
237 
238  vtkStringArray *Tables;
239  vtkStringArray *Record;
240 
241  char* DatabaseType;
242  char* HostName;
243  char* User;
244  char* Password;
245  char* DatabaseName;
246  int ServerPort;
247  int Reconnect;
248 
249  vtkMySQLDatabasePrivate* const Private;
250 
251  vtkMySQLDatabase(const vtkMySQLDatabase &) = delete;
252  void operator=(const vtkMySQLDatabase &) = delete;
253 };
254 
255 #endif // vtkMySQLDatabase_h
256 
Wrapper around std::string to keep symbols short.
Definition: vtkStdString.h:40
virtual vtkStdString GetColumnSpecification(vtkSQLDatabaseSchema *schema, int tblHandle, int colHandle)
Return the SQL string with the syntax to create a column inside a "CREATE TABLE" SQL statement...
virtual bool IsSupported(int vtkNotUsed(feature))
Return whether a feature is supported by the database.
#define VTK_INT_MAX
Definition: vtkType.h:159
virtual bool Open(const char *password)=0
Open a new connection to the database.
virtual bool ParseURL(const char *url)=0
Subclasses should override this method to determine connection parameters given the URL...
virtual bool HasError()=0
Did the last operation generate an error.
a vtkAbstractArray subclass for strings
virtual vtkStdString GetURL()=0
Get the URL of the database.
represent an SQL database schema
virtual vtkStringArray * GetRecord(const char *table)=0
Get the list of fields for a particular table.
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
maintain a connection to a MySQL database
maintain a connection to an sql database
friend class vtkMySQLDatabase
Definition: vtkMySQLQuery.h:50
virtual void Close()=0
Close the connection to the database.
virtual vtkStdString GetIndexSpecification(vtkSQLDatabaseSchema *schema, int tblHandle, int idxHandle, bool &skipped)
Return the SQL string with the syntax to create an index inside a "CREATE TABLE" SQL statement...
a simple class to control print indentation
Definition: vtkIndent.h:39
virtual vtkSQLQuery * GetQueryInstance()=0
Return an empty query on this database.
virtual bool IsOpen()=0
Return whether the database has an open connection.
virtual const char * GetLastErrorText()=0
Get the last error text from the database I'm using const so that people do NOT use the standard vtkG...
vtkStdString GetTablePreamble(bool b) override
Return the SQL string with the syntax of the preamble following a "CREATE TABLE" SQL statement...
executes an sql query and retrieves results
Definition: vtkSQLQuery.h:74
const char * GetDatabaseType() override
String representing database type (e.g.
vtkSQLQuery implementation for MySQL databases
Definition: vtkMySQLQuery.h:47
static vtkObject * New()
Create an object with Debug turned off, modified time initialized to zero, and reference counting on...
virtual vtkStringArray * GetTables()=0
Get the list of tables from the database.