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 -------------------------------------------------------------------------*/
36 #ifndef vtkMySQLDatabase_h
37 #define vtkMySQLDatabase_h
38 
39 #include "vtkIOMySQLModule.h" // For export macro
40 #include "vtkSQLDatabase.h"
41 
42 class vtkSQLQuery;
43 class vtkMySQLQuery;
44 class vtkStringArray;
46 
47 class VTKIOMYSQL_EXPORT vtkMySQLDatabase : public vtkSQLDatabase
48 {
49 
50  friend class vtkMySQLQuery;
51 
52 public:
54  void PrintSelf(ostream& os, vtkIndent indent) override;
55  static vtkMySQLDatabase *New();
56 
62  bool Open( const char* password = 0 ) override;
63 
67  void Close() override;
68 
72  bool IsOpen() override;
73 
77  vtkSQLQuery* GetQueryInstance() override;
78 
82  vtkStringArray* GetTables() override;
83 
87  vtkStringArray* GetRecord(const char *table) override;
88 
92  bool IsSupported(int feature) override;
93 
97  bool HasError() override;
98 
102  const char* GetLastErrorText() override;
103 
105 
108  const char* GetDatabaseType() override
109  {
110  return this->DatabaseType;
111  }
113 
115 
118  vtkSetStringMacro(HostName);
119  vtkGetStringMacro(HostName);
121 
123 
126  vtkSetStringMacro(User);
127  vtkGetStringMacro(User);
129 
131 
134  vtkSetStringMacro(Password);
136 
138 
141  vtkSetStringMacro(DatabaseName);
142  vtkGetStringMacro(DatabaseName);
144 
146 
151  vtkSetMacro(Reconnect,int);
152  vtkGetMacro(Reconnect,int);
153  vtkBooleanMacro(Reconnect,int);
155 
157 
160  vtkSetClampMacro(ServerPort, int, 0, VTK_INT_MAX);
161  vtkGetMacro(ServerPort, int);
163 
167  vtkStdString GetURL() override;
168 
175  vtkStdString GetTablePreamble( bool b ) override { return b ? vtkStdString() :"IF NOT EXISTS "; }
176 
189  int tblHandle,
190  int colHandle ) override;
191 
203  int tblHandle,
204  int idxHandle,
205  bool& skipped ) override;
206 
211  bool CreateDatabase( const char* dbName, bool dropExisting );
212 
217  bool DropDatabase( const char* dbName );
218 
224  bool ParseURL(const char* url) override;
225 
226 protected:
228  ~vtkMySQLDatabase();
229 
230 private:
231  // We want this to be private, a user of this class
232  // should not be setting this for any reason
233  vtkSetStringMacro(DatabaseType);
234 
235  vtkStringArray *Tables;
236  vtkStringArray *Record;
237 
238  char* DatabaseType;
239  char* HostName;
240  char* User;
241  char* Password;
242  char* DatabaseName;
243  int ServerPort;
244  int Reconnect;
245 
246  vtkMySQLDatabasePrivate* const Private;
247 
248  vtkMySQLDatabase(const vtkMySQLDatabase &) = delete;
249  void operator=(const vtkMySQLDatabase &) = delete;
250 };
251 
252 #endif // vtkMySQLDatabase_h
253 
Wrapper around std::string to keep symbols short.
Definition: vtkStdString.h:34
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:33
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:68
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.