VTK  9.3.20240417
vtkPostgreSQLQuery.h
Go to the documentation of this file.
1 // SPDX-FileCopyrightText: Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
2 // SPDX-FileCopyrightText: Copyright 2008 Sandia Corporation
3 // SPDX-License-Identifier: LicenseRef-BSD-3-Clause-Sandia-USGov
23 #ifndef vtkPostgreSQLQuery_h
24 #define vtkPostgreSQLQuery_h
25 
26 #include "vtkIOPostgreSQLModule.h" // For export macro
27 #include "vtkSQLQuery.h"
28 
29 VTK_ABI_NAMESPACE_BEGIN
31 class vtkVariant;
32 class vtkVariantArray;
33 class vtkPostgreSQLQueryPrivate;
34 
35 class VTKIOPOSTGRESQL_EXPORT vtkPostgreSQLQuery : public vtkSQLQuery
36 {
37 public:
39  void PrintSelf(ostream& os, vtkIndent indent) override;
41 
47  bool Execute() override;
48 
52  int GetNumberOfFields() override;
53 
57  const char* GetFieldName(int i) override;
58 
62  int GetFieldType(int i) override;
63 
67  bool NextRow() override;
68 
72  bool HasError() override;
73 
75 
78  bool BeginTransaction() override;
79  bool RollbackTransaction() override;
80  bool CommitTransaction() override;
82 
87 
91  const char* GetLastErrorText() override;
92 
96  vtkStdString EscapeString(vtkStdString s, bool addSurroundingQuotes = true) override;
97 
103 
104 protected:
107 
108  vtkSetStringMacro(LastErrorText);
109 
110  bool IsColumnBinary(int whichColumn);
111  const char* GetColumnRawData(int whichColumn);
112 
116 
117  vtkPostgreSQLQueryPrivate* QueryInternals;
118 
120 
121  friend class vtkPostgreSQLDatabase;
122 
123 private:
124  vtkPostgreSQLQuery(const vtkPostgreSQLQuery&) = delete;
125  void operator=(const vtkPostgreSQLQuery&) = delete;
126 };
127 
128 VTK_ABI_NAMESPACE_END
129 #endif // vtkPostgreSQLQuery_h
a simple class to control print indentation
Definition: vtkIndent.h:108
maintain a connection to a PostgreSQL database
vtkSQLQuery implementation for PostgreSQL databases
vtkStdString EscapeString(vtkStdString s, bool addSurroundingQuotes=true) override
Escape a string for inclusion into an SQL query.
int GetNumberOfFields() override
The number of fields in the query result.
bool HasError() override
Return true if there is an error on the current query.
bool IsColumnBinary(int whichColumn)
const char * GetColumnRawData(int whichColumn)
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
const char * GetLastErrorText() override
Get the last error text from the query.
bool Execute() override
Execute the query.
vtkPostgreSQLQueryPrivate * QueryInternals
int GetFieldType(int i) override
Return the type of the field, using the constants defined in vtkType.h.
static vtkPostgreSQLQuery * New()
bool RollbackTransaction() override
Begin, abort (roll back), or commit a transaction.
int GetNumberOfRows()
Unlike some databases, Postgres can tell you right away how many rows are in the results of your quer...
bool NextRow() override
Advance row, return false if past end.
vtkVariant DataValue(vtkIdType c) override
Return data in current row, field c.
~vtkPostgreSQLQuery() override
bool BeginTransaction() override
Begin, abort (roll back), or commit a transaction.
bool CommitTransaction() override
Begin, abort (roll back), or commit a transaction.
const char * GetFieldName(int i) override
Return the name of the specified query field.
executes an sql query and retrieves results
Definition: vtkSQLQuery.h:60
Wrapper around std::string to keep symbols short.
Definition: vtkStdString.h:78
An array holding vtkVariants.
A type representing the union of many types.
Definition: vtkVariant.h:162
int vtkIdType
Definition: vtkType.h:315