00001 00002 00003 00004 00005 00006 00007 00008 00009 00010 00011 00012 00013 00014 00015 00016 00017 00018 00019
00020 #ifndef CONNECTOR_H
00021 #define CONNECTOR_H
00022
00023 #ifdef HAVE_CONFIG_H
00024 #include <config.h>
00025 #endif
00026
00027 #include <qstring.h>
00028 #include <qstringlist.h>
00029
00030 #include "exception.h"
00031 #include "kdb.h"
00032
00033 #define QUERYTABLE "__KDBQueries"
00034
00035 namespace KDB {
00036
00037 class Exception;
00038 class Handler;
00039 class Table;
00040
00041 class Connector {
00042
00043 public:
00044 Connector();
00045 Connector(const Connector& c);
00046 virtual ~Connector();
00047
00048
00049 void setHost(const QString & host);
00050 void setPort(int port);
00051 void setUser(const QString & user);
00052 void setPassword(const QString & pwd);
00053
00054 QString host() const;
00055 int port() const;
00056 QString user() const;
00057 QString password() const;
00058 bool isConnected() const;
00059
00060
00064 virtual void close();
00065
00069 virtual bool connect() = 0;
00070
00074 virtual QString protocol() const = 0;
00075
00080 virtual QStringList databases() = 0;
00081
00086 virtual QStringList tables() = 0;
00091 virtual QStringList queries() = 0;
00092
00097 virtual QStringList fields(const QString & tableName) = 0;
00098
00103 virtual unsigned long long execute(const QString &sql) = 0;
00104
00108 virtual bool createDatabase(const QString & name) = 0;
00109
00113 virtual bool createTable(const Table & tab) = 0;
00114
00119 virtual Connector * clone() = 0;
00120
00125 virtual bool setCurrentDatabase(const QString &name) = 0;
00126
00130 virtual DataType nativeToKDB(const QString &type) = 0;
00131
00135 virtual QString KDBToNative(DataType type) = 0;
00136
00141 virtual Handler *query(const QString &SQL) = 0;
00142
00143 protected:
00144
00149 void setConnected(bool conn);
00150
00151 private:
00152
00153 QString _host;
00154 int _port;
00155 QString _user;
00156 QString _pwd;
00157
00158 bool _connected;
00159
00160 };
00161
00162 };
00163 #endif
00164
00165