kexi
preparedstatement.h00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020 #ifndef KEXIDB_PREPAREDSTATEMENT_H
00021 #define KEXIDB_PREPAREDSTATEMENT_H
00022
00023 #include <qvariant.h>
00024 #include <ksharedptr.h>
00025
00026 #include "field.h"
00027
00028 namespace KexiDB {
00029
00030 class ConnectionInternal;
00031 class TableSchema;
00032 class FieldList;
00033
00073 class KEXI_DB_EXPORT PreparedStatement : public KShared
00074 {
00075 public:
00076 typedef KSharedPtr<PreparedStatement> Ptr;
00077
00079 enum StatementType {
00080 SelectStatement,
00081 InsertStatement
00082 };
00083
00085 PreparedStatement(StatementType type, ConnectionInternal& conn, FieldList& fields,
00086 const QStringList& where = QStringList());
00087
00088 virtual ~PreparedStatement();
00089
00091 PreparedStatement& operator<< ( const QVariant& value );
00092
00094 void clearArguments();
00095
00102 virtual bool execute() = 0;
00103
00104 protected:
00106 QCString generateStatementString();
00107
00108 StatementType m_type;
00109 FieldList *m_fields;
00110 QValueList<QVariant> m_args;
00111 QStringList* m_where;
00112 Field::List* m_whereFields;
00113 };
00114
00115 }
00116
00117 #endif
|