#ifndef OSQL_DRIVER_H #define OSQL_DRIVER_H #include #include #include "osqltable.h" class QLibrary; namespace Opie { namespace DB { class OSQLResult; class OSQLQuery; class OSQLError; /** * A OSQLDriver implements the communication with * a database. * After you queried and loaded a driver you can * set some informations and finally try to open * the database * */ class OSQLDriver : public QObject{ Q_OBJECT public: enum Capabilities { RowID=0 }; /** * OSQLDriver constructor. It takes the QLibrary * as parent. * */ OSQLDriver( QLibrary* lib=0 ); virtual ~OSQLDriver(); /** * Id returns the identifier of the OSQLDriver */ virtual QString id()const = 0; /** * set the UserName to the database */ virtual void setUserName( const QString& ) = 0; /** * set the PassWord to the database */ virtual void setPassword( const QString& )= 0; /** * set the Url */ virtual void setUrl( const QString& ) = 0; /** * setOptions */ virtual void setOptions( const QStringList& ) = 0; /** * tries to open a connection to the database */ virtual bool open() = 0; virtual bool close() = 0; virtual OSQLError lastError() = 0; /** * Query the Database with a OSQLQuery * OSQLResult holds the result */ virtual OSQLResult query( OSQLQuery* ) = 0; /** * Get a list of tables */ virtual OSQLTable::ValueList tables() const = 0l; virtual bool sync(); private: QLibrary* m_lib; class OSQLDriverPrivate; OSQLDriverPrivate *d; }; } } #endif