kexidbconnection.cpp
38KexiDBConnection::KexiDBConnection(::KexiDB::Connection* connection, KexiDBDriver* driver, KexiDBConnectionData* connectiondata)
41 , m_connectiondata(connectiondata ? connectiondata : new KexiDBConnectionData(connection->data()))
54 this->addFunction1< Kross::Api::Variant, Kross::Api::Variant >("databaseExists", this, &KexiDBConnection::databaseExists);
55 this->addFunction0< Kross::Api::Variant >("currentDatabase", this, &KexiDBConnection::currentDatabase);
56 this->addFunction0< Kross::Api::Variant >("databaseNames", this, &KexiDBConnection::databaseNames);
57 this->addFunction0< Kross::Api::Variant >("isDatabaseUsed", this, &KexiDBConnection::isDatabaseUsed);
58 this->addFunction1< Kross::Api::Variant, Kross::Api::Variant >("useDatabase", this, &KexiDBConnection::useDatabase);
59 this->addFunction0< Kross::Api::Variant >("closeDatabase", this, &KexiDBConnection::closeDatabase);
64 this->addFunction1< KexiDBCursor, Kross::Api::Variant >("executeQueryString", this, &KexiDBConnection::executeQueryString);
65 this->addFunction1< KexiDBCursor, KexiDBQuerySchema >("executeQuerySchema", this, &KexiDBConnection::executeQuerySchema);
69 this->addFunction1< Kross::Api::Variant, Kross::Api::Variant >("createDatabase", this, &KexiDBConnection::createDatabase);
70 this->addFunction1< Kross::Api::Variant, Kross::Api::Variant >("dropDatabase", this, &KexiDBConnection::dropDatabase);
72 this->addFunction1< Kross::Api::Variant, KexiDBTableSchema >("createTable", this, &KexiDBConnection::createTable);
73 this->addFunction1< Kross::Api::Variant, Kross::Api::Variant >("dropTable", this, &KexiDBConnection::dropTable);
74 this->addFunction2< Kross::Api::Variant, KexiDBTableSchema, KexiDBTableSchema >("alterTable", this, &KexiDBConnection::alterTable);
75 this->addFunction2< Kross::Api::Variant, KexiDBTableSchema, Kross::Api::Variant >("alterTableName", this, &KexiDBConnection::alterTableName);
77 this->addFunction1< KexiDBTableSchema, Kross::Api::Variant >("tableSchema", this, &KexiDBConnection::tableSchema);
78 this->addFunction1< Kross::Api::Variant, KexiDBTableSchema >("isEmptyTable", this, &KexiDBConnection::isEmptyTable);
79 this->addFunction1< KexiDBQuerySchema, Kross::Api::Variant >("querySchema", this, &KexiDBConnection::querySchema);
82 this->addFunction1< Kross::Api::Variant, Kross::Api::Variant >("setAutoCommit", this, &KexiDBConnection::setAutoCommit);
84 this->addFunction0< KexiDBTransaction >("beginTransaction", this, &KexiDBConnection::beginTransaction);
85 this->addFunction1< Kross::Api::Variant, KexiDBTransaction >("commitTransaction", this, &KexiDBConnection::commitTransaction);
86 this->addFunction1< Kross::Api::Variant, KexiDBTransaction >("rollbackTransaction", this, &KexiDBConnection::rollbackTransaction);
87 this->addFunction0< KexiDBTransaction >("defaultTransaction", this, &KexiDBConnection::defaultTransaction);
88 this->addFunction1< void, KexiDBTransaction >("setDefaultTransaction", this, &KexiDBConnection::setDefaultTransaction);
103 throw Kross::Api::Exception::Ptr( new Kross::Api::Exception(TQString("KexiDB::Connection is NULL.")) );
105 // throw Kross::Api::Exception::Ptr( new Kross::Api::Exception(TQString("KexiDB::Connection error: %1").arg(m_connection->errorMsg())) );
121bool KexiDBConnection::databaseExists(const TQString& dbname) { return connection()->databaseExists(dbname); }
122const TQString KexiDBConnection::currentDatabase() const { return connection()->currentDatabase(); }
123const TQStringList KexiDBConnection::databaseNames() const { return connection()->databaseNames(); }
125bool KexiDBConnection::useDatabase(const TQString& dbname) { return connection()->databaseExists(dbname) && m_connection->useDatabase(dbname); }
128const TQStringList KexiDBConnection::allTableNames() const { return connection()->tableNames(true); }
129const TQStringList KexiDBConnection::tableNames() const { return connection()->tableNames(false); }
134 if(! ok) throw Kross::Api::Exception::Ptr( new Kross::Api::Exception(TQString("Failed to determinate querynames.")) );
139 // The ::KexiDB::Connection::executeQuery() method does not check if we pass a valid SELECT-statement
143 throw Kross::Api::Exception::Ptr( new Kross::Api::Exception(TQString("Failed to parse query: %1 %2").arg(parser.error().type()).arg(parser.error().error())) );
145 throw Kross::Api::Exception::Ptr( new Kross::Api::Exception(TQString("Invalid query operation \"%1\"").arg(parser.operationString()) ) );
156bool KexiDBConnection::insertRecordIntoFieldlist(KexiDBFieldList* fieldlist, TQValueList<TQVariant> values) {
160bool KexiDBConnection::insertRecordIntoTable(KexiDBTableSchema* tableschema, TQValueList<TQVariant> values) {
176bool KexiDBConnection::createDatabase(const TQString& dbname) { return connection()->createDatabase(dbname); }
177bool KexiDBConnection::dropDatabase(const TQString& dbname) { return connection()->dropDatabase(dbname); }
179bool KexiDBConnection::createTable(KexiDBTableSchema* tableschema) { return connection()->createTable(tableschema->tableschema(), false); }
180bool KexiDBConnection::dropTable(const TQString& tablename) { return true == connection()->dropTable(tablename); }
181bool KexiDBConnection::alterTable(KexiDBTableSchema* fromschema, KexiDBTableSchema* toschema) { return true == connection()->alterTable(*fromschema->tableschema(), *toschema->tableschema()); }
182bool KexiDBConnection::alterTableName(KexiDBTableSchema* tableschema, const TQString& newtablename) { return connection()->alterTableName(*tableschema->tableschema(), newtablename); }
201bool KexiDBConnection::setAutoCommit(bool enabled) { return connection()->setAutoCommit(enabled); }
208bool KexiDBConnection::commitTransaction(KexiDBTransaction* transaction) { return connection()->commitTransaction( transaction->transaction() ); }
209bool KexiDBConnection::rollbackTransaction(KexiDBTransaction* transaction) { return connection()->rollbackTransaction( transaction->transaction() ); }
210KexiDBTransaction* KexiDBConnection::defaultTransaction() { return new KexiDBTransaction( connection()->defaultTransaction() ); }
211void KexiDBConnection::setDefaultTransaction(KexiDBTransaction* transaction) { connection()->setDefaultTransaction( transaction->transaction() ); }
217KexiDBParser* KexiDBConnection::parser() { return new KexiDBParser(this, new ::KexiDB::Parser(connection())); }
Provides database connection, allowing queries and data modification.
Definition connection.h:62
TQStringList objectNames(int objType=KexiDB::AnyObjectType, bool *ok=0)
Definition connection.cpp:754
bool commitTransaction(Transaction trans=Transaction::null, bool ignore_inactive=false)
Definition connection.cpp:2061
bool rollbackTransaction(Transaction trans=Transaction::null, bool ignore_inactive=false)
Definition connection.cpp:2097
bool createTable(TableSchema *tableSchema, bool replaceExisting=false)
Creates a table according to the given schema.
Definition connection.cpp:1525
bool useDatabase(const TQString &dbName, bool kexiCompatible=true, bool *cancelled=0, MessageHandler *msgHandler=0)
Opens an existing database specified by dbName.
Definition connection.cpp:537
bool closeDatabase()
Closes currently used database for this connection.
Definition connection.cpp:624
bool createDatabase(const TQString &dbName)
Creates new database with name dbName, using this connection.
Definition connection.cpp:435
bool isEmpty(TableSchema &table, bool &success)
Definition connection.cpp:2513
bool dropDatabase(const TQString &dbName=TQString())
Drops database with name dbName.
Definition connection.cpp:696
Cursor * executeQuery(const TQString &statement, uint cursor_options=0)
Definition connection.cpp:2203
void setDefaultTransaction(const Transaction &trans)
Definition connection.cpp:2146
bool alterTableName(TableSchema &tableSchema, const TQString &newName, bool replace=false)
Definition connection.cpp:1792
bool databaseExists(const TQString &dbName, bool ignoreErrors=true)
Definition connection.cpp:373
TQStringList tableNames(bool also_system_tables=false)
Definition connection.cpp:795
Transaction beginTransaction()
Creates new transaction handle and starts a new transaction.
Definition connection.cpp:2023
TQStringList databaseNames(bool also_system_db=false)
Definition connection.cpp:314
tristate dropTable(TableSchema *tableSchema)
Drops a table corresponding to the name in the given schema.
Definition connection.cpp:1692
tristate alterTable(TableSchema &tableSchema, TableSchema &newTableSchema)
Definition connection.cpp:1766
KexiDB::QuerySchema provides information about database query.
Definition queryschema.h:226
Definition tableschema.h:43
A KexiDBConnectionData is used to store the details needed for a connection with a database.
Definition kexidbconnectiondata.h:40
The cursor provides a control structure for the successive traversal of records in a result set as re...
Definition kexidbcursor.h:86
Drivers are the implementations Kexi uses to access the driver-backends.
Definition kexidbdriver.h:66
The KexiDBParser could be used to parse SQL-statements.
Definition kexidbparser.h:56
The KexiDBTableSchema object implements a KexiDBSchema for queries.
Definition kexidbschema.h:113
The KexiDBTableSchema object implements a KexiDBSchema for tables.
Definition kexidbschema.h:94
Transactions are used to ensure that integrity of a database is maintained.
Definition kexidbtransaction.h:40
KrossKexiDB provides access to the KexiDB database functionality.
Definition kexidbconnection.h:34
