#include <mysqldriver.h>

Inheritance diagram for KexiDB::MySqlDriver:
KexiDB::Driver KexiDB::Object

Public Member Functions

 MySqlDriver (TQObject *parent, const char *name, const TQStringList &args=TQStringList())
 
virtual bool isSystemDatabaseName (const TQString &n) const
 
virtual TQString escapeString (const TQString &str) const
 
virtual TQCString escapeString (const TQCString &str) const
 
virtual TQString escapeBLOB (const TQByteArray &array) const
 
- Public Member Functions inherited from KexiDB::Driver
Connection * createConnection (ConnectionData &conn_data, int options=0)
 
const TQPtrList< Connection > connectionsList () const
 
TQString fileDBDriverMimeType () const
 
const KService * service () const
 
bool isFileDriver () const
 
virtual bool isSystemObjectName (const TQString &n) const
 
bool isSystemFieldName (const TQString &n) const
 
int features () const
 
bool transactionsSupported () const
 
AdminTools & adminTools () const
 
virtual TQString sqlTypeName (int id_t, int p=0) const
 
virtual bool isValid ()
 
virtual DatabaseVersionInfo version () const =0
 
virtual TQString valueToSQL (uint ftype, const TQVariant &v) const
 
TQString valueToSQL (const TQString &ftype, const TQVariant &v) const
 
TQString valueToSQL (const Field *field, const TQVariant &v) const
 
virtual TQString dateTimeToSQL (const TQDateTime &v) const
 
TQString escapeIdentifier (const TQString &str, int options=EscapeDriver|EscapeAsNecessary) const
 
TQCString escapeIdentifier (const TQCString &str, int options=EscapeDriver|EscapeAsNecessary) const
 
TQVariant propertyValue (const TQCString &propName) const
 
TQString propertyCaption (const TQCString &propName) const
 
TQValueList< TQCString > propertyNames () const
 
- Public Member Functions inherited from KexiDB::Object
bool error () const
 
const TQString & errorMsg () const
 
int errorNum () const
 
int previousServerResult () const
 
TQString previousServerResultName () const
 
void debugError ()
 
virtual void clearError ()
 
virtual TQString serverErrorMsg ()
 
virtual int serverResult ()
 
virtual TQString serverResultName ()
 
TQString msgTitle () const
 
const TQString recentSQLString () const
 

Protected Member Functions

virtual TQString drv_escapeIdentifier (const TQString &str) const
 
virtual TQCString drv_escapeIdentifier (const TQCString &str) const
 
virtual Connection * drv_createConnection (ConnectionData &conn_data)
 
virtual bool drv_isSystemFieldName (const TQString &n) const
 
- Protected Member Functions inherited from KexiDB::Driver
 Driver (TQObject *parent, const char *name, const TQStringList &args=TQStringList())
 
virtual AdminTools * drv_createAdminTools () const
 
Connection * removeConnection (Connection *conn)
 
void initSQLKeywords (int hashSize=17)
 
- Protected Member Functions inherited from KexiDB::Object
 Object (MessageHandler *handler=0)
 
virtual void setError (int code=ERR_OTHER, const TQString &msg=TQString())
 
virtual void setError (const TQString &msg)
 
virtual void setError (const TQString &title, const TQString &msg)
 
void setError (KexiDB::Object *obj, const TQString &prependMessage=TQString())
 
virtual void setError (KexiDB::Object *obj, int code, const TQString &prependMessage=TQString())
 
virtual int askQuestion (const TQString &message, KMessageBox::DialogType dlgType, KMessageBox::ButtonCode defaultResult, const KGuiItem &buttonYes=KStdGuiItem::yes(), const KGuiItem &buttonNo=KStdGuiItem::no(), const TQString &dontShowAskAgainName=TQString(), int options=KMessageBox::Notify, MessageHandler *msgHandler=0)
 
virtual void drv_clearServerResult ()
 

Additional Inherited Members

- Public Types inherited from KexiDB::Driver
enum  Features {
  NoFeatures = 0 , SingleTransactions = 1 , MultipleTransactions = 2 , NestedTransactions = 4 ,
  CursorForward = 8 , CursorBackward = (CursorForward+16) , CompactingDatabaseSupported = 32 , IgnoreTransactions = 1024
}
 
enum  CreateConnectionOptions { ReadOnlyConnection = 1 }
 
enum  EscapeType { EscapeDriver = 0x01 , EscapeKexi = 0x02 }
 
