00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00030 #ifndef __vtkQtSQLDatabase_h
00031 #define __vtkQtSQLDatabase_h
00032
00033
00034 #include <qglobal.h>
00035 #if (QT_EDITION & QT_MODULE_SQL)
00036
00037 #include "QVTKWin32Header.h"
00038 #include "vtkSQLDatabase.h"
00039
00040 #include <QtSql/QSqlDatabase>
00041
00042 class vtkSQLQuery;
00043 class vtkStringArray;
00044
00045 class QVTK_EXPORT vtkQtSQLDatabase : public vtkSQLDatabase
00046 {
00047 public:
00048 static vtkQtSQLDatabase* New();
00049 vtkTypeMacro(vtkQtSQLDatabase, vtkSQLDatabase);
00050 void PrintSelf(ostream& os, vtkIndent indent);
00051
00055 virtual bool Open(const char* password);
00056
00058 virtual void Close();
00059
00061 virtual bool IsOpen();
00062
00064 virtual vtkSQLQuery* GetQueryInstance();
00065
00067 vtkStringArray* GetTables();
00068
00070 vtkStringArray* GetRecord(const char *table);
00071
00075 vtkStringArray* GetColumns();
00076
00080 void SetColumnsTable(const char* table);
00081
00083 virtual bool IsSupported(int feature);
00084
00086 bool HasError();
00087
00089 const char* GetLastErrorText();
00090
00092
00093 vtkGetStringMacro(DatabaseType);
00094 vtkSetStringMacro(DatabaseType);
00096
00098
00099 vtkSetStringMacro(HostName);
00100 vtkGetStringMacro(HostName);
00102
00104
00105 vtkSetStringMacro(UserName);
00106 vtkGetStringMacro(UserName);
00108
00110
00111 vtkSetStringMacro(DatabaseName);
00112 vtkGetStringMacro(DatabaseName);
00114
00116
00117 vtkSetStringMacro(ConnectOptions);
00118 vtkGetStringMacro(ConnectOptions);
00120
00122
00123 vtkSetClampMacro(Port, int, 0, VTK_INT_MAX);
00124 vtkGetMacro(Port, int);
00126
00131 static vtkSQLDatabase* CreateFromURL( const char* URL );
00132
00134 virtual vtkStdString GetURL();
00135
00136
00137 protected:
00138 vtkQtSQLDatabase();
00139 ~vtkQtSQLDatabase();
00140
00141 char* DatabaseType;
00142 char* HostName;
00143 char* UserName;
00144 char* DatabaseName;
00145 int Port;
00146 char* ConnectOptions;
00147
00148 QSqlDatabase QtDatabase;
00149
00150 friend class vtkQtSQLQuery;
00151
00155 virtual bool ParseURL(const char* url);
00156 private:
00157
00158
00159
00160 vtkStringArray *myTables;
00161
00162
00163
00164
00165 vtkStringArray *currentRecord;
00166
00167
00168 static int id;
00169
00170 vtkQtSQLDatabase(const vtkQtSQLDatabase &);
00171 void operator=(const vtkQtSQLDatabase &);
00172
00173 };
00174
00175 #endif // (QT_EDITION & QT_MODULE_SQL)
00176 #endif // __vtkQtSQLDatabase_h
00177