43 #ifndef vtkSQLDatabaseSchema_h 
   44 #define vtkSQLDatabaseSchema_h 
   46 #include "vtkIOSQLModule.h"  
   54 #define VTK_SQL_ALLBACKENDS "*" // works for all backends 
   55 #define VTK_SQL_MYSQL "vtkMySQLDatabase" 
   56 #define VTK_SQL_POSTGRESQL "vtkPostgreSQLDatabase" 
   57 #define VTK_SQL_SQLITE "vtkSQLiteDatabase" 
   59 class vtkSQLDatabaseSchemaInternals;
 
  125   virtual int AddPreamble(
 
  131   virtual int AddTable(
const char* tblName);
 
  139   virtual int AddColumnToTable(
 
  140     int tblHandle, 
int colType, 
const char* colName, 
int colSize, 
const char* colAttribs);
 
  142     const char* tblName, 
int colType, 
const char* colName, 
int colSize, 
const char* colAttribs)
 
  144     return this->AddColumnToTable(
 
  145       this->GetTableHandleFromName(tblName), colType, colName, colSize, colAttribs);
 
  155   virtual int AddIndexToTable(
int tblHandle, 
int idxType, 
const char* idxName);
 
  158     return this->AddIndexToTable(this->GetTableHandleFromName(tblName), idxType, idxName);
 
  168   virtual int AddColumnToIndex(
int tblHandle, 
int idxHandle, 
int colHandle);
 
  169   virtual int AddColumnToIndex(
const char* tblName, 
const char* idxName, 
const char* colName)
 
  171     int tblHandle = this->GetTableHandleFromName(tblName);
 
  172     return this->AddColumnToIndex(tblHandle, this->GetIndexHandleFromName(tblName, idxName),
 
  173       this->GetColumnHandleFromName(tblName, colName));
 
  184   virtual int AddTriggerToTable(
int tblHandle, 
int trgType, 
const char* trgName,
 
  189     return this->AddTriggerToTable(
 
  190       this->GetTableHandleFromName(tblName), trgType, trgName, trgAction, trgBackend);
 
  206   virtual int AddOptionToTable(
 
  211     return this->AddOptionToTable(this->GetTableHandleFromName(tblName), optStr, optBackend);
 
  218   int GetPreambleHandleFromName(
const char* preName);
 
  223   const char* GetPreambleNameFromHandle(
int preHandle);
 
  228   const char* GetPreambleActionFromHandle(
int preHandle);
 
  233   const char* GetPreambleBackendFromHandle(
int preHandle);
 
  238   int GetTableHandleFromName(
const char* tblName);
 
  243   const char* GetTableNameFromHandle(
int tblHandle);
 
  248   int GetIndexHandleFromName(
const char* tblName, 
const char* idxName);
 
  253   const char* GetIndexNameFromHandle(
int tblHandle, 
int idxHandle);
 
  258   int GetIndexTypeFromHandle(
int tblHandle, 
int idxHandle);
 
  263   const char* GetIndexColumnNameFromHandle(
int tblHandle, 
int idxHandle, 
int cnmHandle);
 
  268   int GetColumnHandleFromName(
const char* tblName, 
const char* colName);
 
  273   const char* GetColumnNameFromHandle(
int tblHandle, 
int colHandle);
 
  278   int GetColumnTypeFromHandle(
int tblHandle, 
int colHandle);
 
  283   int GetColumnSizeFromHandle(
int tblHandle, 
int colHandle);
 
  288   const char* GetColumnAttributesFromHandle(
int tblHandle, 
int colHandle);
 
  293   int GetTriggerHandleFromName(
const char* tblName, 
const char* trgName);
 
  298   const char* GetTriggerNameFromHandle(
int tblHandle, 
int trgHandle);
 
  303   int GetTriggerTypeFromHandle(
int tblHandle, 
int trgHandle);
 
  308   const char* GetTriggerActionFromHandle(
int tblHandle, 
int trgHandle);
 
  313   const char* GetTriggerBackendFromHandle(
int tblHandle, 
int trgHandle);
 
  318   const char* GetOptionTextFromHandle(
int tblHandle, 
int optHandle);
 
  323   const char* GetOptionBackendFromHandle(
int tblHandle, 
int trgHandle);
 
  333   int GetNumberOfPreambles();
 
  338   int GetNumberOfTables();
 
  343   int GetNumberOfColumnsInTable(
int tblHandle);
 
  348   int GetNumberOfIndicesInTable(
int tblHandle);
 
  353   int GetNumberOfColumnNamesInIndex(
int tblHandle, 
int idxHandle);
 
  358   int GetNumberOfTriggersInTable(
int tblHandle);
 
  363   int GetNumberOfOptionsInTable(
int tblHandle);
 
  369   vtkSetStringMacro(Name);
 
  370   vtkGetStringMacro(Name);
 
  379     INDEX_COLUMN_TOKEN = 65,
 
  380     END_INDEX_TOKEN = 75,
 
  415   int AddTableMultipleArguments(
const char* tblName, ...);
 
  430 #endif // vtkSQLDatabaseSchema_h