summaryrefslogtreecommitdiff
path: root/libopie2/opiedb/osqlquery.h
blob: 0265d2b98cdcf509873c133067c38ea0199aca49 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130

#ifndef OSQL_QUERY_H
#define OSQL_QUERY_H

#include <qmap.h>
#include <qvaluelist.h>
#include <qstring.h>


namespace Opie {
namespace DB {

/** I'm not happy with them
class OSQLQueryOrder {
public:
    typedef QValueList<OSQLQueryOrder> ValueList;
    OSQLQueryOrder(const QString& table = QString::null );
    OSQLQueryOrder( const OSQLQueryOrder& );
    ~OSQLQueryOrder();
    void setOrderFields( const QStringList& list );
    void setValue( const QString& fieldName, const QString& Value );
    void setValues( const QMap<QString, QString>& );
    QMap<QString, QString> orders() const;
    QString orderStatement()const;
    OSQLQueryOrder &operator=(const OSQLQueryOrder& );
private:
    QMap<QString, QString> m_fields;
    class OSQLQueryOrderPrivate;
    OSQLQueryOrderPrivate* d;
};
class OSQLWhere {
public:
    typedef QValueList<OSQLWhere> ValueList;
    enum Vergleiche { Equal = 0, Like, Greater, GreaterEqual,
                      Smaller, SmallerEqual };
    OSQLWhere(const QString& table = QString::null );
    ~OSQLWhere();
    void setExpression(const QString& key, enum Vergleiche, const QString& );
    QString statement()const;
private:
    int m_vergleich;
    const QString& m_left;
    const QString& m_right;

};
*/
class OSQLQuery {
public:
    OSQLQuery();
    virtual ~OSQLQuery();

    virtual QString query()const = 0;
private:
    class Private;
    Private *d;    
};

class OSQLRawQuery : public OSQLQuery {
public:
    OSQLRawQuery( const QString& query );
    ~OSQLRawQuery();
    QString query() const;
private:
    class OSQLRawQueryPrivate;
    OSQLRawQueryPrivate* d;
    QString m_query;

};
/* I'm not happy with them again
class OSQLSelectQuery : public OSQLQuery {
public:
    OSQLSelectQuery();
    ~OSQLSelectQuery();
    void setTables( const QStringList& allTablesToQuery );
    void setValues( const QString& table, const QStringList& columns );
    void setOrder( const OSQLSelectQuery& );
    void setOrderList( const OSQLQueryOrder::ValueList& );
    void setWhereList( const OSQLWhere& );
    void setWhereList( const OSQLWhere::ValueList& );
    QString query()const;
private:
    QStringList m_tables;
    QMap<QString, QStringList> m_values;
    OSQLQueryOrder::ValueList m_order;
    OSQLWhere::ValueList m_where;
    class OSQLSelectQueryPrivate;
    OSQLSelectQueryPrivate* d;
};
class OSQLInsertQuery : public OSQLQuery  {
public:
    OSQLInsertQuery(const QString& table);
    ~OSQLInsertQuery();
    void setInserFields( const QStringList& );
    void setValue( const QString& field,  const QString& value );
    void setValues(const QMap<QString, QString>& );
    QString query()const;
private:
    QString m_table;
    QStringList m_fields;
    QMap<QString, QString> m_values;
};
class OSQLDeleteQuery : public OSQLQuery {
public:
    OSQLDeleteQuery(const QString& table);
    ~OSQLDeleteQuery();
    void setWhere( const OSQLWhere& );
    void setWheres( const OSQLWhere::ValueList& );
    QString query()const;
private:
    QString m_table;
    OSQLWhere::ValueList m_where;

};
class OSQLUpdateQuery : public OSQLQuery {
public:
    OSQLUpdateQuery( const QString& table );
    ~OSQLUpdateQuery();
    void setWhere( const OSQLWhere& );
    void setWheres( const OSQLWhere::ValueList& );
    */
    /* replaces all previous set Values */
    /*
    void setValue( const QString& field, const QString& value );
    void setValue( const QMap<QString, QString> &fields );
    QString query() const;
};
*/
}
}
#endif