kexi

kexidbconnection.h

00001 /***************************************************************************
00002  * kexidbconnection.h
00003  * This file is part of the KDE project
00004  * copyright (C)2004-2005 by Sebastian Sauer (mail@dipe.org)
00005  *
00006  * This program is free software; you can redistribute it and/or
00007  * modify it under the terms of the GNU Library General Public
00008  * License as published by the Free Software Foundation; either
00009  * version 2 of the License, or (at your option) any later version.
00010  * This program is distributed in the hope that it will be useful,
00011  * but WITHOUT ANY WARRANTY; without even the implied warranty of
00012  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00013  * Library General Public License for more details.
00014  * You should have received a copy of the GNU Library General Public License
00015  * along with this program; see the file COPYING.  If not, write to
00016  * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
00017  * Boston, MA 02110-1301, USA.
00018  ***************************************************************************/
00019 
00020 #ifndef KROSS_KEXIDB_KEXIDBCONNECTION_H
00021 #define KROSS_KEXIDB_KEXIDBCONNECTION_H
00022 
00023 #include <qstring.h>
00024 
00025 #include <api/object.h>
00026 #include <api/variant.h>
00027 #include <api/list.h>
00028 #include <api/class.h>
00029 
00030 //#include <kexidb/driver.h>
00031 #include <kexidb/connection.h>
00032 
00033 namespace Kross { namespace KexiDB {
00034 
00035     // Forward declarations.
00036     class KexiDBDriver;
00037     class KexiDBConnectionData;
00038 
00043     class KexiDBConnection : public Kross::Api::Class<KexiDBConnection>
00044     {
00045         public:
00046 
00059             explicit KexiDBConnection(::KexiDB::Connection* connection, KexiDBDriver* driver = 0, KexiDBConnectionData* connectiondata = 0);
00060 
00064             virtual ~KexiDBConnection();
00065 
00067             virtual const QString getClassName() const;
00068 
00069         private:
00070             ::KexiDB::Connection* connection();
00071             ::KexiDB::Connection* m_connection;
00072 
00073             KexiDBConnectionData* m_connectiondata;
00074 
00076             void initialize();
00077 
00083             Kross::Api::Object::Ptr hadError(Kross::Api::List::Ptr);
00084 
00089             Kross::Api::Object::Ptr lastError(Kross::Api::List::Ptr);
00090 
00096             Kross::Api::Object::Ptr data(Kross::Api::List::Ptr);
00097 
00103             Kross::Api::Object::Ptr driver(Kross::Api::List::Ptr);
00104 
00110             Kross::Api::Object::Ptr connect(Kross::Api::List::Ptr);
00111 
00116             Kross::Api::Object::Ptr isConnected(Kross::Api::List::Ptr);
00117 
00123             Kross::Api::Object::Ptr disconnect(Kross::Api::List::Ptr);
00124 
00129             Kross::Api::Object::Ptr databaseExists(Kross::Api::List::Ptr);
00130 
00136             Kross::Api::Object::Ptr currentDatabase(Kross::Api::List::Ptr);
00137 
00142             Kross::Api::Object::Ptr databaseNames(Kross::Api::List::Ptr);
00143 
00148             Kross::Api::Object::Ptr isDatabaseUsed(Kross::Api::List::Ptr);
00149 
00153             Kross::Api::Object::Ptr isReadOnly(Kross::Api::List::Ptr);
00154 
00160             Kross::Api::Object::Ptr useDatabase(Kross::Api::List::Ptr);
00161 
00166             Kross::Api::Object::Ptr closeDatabase(Kross::Api::List::Ptr);
00167 
00175             Kross::Api::Object::Ptr tableNames(Kross::Api::List::Ptr);
00176 
00182             Kross::Api::Object::Ptr queryNames(Kross::Api::List::Ptr);
00183 
00190             Kross::Api::Object::Ptr executeQueryString(Kross::Api::List::Ptr);
00191 
00198             Kross::Api::Object::Ptr executeQuerySchema(Kross::Api::List::Ptr);
00199 
00205             Kross::Api::Object::Ptr querySingleString(Kross::Api::List::Ptr);
00206 
00213             Kross::Api::Object::Ptr queryStringList(Kross::Api::List::Ptr);
00214 
00220             Kross::Api::Object::Ptr querySingleRecord(Kross::Api::List::Ptr);
00221 
00226             Kross::Api::Object::Ptr insertRecord(Kross::Api::List::Ptr);
00227 
00233             Kross::Api::Object::Ptr createDatabase(Kross::Api::List::Ptr);
00234 
00239             Kross::Api::Object::Ptr dropDatabase(Kross::Api::List::Ptr);
00240 
00246             Kross::Api::Object::Ptr createTable(Kross::Api::List::Ptr);
00247 
00253             Kross::Api::Object::Ptr dropTable(Kross::Api::List::Ptr);
00254 
00261             Kross::Api::Object::Ptr alterTable(Kross::Api::List::Ptr);
00262 
00269             Kross::Api::Object::Ptr alterTableName(Kross::Api::List::Ptr);
00270 
00276             Kross::Api::Object::Ptr tableSchema(Kross::Api::List::Ptr);
00277 
00283             Kross::Api::Object::Ptr isEmptyTable(Kross::Api::List::Ptr);
00284 
00290             Kross::Api::Object::Ptr querySchema(Kross::Api::List::Ptr);
00291 
00296             Kross::Api::Object::Ptr autoCommit(Kross::Api::List::Ptr);
00297 
00304             Kross::Api::Object::Ptr setAutoCommit(Kross::Api::List::Ptr);
00305 
00310             Kross::Api::Object::Ptr beginTransaction(Kross::Api::List::Ptr);
00311 
00316             Kross::Api::Object::Ptr commitTransaction(Kross::Api::List::Ptr);
00317 
00322             Kross::Api::Object::Ptr rollbackTransaction(Kross::Api::List::Ptr);
00323 
00329             Kross::Api::Object::Ptr defaultTransaction(Kross::Api::List::Ptr);
00330 
00336             Kross::Api::Object::Ptr setDefaultTransaction(Kross::Api::List::Ptr);
00337 
00342             Kross::Api::Object::Ptr transactions(Kross::Api::List::Ptr);
00343 
00347             Kross::Api::Object::Ptr parser(Kross::Api::List::Ptr);
00348     };
00349 
00350 }}
00351 
00352 #endif
00353 
KDE Home | KDE Accessibility Home | Description of Access Keys