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