1
/****************************************************************************
3
** Copyright (C) 1992-2005 Trolltech AS. All rights reserved.
5
** This file is part of the sql module of the Qt Toolkit.
7
** This file may be distributed under the terms of the Q Public License
8
** as defined by Trolltech AS of Norway and appearing in the file
9
** LICENSE.QPL included in the packaging of this file.
11
** This file may be distributed and/or modified under the terms of the
12
** GNU General Public License version 2 as published by the Free Software
13
** Foundation and appearing in the file LICENSE.GPL included in the
14
** packaging of this file.
16
** See http://www.trolltech.com/pricing.html or email sales@trolltech.com for
17
** information about Qt Commercial License Agreements.
18
** See http://www.trolltech.com/qpl/ for QPL licensing information.
19
** See http://www.trolltech.com/gpl/ for GPL licensing information.
21
** Contact info@trolltech.com if any conditions of this licensing are
24
** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
25
** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
27
****************************************************************************/
32
#include "QtSql/qsql.h"
36
template <typename T> class QVector;
42
class QSqlResultPrivate;
44
class Q_SQL_EXPORT QSqlResult
46
friend class QSqlQuery;
47
friend class QSqlResultPrivate;
49
virtual ~QSqlResult();
50
virtual QVariant handle() const;
57
, BindByPosition = PositionalBinding,
58
BindByName = NamedBinding
62
explicit QSqlResult(const QSqlDriver * db);
64
QString lastQuery() const;
65
QSqlError lastError() const;
67
bool isActive() const;
68
bool isSelect() const;
69
bool isForwardOnly() const;
70
const QSqlDriver* driver() const;
71
virtual void setAt(int at);
72
virtual void setActive(bool a);
73
virtual void setLastError(const QSqlError& e);
74
virtual void setQuery(const QString& query);
75
virtual void setSelect(bool s);
76
virtual void setForwardOnly(bool forward);
78
// prepared query support
80
virtual bool prepare(const QString& query);
81
// ### TODO - find a much better name
82
virtual bool savePrepare(const QString& sqlquery);
83
virtual void bindValue(int pos, const QVariant& val, QSql::ParamType type);
84
virtual void bindValue(const QString& placeholder, const QVariant& val,
85
QSql::ParamType type);
86
void addBindValue(const QVariant& val, QSql::ParamType type);
87
QVariant boundValue(const QString& placeholder) const;
88
QVariant boundValue(int pos) const;
89
QSql::ParamType bindValueType(const QString& placeholder) const;
90
QSql::ParamType bindValueType(int pos) const;
91
int boundValueCount() const;
92
QVector<QVariant>& boundValues() const;
93
QString executedQuery() const;
94
QString boundValueName(int pos) const;
96
bool hasOutValues() const;
98
BindingSyntax bindingSyntax() const;
100
virtual QVariant data(int i) = 0;
101
virtual bool isNull(int i) = 0;
102
virtual bool reset(const QString& sqlquery) = 0;
103
virtual bool fetch(int i) = 0;
104
virtual bool fetchNext();
105
virtual bool fetchPrevious();
106
virtual bool fetchFirst() = 0;
107
virtual bool fetchLast() = 0;
108
virtual int size() = 0;
109
virtual int numRowsAffected() = 0;
110
virtual QSqlRecord record() const;
111
virtual QVariant lastInsertId() const;
113
virtual void virtual_hook(int id, void *data);
116
QSqlResultPrivate* d;
117
void resetBindCount(); // HACK
120
Q_DISABLE_COPY(QSqlResult)
123
#endif // QSQLRESULT_H