00001 /*========================================================================= 00002 00003 Program: Visualization Toolkit 00004 Module: $RCSfile: vtkPostgreSQLQuery.h,v $ 00005 00006 Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen 00007 All rights reserved. 00008 See Copyright.txt or http://www.kitware.com/Copyright.htm for details. 00009 00010 This software is distributed WITHOUT ANY WARRANTY; without even 00011 the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR 00012 PURPOSE. See the above copyright notice for more information. 00013 00014 =========================================================================*/ 00015 /*------------------------------------------------------------------------- 00016 Copyright 2008 Sandia Corporation. 00017 Under the terms of Contract DE-AC04-94AL85000 with Sandia Corporation, 00018 the U.S. Government retains certain rights in this software. 00019 -------------------------------------------------------------------------*/ 00041 #ifndef __vtkPostgreSQLQuery_h 00042 #define __vtkPostgreSQLQuery_h 00043 00044 #include "vtkSQLQuery.h" 00045 00046 class vtkPostgreSQLDatabase; 00047 class vtkVariant; 00048 class vtkVariantArray; 00049 class vtkPostgreSQLQueryPrivate; 00050 00051 class VTK_IO_EXPORT vtkPostgreSQLQuery : public vtkSQLQuery 00052 { 00053 public: 00054 static vtkPostgreSQLQuery* New(); 00055 void PrintSelf( ostream& os, vtkIndent indent ); 00056 vtkTypeRevisionMacro(vtkPostgreSQLQuery, vtkSQLQuery); 00057 00060 bool Execute(); 00061 00063 int GetNumberOfFields(); 00064 00066 const char* GetFieldName( int i ); 00067 00070 int GetFieldType( int i ); 00071 00073 bool NextRow(); 00074 00076 bool HasError(); 00077 00079 00080 bool BeginTransaction(); 00081 bool RollbackTransaction(); 00082 bool CommitTransaction(); 00084 00085 //BTX 00087 00088 vtkVariant DataValue( vtkIdType c ); 00089 //ETX 00091 00093 const char* GetLastErrorText(); 00094 00095 //BTX 00097 00098 virtual vtkStdString EscapeString( vtkStdString s, bool addSurroundingQuotes = true ); 00099 //ETX 00101 00102 protected: 00103 vtkPostgreSQLQuery(); 00104 ~vtkPostgreSQLQuery(); 00105 00106 void SetLastErrorText( const char* msg ); 00107 00108 vtkPostgreSQLQueryPrivate* Transactor; 00109 00110 //BTX 00111 friend class vtkPostgreSQLDatabase; 00112 //ETX 00113 00114 private: 00115 vtkPostgreSQLQuery( const vtkPostgreSQLQuery& ); // Not implemented. 00116 void operator = ( const vtkPostgreSQLQuery& ); // Not implemented. 00117 }; 00118 00119 #endif // __vtkPostgreSQLQuery_h 00120