QxOrm  1.2.5
C++ Object Relational Mapping library
QxSqlQuery.h
Go to the documentation of this file.
00001 /****************************************************************************
00002 **
00003 ** http://www.qxorm.com/
00004 ** Copyright (C) 2013 Lionel Marty (contact@qxorm.com)
00005 **
00006 ** This file is part of the QxOrm library
00007 **
00008 ** This software is provided 'as-is', without any express or implied
00009 ** warranty. In no event will the authors be held liable for any
00010 ** damages arising from the use of this software
00011 **
00012 ** Commercial Usage
00013 ** Licensees holding valid commercial QxOrm licenses may use this file in
00014 ** accordance with the commercial license agreement provided with the
00015 ** Software or, alternatively, in accordance with the terms contained in
00016 ** a written agreement between you and Lionel Marty
00017 **
00018 ** GNU General Public License Usage
00019 ** Alternatively, this file may be used under the terms of the GNU
00020 ** General Public License version 3.0 as published by the Free Software
00021 ** Foundation and appearing in the file 'license.gpl3.txt' included in the
00022 ** packaging of this file. Please review the following information to
00023 ** ensure the GNU General Public License version 3.0 requirements will be
00024 ** met : http://www.gnu.org/copyleft/gpl.html
00025 **
00026 ** If you are unsure which license is appropriate for your use, or
00027 ** if you have questions regarding the use of this file, please contact :
00028 ** contact@qxorm.com
00029 **
00030 ****************************************************************************/
00031 
00032 #ifndef _QX_SQL_QUERY_H_
00033 #define _QX_SQL_QUERY_H_
00034 
00035 #ifdef _MSC_VER
00036 #pragma once
00037 #endif
00038 
00046 #include <boost/tuple/tuple.hpp>
00047 #include <boost/tuple/tuple_comparison.hpp>
00048 #include <boost/tuple/tuple_io.hpp>
00049 
00050 #include <QtSql/qsqlquery.h>
00051 
00052 #include <QxCollection/QxCollection.h>
00053 
00054 #include <QxDao/QxSqlElement/QxSqlElement.h>
00055 
00056 namespace qx {
00057 
00190 class QX_DLL_EXPORT QxSqlQuery
00191 {
00192 
00193 protected:
00194 
00195    struct QxSqlResult
00196    { QHash<QString, int> positionByKey; QVector< QVector<QVariant> > values; };
00197 
00198    typedef boost::tuple<QVariant, QSql::ParamType> type_bind_value;
00199 
00200    QString                                   m_sQuery;               
00201    QxCollection<QString, type_bind_value>    m_lstValue;             
00202    qx::dao::detail::IxSqlElement_ptr         m_pSqlElementTemp;      
00203    QList<qx::dao::detail::IxSqlElement_ptr>  m_lstSqlElement;        
00204    int                                       m_iSqlElementIndex;     
00205    int                                       m_iParenthesisCount;    
00206    bool                                      m_bDistinct;            
00207    boost::shared_ptr<QxSqlResult>            m_pSqlResult;           
00208 
00209 public:
00210 
00211    QxSqlQuery() : m_iSqlElementIndex(0), m_iParenthesisCount(0), m_bDistinct(false) { ; }
00212    QxSqlQuery(const QString & sQuery) : m_sQuery(sQuery), m_iSqlElementIndex(0), m_iParenthesisCount(0), m_bDistinct(false) { ; }
00213    QxSqlQuery(const char * sQuery) : m_sQuery(sQuery), m_iSqlElementIndex(0), m_iParenthesisCount(0), m_bDistinct(false) { ; }
00214    virtual ~QxSqlQuery() { ; }
00215 
00216    QString query();
00217    bool isEmpty() const;
00218    bool isDistinct() const;
00219    void clear();
00220    void resolve(QSqlQuery & query) const;
00221    void resolveOutput(QSqlQuery & query, bool bFetchSqlResult);
00222    void postProcess(QString & sql) const;
00223 
00224    QxSqlQuery & query(const QString & sQuery);
00225    QxSqlQuery & bind(const QVariant & vValue, QSql::ParamType paramType = QSql::In);
00226    QxSqlQuery & bind(const QString & sKey, const QVariant & vValue, QSql::ParamType paramType = QSql::In);
00227 
00228    QVariant boundValue(const QString & sKey) const;
00229    QVariant boundValue(int iPosition) const;
00230 
00231    long getSqlResultRowCount() const;
00232    long getSqlResultColumnCount() const;
00233    QVariant getSqlResultAt(long row, long column) const;
00234    QVariant getSqlResultAt(long row, const QString & column) const;
00235    QVector<QVariant> getSqlResultAt(long row) const;
00236    QVector<QString> getSqlResultAllColumns() const;
00237    void dumpSqlResult();
00238 
00239 private:
00240 
00241 #ifndef NDEBUG
00242    void verifyQuery() const;
00243 #else
00244    inline void verifyQuery() const { ; }
00245 #endif // NDEBUG
00246 
00247    void fetchSqlResult(QSqlQuery & query);
00248 
00249 public:
00250 
00251    /* -- All methods to build SQL query using C++ syntax -- */
00252 
00253    virtual QxSqlQuery & distinct();
00254 
00255    virtual QxSqlQuery & where(const QString & column);
00256    virtual QxSqlQuery & where_OpenParenthesis(const QString & column);
00257    virtual QxSqlQuery & and_(const QString & column);
00258    virtual QxSqlQuery & and_OpenParenthesis(const QString & column);
00259    virtual QxSqlQuery & or_(const QString & column);
00260    virtual QxSqlQuery & or_OpenParenthesis(const QString & column);
00261 
00262    virtual QxSqlQuery & openParenthesis();
00263    virtual QxSqlQuery & closeParenthesis();
00264 
00265    virtual QxSqlQuery & orderAsc(const QStringList & columns);
00266    virtual QxSqlQuery & orderAsc(const QString & col1);
00267    virtual QxSqlQuery & orderAsc(const QString & col1, const QString & col2);
00268    virtual QxSqlQuery & orderAsc(const QString & col1, const QString & col2, const QString & col3);
00269    virtual QxSqlQuery & orderAsc(const QString & col1, const QString & col2, const QString & col3, const QString & col4);
00270    virtual QxSqlQuery & orderAsc(const QString & col1, const QString & col2, const QString & col3, const QString & col4, const QString & col5);
00271    virtual QxSqlQuery & orderAsc(const QString & col1, const QString & col2, const QString & col3, const QString & col4, const QString & col5, const QString & col6);
00272    virtual QxSqlQuery & orderAsc(const QString & col1, const QString & col2, const QString & col3, const QString & col4, const QString & col5, const QString & col6, const QString & col7);
00273    virtual QxSqlQuery & orderAsc(const QString & col1, const QString & col2, const QString & col3, const QString & col4, const QString & col5, const QString & col6, const QString & col7, const QString & col8);
00274    virtual QxSqlQuery & orderAsc(const QString & col1, const QString & col2, const QString & col3, const QString & col4, const QString & col5, const QString & col6, const QString & col7, const QString & col8, const QString & col9);
00275 
00276    virtual QxSqlQuery & orderDesc(const QStringList & columns);
00277    virtual QxSqlQuery & orderDesc(const QString & col1);
00278    virtual QxSqlQuery & orderDesc(const QString & col1, const QString & col2);
00279    virtual QxSqlQuery & orderDesc(const QString & col1, const QString & col2, const QString & col3);
00280    virtual QxSqlQuery & orderDesc(const QString & col1, const QString & col2, const QString & col3, const QString & col4);
00281    virtual QxSqlQuery & orderDesc(const QString & col1, const QString & col2, const QString & col3, const QString & col4, const QString & col5);
00282    virtual QxSqlQuery & orderDesc(const QString & col1, const QString & col2, const QString & col3, const QString & col4, const QString & col5, const QString & col6);
00283    virtual QxSqlQuery & orderDesc(const QString & col1, const QString & col2, const QString & col3, const QString & col4, const QString & col5, const QString & col6, const QString & col7);
00284    virtual QxSqlQuery & orderDesc(const QString & col1, const QString & col2, const QString & col3, const QString & col4, const QString & col5, const QString & col6, const QString & col7, const QString & col8);
00285    virtual QxSqlQuery & orderDesc(const QString & col1, const QString & col2, const QString & col3, const QString & col4, const QString & col5, const QString & col6, const QString & col7, const QString & col8, const QString & col9);
00286 
00287    virtual QxSqlQuery & groupBy(const QStringList & columns);
00288    virtual QxSqlQuery & groupBy(const QString & col1);
00289    virtual QxSqlQuery & groupBy(const QString & col1, const QString & col2);
00290    virtual QxSqlQuery & groupBy(const QString & col1, const QString & col2, const QString & col3);
00291    virtual QxSqlQuery & groupBy(const QString & col1, const QString & col2, const QString & col3, const QString & col4);
00292    virtual QxSqlQuery & groupBy(const QString & col1, const QString & col2, const QString & col3, const QString & col4, const QString & col5);
00293    virtual QxSqlQuery & groupBy(const QString & col1, const QString & col2, const QString & col3, const QString & col4, const QString & col5, const QString & col6);
00294    virtual QxSqlQuery & groupBy(const QString & col1, const QString & col2, const QString & col3, const QString & col4, const QString & col5, const QString & col6, const QString & col7);
00295    virtual QxSqlQuery & groupBy(const QString & col1, const QString & col2, const QString & col3, const QString & col4, const QString & col5, const QString & col6, const QString & col7, const QString & col8);
00296    virtual QxSqlQuery & groupBy(const QString & col1, const QString & col2, const QString & col3, const QString & col4, const QString & col5, const QString & col6, const QString & col7, const QString & col8, const QString & col9);
00297 
00298    virtual QxSqlQuery & limit(int rowsCount, int startRow = 0);
00299 
00300    virtual QxSqlQuery & like(const QString & val);
00301    virtual QxSqlQuery & notLike(const QString & val);
00302    virtual QxSqlQuery & startsWith(const QString & val);
00303    virtual QxSqlQuery & endsWith(const QString & val);
00304    virtual QxSqlQuery & containsString(const QString & val);
00305 
00306    virtual QxSqlQuery & isEqualTo(const QVariant & val);
00307    virtual QxSqlQuery & isNotEqualTo(const QVariant & val);
00308    virtual QxSqlQuery & isGreaterThan(const QVariant & val);
00309    virtual QxSqlQuery & isGreaterThanOrEqualTo(const QVariant & val);
00310    virtual QxSqlQuery & isLessThan(const QVariant & val);
00311    virtual QxSqlQuery & isLessThanOrEqualTo(const QVariant & val);
00312 
00313    virtual QxSqlQuery & in(const QVariantList & values);
00314    virtual QxSqlQuery & in(const QVariant & val1);
00315    virtual QxSqlQuery & in(const QVariant & val1, const QVariant & val2);
00316    virtual QxSqlQuery & in(const QVariant & val1, const QVariant & val2, const QVariant & val3);
00317    virtual QxSqlQuery & in(const QVariant & val1, const QVariant & val2, const QVariant & val3, const QVariant & val4);
00318    virtual QxSqlQuery & in(const QVariant & val1, const QVariant & val2, const QVariant & val3, const QVariant & val4, const QVariant & val5);
00319    virtual QxSqlQuery & in(const QVariant & val1, const QVariant & val2, const QVariant & val3, const QVariant & val4, const QVariant & val5, const QVariant & val6);
00320    virtual QxSqlQuery & in(const QVariant & val1, const QVariant & val2, const QVariant & val3, const QVariant & val4, const QVariant & val5, const QVariant & val6, const QVariant & val7);
00321    virtual QxSqlQuery & in(const QVariant & val1, const QVariant & val2, const QVariant & val3, const QVariant & val4, const QVariant & val5, const QVariant & val6, const QVariant & val7, const QVariant & val8);
00322    virtual QxSqlQuery & in(const QVariant & val1, const QVariant & val2, const QVariant & val3, const QVariant & val4, const QVariant & val5, const QVariant & val6, const QVariant & val7, const QVariant & val8, const QVariant & val9);
00323 
00324    virtual QxSqlQuery & notIn(const QVariantList & values);
00325    virtual QxSqlQuery & notIn(const QVariant & val1);
00326    virtual QxSqlQuery & notIn(const QVariant & val1, const QVariant & val2);
00327    virtual QxSqlQuery & notIn(const QVariant & val1, const QVariant & val2, const QVariant & val3);
00328    virtual QxSqlQuery & notIn(const QVariant & val1, const QVariant & val2, const QVariant & val3, const QVariant & val4);
00329    virtual QxSqlQuery & notIn(const QVariant & val1, const QVariant & val2, const QVariant & val3, const QVariant & val4, const QVariant & val5);
00330    virtual QxSqlQuery & notIn(const QVariant & val1, const QVariant & val2, const QVariant & val3, const QVariant & val4, const QVariant & val5, const QVariant & val6);
00331    virtual QxSqlQuery & notIn(const QVariant & val1, const QVariant & val2, const QVariant & val3, const QVariant & val4, const QVariant & val5, const QVariant & val6, const QVariant & val7);
00332    virtual QxSqlQuery & notIn(const QVariant & val1, const QVariant & val2, const QVariant & val3, const QVariant & val4, const QVariant & val5, const QVariant & val6, const QVariant & val7, const QVariant & val8);
00333    virtual QxSqlQuery & notIn(const QVariant & val1, const QVariant & val2, const QVariant & val3, const QVariant & val4, const QVariant & val5, const QVariant & val6, const QVariant & val7, const QVariant & val8, const QVariant & val9);
00334 
00335    virtual QxSqlQuery & in_Select(const QString & sql);
00336    virtual QxSqlQuery & notIn_Select(const QString & sql);
00337 
00338    virtual QxSqlQuery & isNull();
00339    virtual QxSqlQuery & isNotNull();
00340 
00341    virtual QxSqlQuery & isBetween(const QVariant & val1, const QVariant & val2);
00342    virtual QxSqlQuery & isNotBetween(const QVariant & val1, const QVariant & val2);
00343 
00344    virtual QxSqlQuery & freeText(const QString & text);
00345 
00346 private:
00347 
00348    QxSqlQuery & addSqlExpression(const QString & column, qx::dao::detail::QxSqlExpression::type type);
00349    QxSqlQuery & addSqlCompare(const QVariant & val, qx::dao::detail::QxSqlCompare::type type);
00350    QxSqlQuery & addSqlSort(const QStringList & columns, qx::dao::detail::QxSqlSort::type type);
00351    QxSqlQuery & addSqlIn(const QVariantList & values, qx::dao::detail::QxSqlIn::type type);
00352    QxSqlQuery & addSqlIsNull(qx::dao::detail::QxSqlIsNull::type type);
00353    QxSqlQuery & addSqlIsBetween(const QVariant & val1, const QVariant & val2, qx::dao::detail::QxSqlIsBetween::type type);
00354 
00355 };
00356 
00357 } // namespace qx
00358 
00359 typedef qx::QxSqlQuery qx_query;
00360 
00361 namespace qx {
00362 namespace dao {
00363 
00387 QX_DLL_EXPORT QSqlError call_query(qx::QxSqlQuery & query, QSqlDatabase * pDatabase = NULL);
00388 
00389 } // namespace dao
00390 } // namespace qx
00391 
00392 #define QX_SQL_QUERY_DERIVED_IMPL_COVARIANT_RETURN_TYPE_HPP(className) \
00393 public: \
00394 \
00395 virtual className & distinct(); \
00396 \
00397 virtual className & where(const QString & column); \
00398 virtual className & where_OpenParenthesis(const QString & column); \
00399 virtual className & and_(const QString & column); \
00400 virtual className & and_OpenParenthesis(const QString & column); \
00401 virtual className & or_(const QString & column); \
00402 virtual className & or_OpenParenthesis(const QString & column); \
00403 \
00404 virtual className & openParenthesis(); \
00405 virtual className & closeParenthesis(); \
00406 \
00407 virtual className & orderAsc(const QStringList & columns); \
00408 virtual className & orderAsc(const QString & col1); \
00409 virtual className & orderAsc(const QString & col1, const QString & col2); \
00410 virtual className & orderAsc(const QString & col1, const QString & col2, const QString & col3); \
00411 virtual className & orderAsc(const QString & col1, const QString & col2, const QString & col3, const QString & col4); \
00412 virtual className & orderAsc(const QString & col1, const QString & col2, const QString & col3, const QString & col4, const QString & col5); \
00413 virtual className & orderAsc(const QString & col1, const QString & col2, const QString & col3, const QString & col4, const QString & col5, const QString & col6); \
00414 virtual className & orderAsc(const QString & col1, const QString & col2, const QString & col3, const QString & col4, const QString & col5, const QString & col6, const QString & col7); \
00415 virtual className & orderAsc(const QString & col1, const QString & col2, const QString & col3, const QString & col4, const QString & col5, const QString & col6, const QString & col7, const QString & col8); \
00416 virtual className & orderAsc(const QString & col1, const QString & col2, const QString & col3, const QString & col4, const QString & col5, const QString & col6, const QString & col7, const QString & col8, const QString & col9); \
00417 \
00418 virtual className & orderDesc(const QStringList & columns); \
00419 virtual className & orderDesc(const QString & col1); \
00420 virtual className & orderDesc(const QString & col1, const QString & col2); \
00421 virtual className & orderDesc(const QString & col1, const QString & col2, const QString & col3); \
00422 virtual className & orderDesc(const QString & col1, const QString & col2, const QString & col3, const QString & col4); \
00423 virtual className & orderDesc(const QString & col1, const QString & col2, const QString & col3, const QString & col4, const QString & col5); \
00424 virtual className & orderDesc(const QString & col1, const QString & col2, const QString & col3, const QString & col4, const QString & col5, const QString & col6); \
00425 virtual className & orderDesc(const QString & col1, const QString & col2, const QString & col3, const QString & col4, const QString & col5, const QString & col6, const QString & col7); \
00426 virtual className & orderDesc(const QString & col1, const QString & col2, const QString & col3, const QString & col4, const QString & col5, const QString & col6, const QString & col7, const QString & col8); \
00427 virtual className & orderDesc(const QString & col1, const QString & col2, const QString & col3, const QString & col4, const QString & col5, const QString & col6, const QString & col7, const QString & col8, const QString & col9); \
00428 \
00429 virtual className & groupBy(const QStringList & columns); \
00430 virtual className & groupBy(const QString & col1); \
00431 virtual className & groupBy(const QString & col1, const QString & col2); \
00432 virtual className & groupBy(const QString & col1, const QString & col2, const QString & col3); \
00433 virtual className & groupBy(const QString & col1, const QString & col2, const QString & col3, const QString & col4); \
00434 virtual className & groupBy(const QString & col1, const QString & col2, const QString & col3, const QString & col4, const QString & col5); \
00435 virtual className & groupBy(const QString & col1, const QString & col2, const QString & col3, const QString & col4, const QString & col5, const QString & col6); \
00436 virtual className & groupBy(const QString & col1, const QString & col2, const QString & col3, const QString & col4, const QString & col5, const QString & col6, const QString & col7); \
00437 virtual className & groupBy(const QString & col1, const QString & col2, const QString & col3, const QString & col4, const QString & col5, const QString & col6, const QString & col7, const QString & col8); \
00438 virtual className & groupBy(const QString & col1, const QString & col2, const QString & col3, const QString & col4, const QString & col5, const QString & col6, const QString & col7, const QString & col8, const QString & col9); \
00439 \
00440 virtual className & limit(int rowsCount, int startRow = 0); \
00441 \
00442 virtual className & like(const QString & val); \
00443 virtual className & notLike(const QString & val); \
00444 virtual className & startsWith(const QString & val); \
00445 virtual className & endsWith(const QString & val); \
00446 virtual className & containsString(const QString & val); \
00447 \
00448 virtual className & isEqualTo(const QVariant & val); \
00449 virtual className & isNotEqualTo(const QVariant & val); \
00450 virtual className & isGreaterThan(const QVariant & val); \
00451 virtual className & isGreaterThanOrEqualTo(const QVariant & val); \
00452 virtual className & isLessThan(const QVariant & val); \
00453 virtual className & isLessThanOrEqualTo(const QVariant & val); \
00454 \
00455 virtual className & in(const QVariantList & values); \
00456 virtual className & in(const QVariant & val1); \
00457 virtual className & in(const QVariant & val1, const QVariant & val2); \
00458 virtual className & in(const QVariant & val1, const QVariant & val2, const QVariant & val3); \
00459 virtual className & in(const QVariant & val1, const QVariant & val2, const QVariant & val3, const QVariant & val4); \
00460 virtual className & in(const QVariant & val1, const QVariant & val2, const QVariant & val3, const QVariant & val4, const QVariant & val5); \
00461 virtual className & in(const QVariant & val1, const QVariant & val2, const QVariant & val3, const QVariant & val4, const QVariant & val5, const QVariant & val6); \
00462 virtual className & in(const QVariant & val1, const QVariant & val2, const QVariant & val3, const QVariant & val4, const QVariant & val5, const QVariant & val6, const QVariant & val7); \
00463 virtual className & in(const QVariant & val1, const QVariant & val2, const QVariant & val3, const QVariant & val4, const QVariant & val5, const QVariant & val6, const QVariant & val7, const QVariant & val8); \
00464 virtual className & in(const QVariant & val1, const QVariant & val2, const QVariant & val3, const QVariant & val4, const QVariant & val5, const QVariant & val6, const QVariant & val7, const QVariant & val8, const QVariant & val9); \
00465 \
00466 virtual className & notIn(const QVariantList & values); \
00467 virtual className & notIn(const QVariant & val1); \
00468 virtual className & notIn(const QVariant & val1, const QVariant & val2); \
00469 virtual className & notIn(const QVariant & val1, const QVariant & val2, const QVariant & val3); \
00470 virtual className & notIn(const QVariant & val1, const QVariant & val2, const QVariant & val3, const QVariant & val4); \
00471 virtual className & notIn(const QVariant & val1, const QVariant & val2, const QVariant & val3, const QVariant & val4, const QVariant & val5); \
00472 virtual className & notIn(const QVariant & val1, const QVariant & val2, const QVariant & val3, const QVariant & val4, const QVariant & val5, const QVariant & val6); \
00473 virtual className & notIn(const QVariant & val1, const QVariant & val2, const QVariant & val3, const QVariant & val4, const QVariant & val5, const QVariant & val6, const QVariant & val7); \
00474 virtual className & notIn(const QVariant & val1, const QVariant & val2, const QVariant & val3, const QVariant & val4, const QVariant & val5, const QVariant & val6, const QVariant & val7, const QVariant & val8); \
00475 virtual className & notIn(const QVariant & val1, const QVariant & val2, const QVariant & val3, const QVariant & val4, const QVariant & val5, const QVariant & val6, const QVariant & val7, const QVariant & val8, const QVariant & val9); \
00476 \
00477 virtual className & in_Select(const QString & sql); \
00478 virtual className & notIn_Select(const QString & sql); \
00479 \
00480 virtual className & isNull(); \
00481 virtual className & isNotNull(); \
00482 \
00483 virtual className & isBetween(const QVariant & val1, const QVariant & val2); \
00484 virtual className & isNotBetween(const QVariant & val1, const QVariant & val2); \
00485 \
00486 virtual className & freeText(const QString & text);
00487 
00488 #define QX_SQL_QUERY_DERIVED_IMPL_COVARIANT_RETURN_TYPE_CPP(className) \
00489 \
00490 className & className::distinct() { return static_cast<className &>(qx::QxSqlQuery::distinct()); } \
00491 \
00492 className & className::where(const QString & column) { return static_cast<className &>(qx::QxSqlQuery::where(column)); } \
00493 className & className::where_OpenParenthesis(const QString & column) { return static_cast<className &>(qx::QxSqlQuery::where_OpenParenthesis(column)); } \
00494 className & className::and_(const QString & column) { return static_cast<className &>(qx::QxSqlQuery::and_(column)); } \
00495 className & className::and_OpenParenthesis(const QString & column) { return static_cast<className &>(qx::QxSqlQuery::and_OpenParenthesis(column)); } \
00496 className & className::or_(const QString & column) { return static_cast<className &>(qx::QxSqlQuery::or_(column)); } \
00497 className & className::or_OpenParenthesis(const QString & column) { return static_cast<className &>(qx::QxSqlQuery::or_OpenParenthesis(column)); } \
00498 \
00499 className & className::openParenthesis() { return static_cast<className &>(qx::QxSqlQuery::openParenthesis()); } \
00500 className & className::closeParenthesis() { return static_cast<className &>(qx::QxSqlQuery::closeParenthesis()); } \
00501 \
00502 className & className::orderAsc(const QStringList & columns) { return static_cast<className &>(qx::QxSqlQuery::orderAsc(columns)); } \
00503 className & className::orderAsc(const QString & col1) { return static_cast<className &>(qx::QxSqlQuery::orderAsc(col1)); } \
00504 className & className::orderAsc(const QString & col1, const QString & col2) { return static_cast<className &>(qx::QxSqlQuery::orderAsc(col1, col2)); } \
00505 className & className::orderAsc(const QString & col1, const QString & col2, const QString & col3) { return static_cast<className &>(qx::QxSqlQuery::orderAsc(col1, col2, col3)); } \
00506 className & className::orderAsc(const QString & col1, const QString & col2, const QString & col3, const QString & col4) { return static_cast<className &>(qx::QxSqlQuery::orderAsc(col1, col2, col3, col4)); } \
00507 className & className::orderAsc(const QString & col1, const QString & col2, const QString & col3, const QString & col4, const QString & col5) { return static_cast<className &>(qx::QxSqlQuery::orderAsc(col1, col2, col3, col4, col5)); } \
00508 className & className::orderAsc(const QString & col1, const QString & col2, const QString & col3, const QString & col4, const QString & col5, const QString & col6) { return static_cast<className &>(qx::QxSqlQuery::orderAsc(col1, col2, col3, col4, col5, col6)); } \
00509 className & className::orderAsc(const QString & col1, const QString & col2, const QString & col3, const QString & col4, const QString & col5, const QString & col6, const QString & col7) { return static_cast<className &>(qx::QxSqlQuery::orderAsc(col1, col2, col3, col4, col5, col6, col7)); } \
00510 className & className::orderAsc(const QString & col1, const QString & col2, const QString & col3, const QString & col4, const QString & col5, const QString & col6, const QString & col7, const QString & col8) { return static_cast<className &>(qx::QxSqlQuery::orderAsc(col1, col2, col3, col4, col5, col6, col7, col8)); } \
00511 className & className::orderAsc(const QString & col1, const QString & col2, const QString & col3, const QString & col4, const QString & col5, const QString & col6, const QString & col7, const QString & col8, const QString & col9) { return static_cast<className &>(qx::QxSqlQuery::orderAsc(col1, col2, col3, col4, col5, col6, col7, col8, col9)); } \
00512 \
00513 className & className::orderDesc(const QStringList & columns) { return static_cast<className &>(qx::QxSqlQuery::orderDesc(columns)); } \
00514 className & className::orderDesc(const QString & col1) { return static_cast<className &>(qx::QxSqlQuery::orderDesc(col1)); } \
00515 className & className::orderDesc(const QString & col1, const QString & col2) { return static_cast<className &>(qx::QxSqlQuery::orderDesc(col1, col2)); } \
00516 className & className::orderDesc(const QString & col1, const QString & col2, const QString & col3) { return static_cast<className &>(qx::QxSqlQuery::orderDesc(col1, col2, col3)); } \
00517 className & className::orderDesc(const QString & col1, const QString & col2, const QString & col3, const QString & col4) { return static_cast<className &>(qx::QxSqlQuery::orderDesc(col1, col2, col3, col4)); } \
00518 className & className::orderDesc(const QString & col1, const QString & col2, const QString & col3, const QString & col4, const QString & col5) { return static_cast<className &>(qx::QxSqlQuery::orderDesc(col1, col2, col3, col4, col5)); } \
00519 className & className::orderDesc(const QString & col1, const QString & col2, const QString & col3, const QString & col4, const QString & col5, const QString & col6) { return static_cast<className &>(qx::QxSqlQuery::orderDesc(col1, col2, col3, col4, col5, col6)); } \
00520 className & className::orderDesc(const QString & col1, const QString & col2, const QString & col3, const QString & col4, const QString & col5, const QString & col6, const QString & col7) { return static_cast<className &>(qx::QxSqlQuery::orderDesc(col1, col2, col3, col4, col5, col6, col7)); } \
00521 className & className::orderDesc(const QString & col1, const QString & col2, const QString & col3, const QString & col4, const QString & col5, const QString & col6, const QString & col7, const QString & col8) { return static_cast<className &>(qx::QxSqlQuery::orderDesc(col1, col2, col3, col4, col5, col6, col7, col8)); } \
00522 className & className::orderDesc(const QString & col1, const QString & col2, const QString & col3, const QString & col4, const QString & col5, const QString & col6, const QString & col7, const QString & col8, const QString & col9) { return static_cast<className &>(qx::QxSqlQuery::orderDesc(col1, col2, col3, col4, col5, col6, col7, col8, col9)); } \
00523 \
00524 className & className::groupBy(const QStringList & columns) { return static_cast<className &>(qx::QxSqlQuery::groupBy(columns)); } \
00525 className & className::groupBy(const QString & col1) { return static_cast<className &>(qx::QxSqlQuery::groupBy(col1)); } \
00526 className & className::groupBy(const QString & col1, const QString & col2) { return static_cast<className &>(qx::QxSqlQuery::groupBy(col1, col2)); } \
00527 className & className::groupBy(const QString & col1, const QString & col2, const QString & col3) { return static_cast<className &>(qx::QxSqlQuery::groupBy(col1, col2, col3)); } \
00528 className & className::groupBy(const QString & col1, const QString & col2, const QString & col3, const QString & col4) { return static_cast<className &>(qx::QxSqlQuery::groupBy(col1, col2, col3, col4)); } \
00529 className & className::groupBy(const QString & col1, const QString & col2, const QString & col3, const QString & col4, const QString & col5) { return static_cast<className &>(qx::QxSqlQuery::groupBy(col1, col2, col3, col4, col5)); } \
00530 className & className::groupBy(const QString & col1, const QString & col2, const QString & col3, const QString & col4, const QString & col5, const QString & col6) { return static_cast<className &>(qx::QxSqlQuery::groupBy(col1, col2, col3, col4, col5, col6)); } \
00531 className & className::groupBy(const QString & col1, const QString & col2, const QString & col3, const QString & col4, const QString & col5, const QString & col6, const QString & col7) { return static_cast<className &>(qx::QxSqlQuery::groupBy(col1, col2, col3, col4, col5, col6, col7)); } \
00532 className & className::groupBy(const QString & col1, const QString & col2, const QString & col3, const QString & col4, const QString & col5, const QString & col6, const QString & col7, const QString & col8) { return static_cast<className &>(qx::QxSqlQuery::groupBy(col1, col2, col3, col4, col5, col6, col7, col8)); } \
00533 className & className::groupBy(const QString & col1, const QString & col2, const QString & col3, const QString & col4, const QString & col5, const QString & col6, const QString & col7, const QString & col8, const QString & col9) { return static_cast<className &>(qx::QxSqlQuery::groupBy(col1, col2, col3, col4, col5, col6, col7, col8, col9)); } \
00534 \
00535 className & className::limit(int rowsCount, int startRow) { return static_cast<className &>(qx::QxSqlQuery::limit(rowsCount, startRow)); } \
00536 \
00537 className & className::like(const QString & val) { return static_cast<className &>(qx::QxSqlQuery::like(val)); } \
00538 className & className::notLike(const QString & val) { return static_cast<className &>(qx::QxSqlQuery::notLike(val)); } \
00539 className & className::startsWith(const QString & val) { return static_cast<className &>(qx::QxSqlQuery::startsWith(val)); } \
00540 className & className::endsWith(const QString & val) { return static_cast<className &>(qx::QxSqlQuery::endsWith(val)); } \
00541 className & className::containsString(const QString & val) { return static_cast<className &>(qx::QxSqlQuery::containsString(val)); } \
00542 \
00543 className & className::isEqualTo(const QVariant & val) { return static_cast<className &>(qx::QxSqlQuery::isEqualTo(val)); } \
00544 className & className::isNotEqualTo(const QVariant & val) { return static_cast<className &>(qx::QxSqlQuery::isNotEqualTo(val)); } \
00545 className & className::isGreaterThan(const QVariant & val) { return static_cast<className &>(qx::QxSqlQuery::isGreaterThan(val)); } \
00546 className & className::isGreaterThanOrEqualTo(const QVariant & val) { return static_cast<className &>(qx::QxSqlQuery::isGreaterThanOrEqualTo(val)); } \
00547 className & className::isLessThan(const QVariant & val) { return static_cast<className &>(qx::QxSqlQuery::isLessThan(val)); } \
00548 className & className::isLessThanOrEqualTo(const QVariant & val) { return static_cast<className &>(qx::QxSqlQuery::isLessThanOrEqualTo(val)); } \
00549 \
00550 className & className::in(const QVariantList & values) { return static_cast<className &>(qx::QxSqlQuery::in(values)); } \
00551 className & className::in(const QVariant & val1) { return static_cast<className &>(qx::QxSqlQuery::in(val1)); } \
00552 className & className::in(const QVariant & val1, const QVariant & val2) { return static_cast<className &>(qx::QxSqlQuery::in(val1, val2)); } \
00553 className & className::in(const QVariant & val1, const QVariant & val2, const QVariant & val3) { return static_cast<className &>(qx::QxSqlQuery::in(val1, val2, val3)); } \
00554 className & className::in(const QVariant & val1, const QVariant & val2, const QVariant & val3, const QVariant & val4) { return static_cast<className &>(qx::QxSqlQuery::in(val1, val2, val3, val4)); } \
00555 className & className::in(const QVariant & val1, const QVariant & val2, const QVariant & val3, const QVariant & val4, const QVariant & val5) { return static_cast<className &>(qx::QxSqlQuery::in(val1, val2, val3, val4, val5)); } \
00556 className & className::in(const QVariant & val1, const QVariant & val2, const QVariant & val3, const QVariant & val4, const QVariant & val5, const QVariant & val6) { return static_cast<className &>(qx::QxSqlQuery::in(val1, val2, val3, val4, val5, val6)); } \
00557 className & className::in(const QVariant & val1, const QVariant & val2, const QVariant & val3, const QVariant & val4, const QVariant & val5, const QVariant & val6, const QVariant & val7) { return static_cast<className &>(qx::QxSqlQuery::in(val1, val2, val3, val4, val5, val6, val7)); } \
00558 className & className::in(const QVariant & val1, const QVariant & val2, const QVariant & val3, const QVariant & val4, const QVariant & val5, const QVariant & val6, const QVariant & val7, const QVariant & val8) { return static_cast<className &>(qx::QxSqlQuery::in(val1, val2, val3, val4, val5, val6, val7, val8)); } \
00559 className & className::in(const QVariant & val1, const QVariant & val2, const QVariant & val3, const QVariant & val4, const QVariant & val5, const QVariant & val6, const QVariant & val7, const QVariant & val8, const QVariant & val9) { return static_cast<className &>(qx::QxSqlQuery::in(val1, val2, val3, val4, val5, val6, val7, val8, val9)); } \
00560 \
00561 className & className::notIn(const QVariantList & values) { return static_cast<className &>(qx::QxSqlQuery::notIn(values)); } \
00562 className & className::notIn(const QVariant & val1) { return static_cast<className &>(qx::QxSqlQuery::notIn(val1)); } \
00563 className & className::notIn(const QVariant & val1, const QVariant & val2) { return static_cast<className &>(qx::QxSqlQuery::notIn(val1, val2)); } \
00564 className & className::notIn(const QVariant & val1, const QVariant & val2, const QVariant & val3) { return static_cast<className &>(qx::QxSqlQuery::notIn(val1, val2, val3)); } \
00565 className & className::notIn(const QVariant & val1, const QVariant & val2, const QVariant & val3, const QVariant & val4) { return static_cast<className &>(qx::QxSqlQuery::notIn(val1, val2, val3, val4)); } \
00566 className & className::notIn(const QVariant & val1, const QVariant & val2, const QVariant & val3, const QVariant & val4, const QVariant & val5) { return static_cast<className &>(qx::QxSqlQuery::notIn(val1, val2, val3, val4, val5)); } \
00567 className & className::notIn(const QVariant & val1, const QVariant & val2, const QVariant & val3, const QVariant & val4, const QVariant & val5, const QVariant & val6) { return static_cast<className &>(qx::QxSqlQuery::notIn(val1, val2, val3, val4, val5, val6)); } \
00568 className & className::notIn(const QVariant & val1, const QVariant & val2, const QVariant & val3, const QVariant & val4, const QVariant & val5, const QVariant & val6, const QVariant & val7) { return static_cast<className &>(qx::QxSqlQuery::notIn(val1, val2, val3, val4, val5, val6, val7)); } \
00569 className & className::notIn(const QVariant & val1, const QVariant & val2, const QVariant & val3, const QVariant & val4, const QVariant & val5, const QVariant & val6, const QVariant & val7, const QVariant & val8) { return static_cast<className &>(qx::QxSqlQuery::notIn(val1, val2, val3, val4, val5, val6, val7, val8)); } \
00570 className & className::notIn(const QVariant & val1, const QVariant & val2, const QVariant & val3, const QVariant & val4, const QVariant & val5, const QVariant & val6, const QVariant & val7, const QVariant & val8, const QVariant & val9) { return static_cast<className &>(qx::QxSqlQuery::notIn(val1, val2, val3, val4, val5, val6, val7, val8, val9)); } \
00571 \
00572 className & className::in_Select(const QString & sql) { return static_cast<className &>(qx::QxSqlQuery::in_Select(sql)); } \
00573 className & className::notIn_Select(const QString & sql) { return static_cast<className &>(qx::QxSqlQuery::notIn_Select(sql)); } \
00574 \
00575 className & className::isNull() { return static_cast<className &>(qx::QxSqlQuery::isNull()); } \
00576 className & className::isNotNull() { return static_cast<className &>(qx::QxSqlQuery::isNotNull()); } \
00577 \
00578 className & className::isBetween(const QVariant & val1, const QVariant & val2) { return static_cast<className &>(qx::QxSqlQuery::isBetween(val1, val2)); } \
00579 className & className::isNotBetween(const QVariant & val1, const QVariant & val2) { return static_cast<className &>(qx::QxSqlQuery::isNotBetween(val1, val2)); } \
00580 \
00581 className & className::freeText(const QString & text) { return static_cast<className &>(qx::QxSqlQuery::freeText(text)); }
00582 
00583 #endif // _QX_SQL_QUERY_H_