File: vtkPostgreSQLQuery.h

package info (click to toggle)
paraview 4.0.1-1~bpo70%2B1
  • links: PTS, VCS
  • area: main
  • in suites: wheezy-backports
  • size: 526,572 kB
  • sloc: cpp: 2,284,430; ansic: 816,374; python: 239,936; xml: 70,162; tcl: 48,295; fortran: 39,116; yacc: 5,466; java: 3,518; perl: 3,107; lex: 1,620; sh: 1,555; makefile: 932; asm: 471; pascal: 228
file content (130 lines) | stat: -rw-r--r-- 3,769 bytes parent folder | download | duplicates (4)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
/*=========================================================================

  Program:   Visualization Toolkit
  Module:    vtkPostgreSQLQuery.h

  Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
  All rights reserved.
  See Copyright.txt or http://www.kitware.com/Copyright.htm for details.

     This software is distributed WITHOUT ANY WARRANTY; without even
     the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
     PURPOSE.  See the above copyright notice for more information.

=========================================================================*/
/*-------------------------------------------------------------------------
  Copyright 2008 Sandia Corporation.
  Under the terms of Contract DE-AC04-94AL85000 with Sandia Corporation,
  the U.S. Government retains certain rights in this software.
-------------------------------------------------------------------------*/
// .NAME vtkPostgreSQLQuery - vtkSQLQuery implementation for PostgreSQL databases
//
// .SECTION Description
//
// This is an implementation of vtkSQLQuery for PostgreSQL databases.  See
// the documentation for vtkSQLQuery for information about what the
// methods do.
//
// .SECTION Thanks
//
// Thanks to David Thompson and Andy Wilson from Sandia National
// Laboratories for implementing this class.
//
// .SECTION See Also
// vtkSQLDatabase vtkSQLQuery vtkPostgreSQLDatabase

#ifndef __vtkPostgreSQLQuery_h
#define __vtkPostgreSQLQuery_h

#include "vtkIOPostgreSQLModule.h" // For export macro
#include "vtkSQLQuery.h"

class vtkPostgreSQLDatabase;
class vtkVariant;
class vtkVariantArray;
class vtkPostgreSQLQueryPrivate;

class VTKIOPOSTGRESQL_EXPORT vtkPostgreSQLQuery : public vtkSQLQuery
{
public:
  static vtkPostgreSQLQuery* New();
  void PrintSelf( ostream& os, vtkIndent indent );
  vtkTypeMacro(vtkPostgreSQLQuery, vtkSQLQuery);

  // Description:
  // Execute the query.  This must be performed
  // before any field name or data access functions
  // are used.
  bool Execute();

  // Description:
  // The number of fields in the query result.
  int GetNumberOfFields();

  // Description:
  // Return the name of the specified query field.
  const char* GetFieldName( int i );

  // Description:
  // Return the type of the field, using the constants defined in vtkType.h.
  int GetFieldType( int i );

  // Description:
  // Advance row, return false if past end.
  bool NextRow();

  // Description:
  // Return true if there is an error on the current query.
  bool HasError();

  // Description:
  // Begin, abort (roll back), or commit a transaction.
  bool BeginTransaction();
  bool RollbackTransaction();
  bool CommitTransaction();

  // Description:
  // Return data in current row, field c
  vtkVariant DataValue( vtkIdType c );

  // Description:
  // Get the last error text from the query
  const char* GetLastErrorText();

  // Description:
  // Escape a string for inclusion into an SQL query
  virtual vtkStdString EscapeString( vtkStdString s, bool addSurroundingQuotes = true );

  // Description:
  // Unlike some databases, Postgres can tell you right away how many
  // rows are in the results of your query.
  int GetNumberOfRows();

protected:
  vtkPostgreSQLQuery();
  ~vtkPostgreSQLQuery();

  vtkSetStringMacro(LastErrorText);

  bool IsColumnBinary(int whichColumn);
  const char *GetColumnRawData(int whichColumn);

  bool TransactionInProgress;
  char *LastErrorText;
  int CurrentRow;

  vtkPostgreSQLQueryPrivate *QueryInternals;

  void DeleteQueryResults();

  //BTX
  friend class vtkPostgreSQLDatabase;
  //ETX

private:
  vtkPostgreSQLQuery( const vtkPostgreSQLQuery& ); // Not implemented.
  void operator = ( const vtkPostgreSQLQuery& ); // Not implemented.
};

#endif // __vtkPostgreSQLQuery_h