VTK  9.3.20240328
vtkODBCQuery.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
18 #ifndef vtkODBCQuery_h
19 #define vtkODBCQuery_h
20 
21 #include "vtkIOODBCModule.h" // For export macro
22 #include "vtkSQLQuery.h"
23 
24 VTK_ABI_NAMESPACE_BEGIN
25 class vtkODBCDatabase;
26 class vtkVariant;
27 class vtkVariantArray;
28 class vtkODBCInternals;
29 class vtkODBCQueryInternals;
30 
31 class VTKIOODBC_EXPORT vtkODBCQuery : public vtkSQLQuery
32 {
33 
34  friend class vtkODBCDatabase;
35 
36 public:
37  vtkTypeMacro(vtkODBCQuery, vtkSQLQuery);
38  void PrintSelf(ostream& os, vtkIndent indent) override;
39  static vtkODBCQuery* New();
40 
46  bool Execute() override;
47 
51  int GetNumberOfFields() override;
52 
56  const char* GetFieldName(int i) override;
57 
61  int GetFieldType(int i) override;
62 
66  bool NextRow() override;
67 
71  bool HasError() override;
72 
77 
81  const char* GetLastErrorText() override;
82 
84 
87  bool BeginTransaction() override;
88  bool CommitTransaction() override;
89  bool RollbackTransaction() override;
91 
93 
98  bool SetQuery(const char* queryString) override;
99  const char* GetQuery() override;
101 
111  bool BindParameter(int index, unsigned char value) override;
112  bool BindParameter(int index, signed char value) override;
113  bool BindParameter(int index, unsigned short value) override;
114  bool BindParameter(int index, signed short value) override;
115  bool BindParameter(int index, unsigned int value) override;
116 
117  bool BindParameter(int index, int value) override;
118 
119  bool BindParameter(int index, unsigned long value) override;
120  bool BindParameter(int index, signed long value) override;
121  bool BindParameter(int index, unsigned long long value) override;
122  bool BindParameter(int index, long long value) override;
123 
124  bool BindParameter(int index, float value) override;
125  bool BindParameter(int index, double value) override;
129  bool BindParameter(int index, const char* stringValue) override;
131 
134  bool BindParameter(int index, const char* stringValue, size_t length) override;
135  bool BindParameter(int index, const vtkStdString& string) override;
138 
143  bool BindParameter(int index, const void* data, size_t length) override;
144  bool ClearParameterBindings() override;
146 
147 protected:
149  ~vtkODBCQuery() override;
150 
151  vtkSetStringMacro(LastErrorText);
152  vtkSetStringMacro(QueryText);
153  vtkGetStringMacro(QueryText);
154 
155  char* QueryText;
156 
157 private:
158  vtkODBCQuery(const vtkODBCQuery&) = delete;
159  void operator=(const vtkODBCQuery&) = delete;
160 
161  void ClearCurrentRow();
162  bool CacheCurrentRow();
163 
164  bool CacheTimeColumn(int column);
165  bool CacheIntervalColumn(int column);
166  bool CacheCharColumn(int column);
167  bool CacheLongLongColumn(int column);
168  bool CacheBinaryColumn(int column);
169  bool CacheBooleanColumn(int column);
170  bool CacheStringColumn(int column);
171  bool CacheWideStringColumn(int column);
172  bool CacheDecimalColumn(int column);
173  bool CacheNumericColumn(int column);
174  bool CacheIntColumn(int column);
175  bool CacheFloatColumn(int column);
176  bool CacheDoubleColumn(int column);
177 
178  vtkODBCQueryInternals* Internals;
179  bool InitialFetch;
180  char* LastErrorText;
181 };
182 
183 VTK_ABI_NAMESPACE_END
184 #endif // vtkODBCQuery_h
a simple class to control print indentation
Definition: vtkIndent.h:108
maintain an ODBC connection to a SQL database
friend class vtkODBCQuery
Simple class to hide ODBC structures.
vtkSQLQuery implementation for ODBC connections to databases
Definition: vtkODBCQuery.h:32
bool BindParameter(int index, int value) override
bool BindParameter(int index, unsigned short value) override
bool HasError() override
Return true if there is an error on the current query.
bool BindParameter(int index, float value) override
bool BindParameter(int index, double value) override
bool BindParameter(int index, signed char value) override
bool BindParameter(int index, unsigned long value) override
const char * GetLastErrorText() override
Get the last error text from the query.
int GetFieldType(int i) override
Return the type of the field, using the constants defined in vtkType.h.
bool BindParameter(int index, long long value) override
bool BeginTransaction() override
Begin, commit, or roll back a transaction.
static vtkODBCQuery * New()
const char * GetFieldName(int i) override
Return the name of the specified query field.
bool BindParameter(int index, unsigned long long value) override
bool CommitTransaction() override
Begin, commit, or roll back a transaction.
bool BindParameter(int index, const char *stringValue) override
Bind a string value – string must be null-terminated.
bool BindParameter(int index, signed short value) override
~vtkODBCQuery() override
const char * GetQuery() override
Set the query string to be used.
bool BindParameter(int index, unsigned char value) override
Bind a parameter to a placeholder in a query.
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
bool Execute() override
Execute the query.
bool ClearParameterBindings() override
Bind a blob value.
bool BindParameter(int index, unsigned int value) override
bool SetQuery(const char *queryString) override
Set the query string to be used.
bool BindParameter(int index, const vtkStdString &string) override
Bind a string value by specifying an array and a size.
bool RollbackTransaction() override
Begin, commit, or roll back a transaction.
bool BindParameter(int index, const char *stringValue, size_t length) override
Bind a string value by specifying an array and a size.
vtkVariant DataValue(vtkIdType c) override
Return data in current row, field c.
bool NextRow() override
Advance row, return false if past end.
char * QueryText
Definition: vtkODBCQuery.h:153
int GetNumberOfFields() override
The number of fields in the query result.
bool BindParameter(int index, const void *data, size_t length) override
Bind a blob value.
bool BindParameter(int index, signed long value) override
executes an sql query and retrieves results
Definition: vtkSQLQuery.h:60
virtual bool BindParameter(int index, unsigned char value)
Bind a parameter to a placeholder in a query.
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
@ length
Definition: vtkX3D.h:393
@ value
Definition: vtkX3D.h:220
@ index
Definition: vtkX3D.h:246
@ data
Definition: vtkX3D.h:315
int vtkIdType
Definition: vtkType.h:315