kexi

preparedstatement.h
1/* This file is part of the KDE project
2 Copyright (C) 2005 Jaroslaw Staniek <js@iidea.pl>
3
4 This library is free software; you can redistribute it and/or
5 modify it under the terms of the GNU Library General Public
6 License as published by the Free Software Foundation; either
7 version 2 of the License, or (at your option) any later version.
8
9 This library is distributed in the hope that it will be useful,
10 but WITHOUT ANY WARRANTY; without even the implied warranty of
11 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12 Library General Public License for more details.
13
14 You should have received a copy of the GNU Library General Public License
15 along with this library; see the file COPYING.LIB. If not, write to
16 the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
17 * Boston, MA 02110-1301, USA.
18*/
19
20#ifndef KEXIDB_PREPAREDSTATEMENT_H
21#define KEXIDB_PREPAREDSTATEMENT_H
22
23#include <tqvariant.h>
24#include <ksharedptr.h>
25
26#include "field.h"
27
28namespace KexiDB {
29
30class ConnectionInternal;
31class TableSchema;
32class FieldList;
33
73class KEXI_DB_EXPORT PreparedStatement : public TDEShared
74{
75 public:
76 typedef TDESharedPtr<PreparedStatement> Ptr;
77
81 InsertStatement
82 };
83
85 PreparedStatement(StatementType type, ConnectionInternal& conn, FieldList& fields,
86 const TQStringList& where = TQStringList());
87
88 virtual ~PreparedStatement();
89
91 PreparedStatement& operator<< ( const TQVariant& value );
92
94 void clearArguments();
95
102 virtual bool execute() = 0;
103
104 protected:
106 TQCString generateStatementString();
107
108 StatementType m_type;
109 FieldList *m_fields;
110 TQValueList<TQVariant> m_args;
111 TQStringList* m_where;
112 Field::List* m_whereFields;
113};
114
115} //namespace KexiDB
116
117#endif
TQPtrList< Field > List
list of fields
Definition field.h:75
Prepared database command for optimizing sequences of multiple database actions.
StatementType
Defines type of the prepared statement.
@ SelectStatement
SELECT statement will be prepared end executed.
virtual bool execute()=0
High-level database connectivity library with database backend drivers.