23#include <tqstringlist.h>
28#include "mysqlconnection_p.h"
30#include <kexidb/connectiondata.h>
33#define NAMESPACE KexiMigration
35#define NAMESPACE KexiDB
38using namespace NAMESPACE;
42 : ConnectionInternal(connection)
49MySqlConnectionInternal::~MySqlConnectionInternal()
51 if (mysql_owned && mysql) {
57void MySqlConnectionInternal::storeResult()
59 res = mysql_errno(mysql);
60 errmsg = mysql_error(mysql);
74 if (!(mysql = mysql_init(mysql)))
77 KexiDBDrvDbg <<
"MySqlConnectionInternal::connect()" << endl;
78 TQCString localSocket;
80 if (hostName.isEmpty() || hostName.lower()==
"localhost") {
86 sockets.append(
"/var/lib/mysql/mysql.sock");
87 sockets.append(
"/var/run/mysqld/mysqld.sock");
88 sockets.append(
"/tmp/mysql.sock");
90 for(TQStringList::ConstIterator it = sockets.constBegin(); it != sockets.constEnd(); it++)
92 if(TQFile(*it).exists()) {
93 localSocket = ((TQString)(*it)).local8Bit();
104 hostName =
"127.0.0.1";
110 mysql_real_connect(mysql, hostName.latin1(), data.
userName.latin1(),
111 pwd, 0, data.
port, localSocket, 0);
112 if(mysql_errno(mysql) == 0)
123bool MySqlConnectionInternal::db_disconnect()
127 KexiDBDrvDbg <<
"MySqlConnection::disconnect()" << endl;
134bool MySqlConnectionInternal::useDatabase(
const TQString &dbName) {
136 return executeSQL(
"USE " + dbName);
141bool MySqlConnectionInternal::executeSQL(
const TQString& statement) {
144 TQCString queryStr=statement.utf8();
145 const char *query=queryStr;
146 if(mysql_real_query(mysql, query, strlen(query)) == 0)
156TQString MySqlConnectionInternal::escapeIdentifier(
const TQString& str)
const {
157 return TQString(str).replace(
'`',
"'");
163: MySqlConnectionInternal(connection)
172MySqlCursorData::~MySqlCursorData()
TQString localSocketFileName
Name of local (named) socket file.
TQString userName
Username used for the connection.
TQString password
Password used for the connection.
unsigned short int port
Port used for the remote connection.
TQString hostName
Host name used for the remote connection.
bool useLocalSocketFile
True if local socket file should be used instead of TCP/IP port.
Database specific connection data, e.g. host, port.
Provides database connection, allowing queries and data modification.