|
|
|
@ -466,7 +466,7 @@ bool QMYSQLDriver::open( const QString& db,
|
|
|
|
|
if ( isOpen() )
|
|
|
|
|
close();
|
|
|
|
|
|
|
|
|
|
unsigned int optionFlags = 0;
|
|
|
|
|
unsigned int clientOptionFlags = 0;
|
|
|
|
|
|
|
|
|
|
QStringList raw = QStringList::split( ';', connOpts );
|
|
|
|
|
QStringList opts;
|
|
|
|
@ -487,38 +487,44 @@ bool QMYSQLDriver::open( const QString& db,
|
|
|
|
|
opts << tmp;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (!(d->mysql = mysql_init((MYSQL*) 0))) {
|
|
|
|
|
setLastError( qMakeError( "Unable to connect", QSqlError::Connection, d ) );
|
|
|
|
|
mysql_close( d->mysql );
|
|
|
|
|
setOpenError( TRUE );
|
|
|
|
|
return FALSE;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
for ( it = opts.begin(); it != opts.end(); ++it ) {
|
|
|
|
|
QString opt( (*it).upper() );
|
|
|
|
|
if ( opt == "CLIENT_COMPRESS" )
|
|
|
|
|
optionFlags |= CLIENT_COMPRESS;
|
|
|
|
|
clientOptionFlags |= CLIENT_COMPRESS;
|
|
|
|
|
else if ( opt == "CLIENT_FOUND_ROWS" )
|
|
|
|
|
optionFlags |= CLIENT_FOUND_ROWS;
|
|
|
|
|
clientOptionFlags |= CLIENT_FOUND_ROWS;
|
|
|
|
|
else if ( opt == "CLIENT_IGNORE_SPACE" )
|
|
|
|
|
optionFlags |= CLIENT_IGNORE_SPACE;
|
|
|
|
|
clientOptionFlags |= CLIENT_IGNORE_SPACE;
|
|
|
|
|
else if ( opt == "CLIENT_INTERACTIVE" )
|
|
|
|
|
optionFlags |= CLIENT_INTERACTIVE;
|
|
|
|
|
clientOptionFlags |= CLIENT_INTERACTIVE;
|
|
|
|
|
else if ( opt == "CLIENT_NO_SCHEMA" )
|
|
|
|
|
optionFlags |= CLIENT_NO_SCHEMA;
|
|
|
|
|
clientOptionFlags |= CLIENT_NO_SCHEMA;
|
|
|
|
|
else if ( opt == "CLIENT_ODBC" )
|
|
|
|
|
optionFlags |= CLIENT_ODBC;
|
|
|
|
|
clientOptionFlags |= CLIENT_ODBC;
|
|
|
|
|
else if ( opt == "CLIENT_SSL" )
|
|
|
|
|
optionFlags |= CLIENT_SSL;
|
|
|
|
|
clientOptionFlags |= CLIENT_SSL;
|
|
|
|
|
else if ( opt == "MYSQL_OPT_RECONNECT" )
|
|
|
|
|
optionFlags |= MYSQL_OPT_RECONNECT;
|
|
|
|
|
mysql_options(d->mysql, MYSQL_OPT_RECONNECT, NULL);
|
|
|
|
|
else
|
|
|
|
|
qWarning( "QMYSQLDriver::open: Unknown connect option '%s'", (*it).latin1() );
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if ( (d->mysql = mysql_init((MYSQL*) 0)) &&
|
|
|
|
|
mysql_real_connect( d->mysql,
|
|
|
|
|
if ( mysql_real_connect( d->mysql,
|
|
|
|
|
host,
|
|
|
|
|
user,
|
|
|
|
|
password,
|
|
|
|
|
db.isNull() ? QString("") : db,
|
|
|
|
|
(port > -1) ? port : 0,
|
|
|
|
|
NULL,
|
|
|
|
|
optionFlags ) )
|
|
|
|
|
clientOptionFlags ) )
|
|
|
|
|
{
|
|
|
|
|
if ( !db.isEmpty() && mysql_select_db( d->mysql, db )) {
|
|
|
|
|
setLastError( qMakeError("Unable open database '" + db + "'", QSqlError::Connection, d ) );
|
|
|
|
|