20#ifndef KEXIDB_DRIVER_H
21#define KEXIDB_DRIVER_H
24#include <tqdatetime.h>
27#include <kexidb/global.h>
28#include <kexidb/object.h>
29#include <kexidb/field.h>
38class ConnectionInternal;
76 TQString name, caption, comment, fileDBMimeType;
84 typedef TQMap<TQString,Info> InfoMap;
90 SingleTransactions = 1,
93 MultipleTransactions = 2,
97 NestedTransactions = 4,
102 CursorBackward = (CursorForward+16),
104 CompactingDatabaseSupported = 32,
111 IgnoreTransactions = 1024
116 ReadOnlyConnection = 1
129 const TQPtrList<Connection> connectionsList() const;
140 TQString fileDBDriverMimeType() const;
144 static TQString defaultFileBasedDriverMimeType();
147 static TQString defaultFileBasedDriverName();
150 const KService* service() const;
153 bool isFileDriver() const;
164 virtual bool isSystemObjectName( const TQString& n ) const;
169 static bool isKexiDBSystemObjectName( const TQString& n );
185 bool isSystemFieldName( const TQString& n ) const;
189 int features() const;
193 bool transactionsSupported() const;
201 virtual TQString sqlTypeName( int id_t, int p=0) const;
204 static TQString defaultSQLTypeName( int id_t);
224 virtual TQString valueToSQL( uint ftype, const TQVariant& v ) const;
227 inline TQString valueToSQL( const TQString& ftype, const TQVariant& v ) const {
228 return valueToSQL(Field::typeForString(ftype), v);
233 return valueToSQL( (field ? field->type() : Field::InvalidType), v );
247 return TQString( "\'")+v.toString(TQt::ISODate)+ "\'";
265 virtual TQString escapeBLOB( const TQByteArray& array) const = 0;
270 enum EscapeType { EscapeDriver = 0x01, EscapeKexi = 0x02};
272 enum EscapePolicy { EscapeAsNecessary = 0x04, EscapeAlways = 0x08 };
280 TQString escapeIdentifier( const TQString& str,
281 int options = EscapeDriver|EscapeAsNecessary) const;
283 TQCString escapeIdentifier( const TQCString& str,
284 int options = EscapeDriver|EscapeAsNecessary) const;
288 TQVariant propertyValue( const TQCString& propName ) const;
292 TQString propertyCaption( const TQCString& propName ) const;
295 TQValueList<TQCString> propertyNames() const;
308 Driver( TQObject *parent, const char *name, const TQStringList &args = TQStringList() );
344 virtual AdminTools* drv_createAdminTools() const;
354 friend class DriverManagerInternal;
361 void initSQLKeywords( int hashSize = 17);
363 DriverBehaviour *beh;
371#define KEXIDB_DRIVER \
373 virtual DatabaseVersionInfo version() const;
Database specific connection data, e.g. host, port.
Provides database connection, allowing queries and data modification.
Provides database cursor functionality.
Contains database version information about a Kexi-compatible database. The version is stored as inte...
bool fileBased true is the driver is for file-based database backend
Generic database abstraction.
virtual TQString dateTimeToSQL(const TQDateTime &v) const
virtual TQCString drv_escapeIdentifier(const TQCString &str) const =0
virtual TQString escapeString(const TQString &str) const =0
virtual DatabaseVersionInfo version() const =0
virtual TQString escapeBLOB(const TQByteArray &array) const =0
virtual bool drv_isSystemFieldName(const TQString &n) const =0
virtual TQCString escapeString(const TQCString &str) const =0
virtual bool isSystemDatabaseName(const TQString &n) const =0
virtual TQString drv_escapeIdentifier(const TQString &str) const =0
Driver(TQObject *parent, const char *name, const TQStringList &args=TQStringList())
virtual Connection * drv_createConnection(ConnectionData &conn_data)=0
TQString valueToSQL(const Field *field, const TQVariant &v) const Like above method, for field.
CreateConnectionOptions Options used for createConnection()
TQString valueToSQL(const TQString &ftype, const TQVariant &v) const Like above but with the fildtype as string.
High-level database connectivity library with database backend drivers.
|