enum  EscapePolicy { EscapeAsNecessary = 0x04 , EscapeAlways = 0x08 }
 
typedef TQMap< TQString, Info > InfoMap
 
- Static Public Member Functions inherited from KexiDB::Driver
static TQString defaultFileBasedDriverMimeType ()
 
static TQString defaultFileBasedDriverName ()
 
static bool isKexiDBSystemObjectName (const TQString &n)
 
static TQString defaultSQLTypeName (int id_t)
 
- Protected Attributes inherited from KexiDB::Driver
DriverBehaviour * beh
 
DriverPrivate * d
 
- Protected Attributes inherited from KexiDB::Object
TQString m_sql
 
TQString m_errorSql
 
int m_serverResult
 
TQString m_serverResultName
 
TQString m_serverErrorMsg
 
TQString m_errMsg
 

Detailed Description

MySQL database driver.

Definition at line 30 of file mysqldriver.h.

Constructor & Destructor Documentation

◆ MySqlDriver()

MySqlDriver::MySqlDriver ( TQObject *  parent,
const char *  name,
const TQStringList &  args = TQStringList() 
)

Constructor sets database features and maps the types in KexiDB::Field::Type to the MySQL types.

See: http://dev.mysql.com/doc/mysql/en/Column_types.html

Definition at line 57 of file mysqldriver.cpp.

◆ ~MySqlDriver()

MySqlDriver::~MySqlDriver ( )
virtual

Definition at line 96 of file mysqldriver.cpp.

Member Function Documentation

◆ drv_createConnection()

KexiDB::Connection * MySqlDriver::drv_createConnection ( ConnectionData &  conn_data)
protectedvirtual

For reimplemenation: creates and returns connection object with additional structures specific for a given driver. Connection object should inherit Connection and have a destructor that descructs all allocated driver-dependent connection structures.

Implements KexiDB::Driver.

Definition at line 101 of file mysqldriver.cpp.

◆ drv_escapeIdentifier() [1/2]

TQCString MySqlDriver::drv_escapeIdentifier ( const TQCString &  str) const
protectedvirtual

This is overloaded version of drv_escapeIdentifier( const TQString& str ) to be implemented in the same way.

Implements KexiDB::Driver.

Definition at line 207 of file mysqldriver.cpp.

◆ drv_escapeIdentifier() [2/2]

TQString MySqlDriver::drv_escapeIdentifier ( const TQString &  str) const
protectedvirtual

Add back-ticks to an identifier, and replace any back-ticks within the name with single quotes.

Implements KexiDB::Driver.

Definition at line 203 of file mysqldriver.cpp.

◆ drv_isSystemFieldName()

bool MySqlDriver::drv_isSystemFieldName ( const TQString &  n) const
protectedvirtual
Returns
true if n is a system field's name, build-in system field that cannot be used or created by a user, and in most cases user even shouldn't see this. The list is specific for a given driver implementation. For implementation.

Implements KexiDB::Driver.

Definition at line 111 of file mysqldriver.cpp.

◆ escapeBLOB()

TQString MySqlDriver::escapeBLOB ( const TQByteArray &  array) const
virtual

Escape BLOB value array.

Implements KexiDB::Driver.

Definition at line 183 of file mysqldriver.cpp.

◆ escapeString() [1/2]

TQCString MySqlDriver::escapeString ( const TQCString &  str) const
virtual

This is overloaded version of escapeString( const TQString& str ) to be implemented in the same way.

Todo:
optimize using mysql_real_escape_string()? see http://dev.mysql.com/doc/refman/5.0/en/string-syntax.html

Implements KexiDB::Driver.

Definition at line 188 of file mysqldriver.cpp.

◆ escapeString() [2/2]

TQString MySqlDriver::escapeString ( const TQString &  str) const
virtual

Escape a string for use as a value.

Todo:
support more characters, like %, _
Todo:
move new_string to Driver::m_new_string or so...

Implements KexiDB::Driver.

Definition at line 115 of file mysqldriver.cpp.

◆ isSystemDatabaseName()

bool MySqlDriver::isSystemDatabaseName ( const TQString &  n) const
virtual
Returns
true if n is a system database's name, eg. name of build-in, system database that cannot be used or created by a user, and in most cases user even shouldn't see this. The list is specific for a given driver implementation. For implementation.
See also
isSystemObjectName().

Implements KexiDB::Driver.

Definition at line 106 of file mysqldriver.cpp.


The documentation for this class was generated from the following files: