Diffstat (limited to 'qmake/include/private/qsqlextension_p.h') (more/less context) (ignore whitespace changes)
-rw-r--r-- | qmake/include/private/qsqlextension_p.h | 41 |
1 files changed, 34 insertions, 7 deletions
diff --git a/qmake/include/private/qsqlextension_p.h b/qmake/include/private/qsqlextension_p.h index 597b266..3445b47 100644 --- a/qmake/include/private/qsqlextension_p.h +++ b/qmake/include/private/qsqlextension_p.h | |||
@@ -53,4 +53,6 @@ | |||
53 | #include "qmap.h" | 53 | #include "qmap.h" |
54 | #include "qvaluevector.h" | ||
54 | #include "qstring.h" | 55 | #include "qstring.h" |
55 | #include "qvariant.h" | 56 | #include "qvariant.h" |
57 | #include "qsql.h" | ||
56 | #endif // QT_H | 58 | #endif // QT_H |
@@ -61,9 +63,27 @@ | |||
61 | #define QM_EXPORT_SQL | 63 | #define QM_EXPORT_SQL |
64 | #define QM_TEMPLATE_EXTERN_SQL | ||
62 | #else | 65 | #else |
63 | #define QM_EXPORT_SQL Q_EXPORT | 66 | #define QM_EXPORT_SQL Q_EXPORT |
67 | #define QM_TEMPLATE_EXTERN_SQL Q_TEMPLATE_EXTERN | ||
64 | #endif | 68 | #endif |
65 | 69 | ||
70 | struct Param { | ||
71 | Param( const QVariant& v = QVariant(), QSql::ParameterType t = QSql::In ): value( v ), typ( t ) {} | ||
72 | QVariant value; | ||
73 | QSql::ParameterType typ; | ||
74 | Q_DUMMY_COMPARISON_OPERATOR(Param) | ||
75 | }; | ||
76 | |||
77 | struct Holder { | ||
78 | Holder( const QString& hldr = QString::null, int pos = -1 ): holderName( hldr ), holderPos( pos ) {} | ||
79 | bool operator==( const Holder& h ) const { return h.holderPos == holderPos && h.holderName == holderName; } | ||
80 | bool operator!=( const Holder& h ) const { return h.holderPos != holderPos || h.holderName != holderName; } | ||
81 | QString holderName; | ||
82 | int holderPos; | ||
83 | }; | ||
84 | |||
66 | #if defined(Q_TEMPLATEDLL) | 85 | #if defined(Q_TEMPLATEDLL) |
67 | Q_TEMPLATE_EXTERN template class QM_EXPORT_SQL QMap<QString,QVariant>; | 86 | QM_TEMPLATE_EXTERN_SQL template class QM_EXPORT_SQL QMap<QString,Param>; |
68 | Q_TEMPLATE_EXTERN template class QM_EXPORT_SQL QMap<int,QString>; | 87 | QM_TEMPLATE_EXTERN_SQL template class QM_EXPORT_SQL QMap<int,QString>; |
88 | QM_TEMPLATE_EXTERN_SQL template class QM_EXPORT_SQL QValueVector<Holder>; | ||
69 | #endif | 89 | #endif |
@@ -76,5 +96,7 @@ public: | |||
76 | virtual bool exec(); | 96 | virtual bool exec(); |
77 | virtual void bindValue( const QString& holder, const QVariant& value ); | 97 | virtual void bindValue( const QString& holder, const QVariant& value, QSql::ParameterType = QSql::In ); |
78 | virtual void bindValue( int pos, const QVariant& value ); | 98 | virtual void bindValue( int pos, const QVariant& value, QSql::ParameterType = QSql::In ); |
79 | virtual void addBindValue( const QVariant& value ); | 99 | virtual void addBindValue( const QVariant& value, QSql::ParameterType = QSql::In ); |
100 | virtual QVariant parameterValue( const QString& holder ); | ||
101 | virtual QVariant parameterValue( int pos ); | ||
80 | void clearValues(); | 102 | void clearValues(); |
@@ -88,3 +110,9 @@ public: | |||
88 | QMap<int, QString> index; | 110 | QMap<int, QString> index; |
89 | QMap<QString, QVariant> values; | 111 | typedef QMap<QString, Param> ValueMap; |
112 | ValueMap values; | ||
113 | |||
114 | // convenience container for QSqlQuery | ||
115 | // to map holders <-> positions | ||
116 | typedef QValueVector<Holder> HolderVector; | ||
117 | HolderVector holders; | ||
90 | }; | 118 | }; |
@@ -98,3 +126,2 @@ public: | |||
98 | }; | 126 | }; |
99 | |||
100 | #endif | 127 | #endif |