Main Page
Modules
Namespaces
Classes
Files
File List
File Members
PreparedQuery.h
Go to the documentation of this file.
1
/* Copyright (C) 2008 National Institute For Space Research (INPE) - Brazil.
2
3
This file is part of the TerraLib - a Framework for building GIS enabled applications.
4
5
TerraLib is free software: you can redistribute it and/or modify
6
it under the terms of the GNU Lesser General Public License as published by
7
the Free Software Foundation, either version 3 of the License,
8
or (at your option) any later version.
9
10
TerraLib is distributed in the hope that it will be useful,
11
but WITHOUT ANY WARRANTY; without even the implied warranty of
12
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13
GNU Lesser General Public License for more details.
14
15
You should have received a copy of the GNU Lesser General Public License
16
along with TerraLib. See COPYING. If not, write to
17
TerraLib Team at <terralib-team@terralib.org>.
18
*/
19
20
/*!
21
\file terralib/postgis/PreparedQuery.h
22
23
\brief A class that implements a prepared query for PostgreSQL data access driver.
24
*/
25
26
#ifndef __TERRALIB_POSTGIS_INTERNAL_PREPAREDQUERY_H
27
#define __TERRALIB_POSTGIS_INTERNAL_PREPAREDQUERY_H
28
29
// TerraLib
30
#include "../dataaccess/datasource/PreparedQuery.h"
31
#include "
Config.h
"
32
33
// Forward delcarations for libpq
34
extern
"C"
35
{
36
struct
pg_conn;
37
typedef
struct
pg_conn
PGconn
;
38
39
struct
pg_result;
40
typedef
struct
pg_result
PGresult
;
41
}
42
43
namespace
te
44
{
45
// Forward declarations
46
namespace
da
47
{
48
class
DataSetType;
49
}
50
51
namespace
pgis
52
{
53
// Forward declarations
54
class
Transactor;
55
56
/*!
57
\class PreparedQuery
58
59
\brief A class that implements a prepared query for PostgreSQL data access driver.
60
61
\note Some general notes:
62
- bind doesn't need to set length for fixed-size types.
63
64
\note Review pending bind methods (raster, date, array, ...).
65
66
\note We need a numeric type by tomorrow!
67
*/
68
class
TEPGISEXPORT
PreparedQuery
:
public
te::da::PreparedQuery
69
{
70
public
:
71
72
PreparedQuery
(
Transactor
* t,
const
std::string& pqname);
73
74
~
PreparedQuery
();
75
76
std::string getName()
const
;
77
78
void
prepare(
const
te::da::Query
& query,
const
std::vector<te::dt::Property*>& paramTypes);
79
80
void
prepare(
const
std::string& query,
const
std::vector<te::dt::Property*>& paramTypes);
81
82
void
execute();
83
84
te::da::DataSet
* query(
te::common::TraverseType
travType =
te::common::FORWARDONLY
,
85
te::common::AccessPolicy
rwRole =
te::common::RAccess
);
86
87
void
bind(
int
i,
char
value);
88
89
void
bind(
int
i,
unsigned
char
value);
90
91
void
bind(
int
i, boost::int16_t value);
92
93
void
bind(
int
i, boost::int32_t value);
94
95
void
bind(
int
i, boost::int64_t value);
96
97
void
bind(
int
i,
bool
value);
98
99
void
bind(
int
i,
float
value);
100
101
void
bind(
int
i,
double
value);
102
103
void
bindNumeric(
int
i,
const
std::string& value);
104
105
void
bind(
int
i,
const
std::string& value);
106
107
void
bind(
int
i,
const
te::dt::ByteArray
& value);
108
109
void
bind(
int
i,
const
te::gm::Geometry
& value);
110
111
void
bind(
int
i,
const
te::rst::Raster
& value);
112
113
void
bind(
int
i,
const
te::dt::DateTime
& value);
114
115
void
bind(
int
i,
const
te::da::DataSet
& value);
116
117
void
bind(
int
i,
const
te::dt::AbstractData
& ad);
118
119
te::da::DataSourceTransactor
* getTransactor()
const
;
120
121
/*!
122
\note PostgeSQL driver extended method.
123
*/
124
void
prepare(
const
std::string& query,
const
std::vector<int>& paramTypes);
125
126
/*!
127
\note PostgeSQL driver extended method.
128
*/
129
void
bind(
const
std::vector<std::size_t>& propertiesPos, std::size_t offset,
te::da::DataSet
* d);
130
131
/*!
132
\note PostgeSQL driver extended method.
133
*/
134
void
bind(
const
std::vector<std::size_t>& propertiesPos,
te::da::DataSet
* d);
135
136
/*!
137
\note PostgeSQL driver extended method.
138
*/
139
void
bind(
te::da::DataSet
* d);
140
141
/*!
142
\note PostgeSQL driver extended method.
143
*/
144
void
clear();
145
146
private
:
147
148
Transactor
*
m_t
;
149
PGconn
*
m_conn
;
150
PGresult
*
m_result
;
151
char
**
m_paramValues
;
152
int
*
m_paramLengths
;
153
int
*
m_paramFormats
;
154
std::size_t
m_nparams
;
155
std::string
m_qname
;
156
};
157
158
}
// end namespace pgis
159
}
// end namespace te
160
161
162
#endif // __TERRALIB_POSTGIS_INTERNAL_PREPAREDQUERY_H
te::da::PreparedQuery
A class that model a prepared query.
Definition:
PreparedQuery.h:69
te::pgis::PreparedQuery::m_paramValues
char ** m_paramValues
Definition:
PreparedQuery.h:151
te::common::RAccess
Definition:
Enums.h:43
PGresult
struct pg_result PGresult
Definition:
Connection.h:48
te::pgis::PreparedQuery::m_qname
std::string m_qname
Definition:
PreparedQuery.h:155
te::pgis::PreparedQuery::m_t
Transactor * m_t
Definition:
PreparedQuery.h:148
te::pgis::PreparedQuery::m_paramLengths
int * m_paramLengths
Definition:
PreparedQuery.h:152
TEPGISEXPORT
#define TEPGISEXPORT
You can use this macro in order to export/import classes and functions from this module.
Definition:
Config.h:195
te::pgis::PreparedQuery::m_paramFormats
int * m_paramFormats
Definition:
PreparedQuery.h:153
te::pgis::Transactor
The transactor class for the PostGIS driver.
Definition:
Transactor.h:62
te::common::AccessPolicy
AccessPolicy
Supported data access policies (can be used as bitfield).
Definition:
Enums.h:40
te::common::TraverseType
TraverseType
A dataset can be traversed in two ways:
Definition:
Enums.h:53
PGconn
struct pg_conn PGconn
Definition:
Connection.h:45
te::rst::Raster
An abstract class for raster data strucutures.
Definition:
Raster.h:71
Config.h
Configuration flags for the PostGIS Driver Implementation of TerraLib.
te
URI C++ Library.
Definition:
AddressGeocodingOp.h:51
te::pgis::PreparedQuery::m_result
PGresult * m_result
Definition:
PreparedQuery.h:150
te::dt::AbstractData
A base class for values that can be retrieved from the data access module.
Definition:
AbstractData.h:57
te::da::DataSourceTransactor
A DataSourceTransactor can be viewed as a connection to the data source for reading/writing things in...
Definition:
DataSourceTransactor.h:88
te::gm::Geometry
Geometry is the root class of the geometries hierarchy, it follows OGC and ISO standards.
Definition:
Geometry.h:73
te::dt::DateTime
Definition:
DateTime.h:55
te::da::DataSet
A dataset is the unit of information manipulated by the data access module of TerraLib.
Definition:
DataSet.h:112
te::pgis::PreparedQuery::m_nparams
std::size_t m_nparams
Definition:
PreparedQuery.h:154
te::pgis::PreparedQuery::m_conn
PGconn * m_conn
Definition:
PreparedQuery.h:149
te::common::FORWARDONLY
Definition:
Enums.h:55
te::pgis::PreparedQuery
A class that implements a prepared query for PostgreSQL data access driver.
Definition:
PreparedQuery.h:68
te::da::Query
A Query is independent from the data source language/dialect.
Definition:
Query.h:46
te::dt::ByteArray
A class for representing binary data.
Definition:
ByteArray.h:51
git_master
terralib5
src
terralib
postgis
PreparedQuery.h
Generated on Mon Feb 29 2016 13:55:42 for TerraLib by
1.8.9.1