X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=blobdiff_plain;f=src%2Fcontrib%2Flibqxt-2007-10-24%2Fsrc%2Fsql%2Fqxtsqlpackage.h;fp=src%2Fcontrib%2Flibqxt-2007-10-24%2Fsrc%2Fsql%2Fqxtsqlpackage.h;h=c8c0b18bb34809e47c6c98b3f704f0d1061df9a6;hp=0000000000000000000000000000000000000000;hb=a634acadbcf6017474f68a3eaf7cb632660e9e49;hpb=cd122ca8e0d2c0ffc5397e0a813c75d791a7e6e3 diff --git a/src/contrib/libqxt-2007-10-24/src/sql/qxtsqlpackage.h b/src/contrib/libqxt-2007-10-24/src/sql/qxtsqlpackage.h new file mode 100644 index 00000000..c8c0b18b --- /dev/null +++ b/src/contrib/libqxt-2007-10-24/src/sql/qxtsqlpackage.h @@ -0,0 +1,122 @@ +/**************************************************************************** +** +** Copyright (C) Qxt Foundation. Some rights reserved. +** +** This file is part of the QxtSql module of the Qt eXTension library +** +** This library is free software; you can redistribute it and/or modify it +** under the terms of th Common Public License, version 1.0, as published by +** IBM. +** +** This file is provided "AS IS", without WARRANTIES OR CONDITIONS OF ANY +** KIND, EITHER EXPRESS OR IMPLIED INCLUDING, WITHOUT LIMITATION, ANY +** WARRANTIES OR CONDITIONS OF TITLE, NON-INFRINGEMENT, MERCHANTABILITY OR +** FITNESS FOR A PARTICULAR PURPOSE. +** +** You should have received a copy of the CPL along with this file. +** See the LICENSE file and the cpl1.0.txt file included with the source +** distribution for more information. If you did not receive a copy of the +** license, contact the Qxt Foundation. +** +** +** +****************************************************************************/ + + +/** +\class QxtSqlPackage QxtSqlPackage + +\ingroup QxtSql + +\brief full serialiseable QSqlQuery storage + + +Sometimes you want to set sql results over network or store them into files. QxtSqlPackage can provide you a storage that is still valid after the actual QSqlQuery has been destroyed +for confidence the interface is similiar to QSqlQuery. +*/ + +#ifndef QXTSQLPACKAGE_H +#define QXTSQLPACKAGE_H +#include +#include +#include +#include +#include + +class QXT_SQL_EXPORT QxtSqlPackage : public QObject +{ + Q_OBJECT + +public: + QxtSqlPackage(QObject *parent = 0); + QxtSqlPackage(const QxtSqlPackage & other,QObject *parent = 0); + + ///determinates if the package curently points to a valid row + bool isValid(); + + ///curent pointer position + int at(); + + /** \brief point to next entry + + returns false if there is no next entry.\n + provided for easy porting from QSqlQuery. + + \code + while (query.next()) + { + } + \endcode + */ + bool next(); + + ///point to last entry in storage + bool last(); + + ///point to first entry in storage + bool first(); + + /** \brief return a cloumn in curent row + + in contrast to QSqlQuery you have to provide the name of the key. + + the entry is returned as QString becouse in most cases you need QString anyway, and converting to needed data type is easy. + \code + QString name = query.value("name"); + \endcode + */ + QString value(const QString& key); + + /** \brief read from QSqlQuery + + read out a QSqlQuery and store the result. you may close the query after reading, the data will stay. + + \code + QxSqlPackage::insert(QSqlQuery::exec("select name,foo,bar from table;")); + \endcode + */ + void insert(QSqlQuery query); + + ///Returns the number of rows stored + int count() const; + + ///serialise Data + QByteArray data() const; + + ///deserialise data + void setData(const QByteArray& data); + + ///return a specific row as Hash + QHash hash(int index); + ///return the curent row as Hash + QHash hash(); + QxtSqlPackage& operator= (const QxtSqlPackage& other); + +private: + QList > map; + int record; +}; + + + +#endif