Main Page
Modules
Namespaces
Classes
Files
File List
File Members
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Properties
Friends
Macros
Groups
Pages
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::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
AA_TL5_master
terralib5
src
terralib
postgis
PreparedQuery.h
Generated on Wed Mar 16 2016 15:41:44 for TerraLib by
1.8.7