00001 00002 00003 00004 00005 00006 00007 00008 00009 00010 00011 00012 00013 00014 00015 00016 00017 00018 00019
00020 #ifndef QUERY_H
00021 #define QUERY_H
00022
00023 #ifdef HAVE_CONFIG_H
00024 #include <config.h>
00025 #endif
00026
00027 #include <qstring.h>
00028 #include <qstringlist.h>
00029
00030 #include <ksharedptr.h>
00031
00032 #include "recordset.h"
00033 #include "dataobject.h"
00034
00035 namespace KDB {
00036
00037 class Connector;
00038 class Recordset;
00039
00040 class Query;
00041
00042 typedef KSharedPtr<Query> QueryPtr;
00043 typedef QValueList<QueryPtr> QueryList;
00044 typedef QValueListIterator<QueryPtr> QueryIterator;
00045
00060 class Query :public DataObject{
00061
00062 friend class Database;
00063 Q_OBJECT
00064
00065 public:
00066
00067 ~Query();
00068
00073 void addField(const QString &table, const QString &name);
00074
00078 void addTable(const QString &name) ;
00079
00083 void addCondition(const QString &condition);
00084
00090 QString SQL();
00091
00095 RecordsetPtr openRecordset();
00096
00100 bool isDesign() ;
00101
00102 protected:
00103
00104 Query( Connector * conn, const char * name, QObject *parent = 0, const QString &sql = QString::null );
00105
00111 virtual void buildSQL();
00112
00113 private:
00114
00115 QString m_SQL;
00116
00117 QStringList m_fields;
00118 QStringList m_tables;
00119 QStringList m_conditions;
00120
00121 Connector * connector;
00122 };
00123
00124 }
00125
00126 #endif