void QgsOracleColumnTypeThread::run() { mStopped = false; QgsDataSourceURI uri = QgsOracleConn::connUri( mName ); QgsOracleConn *conn = QgsOracleConn::connectDb( uri.connectionInfo() ); if ( !conn ) { QgsDebugMsg( "Connection failed - " + uri.connectionInfo() ); mStopped = true; return; } emit progressMessage( tr( "Retrieving tables of %1..." ).arg( mName ) ); QVector<QgsOracleLayerProperty> layerProperties; if ( !conn->supportedLayers( layerProperties, QgsOracleConn::geometryColumnsOnly( mName ), QgsOracleConn::userTablesOnly( mName ), mAllowGeometrylessTables ) || layerProperties.isEmpty() ) { return; } int i = 0, n = layerProperties.size(); for ( QVector<QgsOracleLayerProperty>::iterator it = layerProperties.begin(), end = layerProperties.end(); it != end; ++it ) { QgsOracleLayerProperty &layerProperty = *it; if ( !mStopped ) { emit progress( i++, n ); emit progressMessage( tr( "Scanning column %1.%2.%3..." ) .arg( layerProperty.ownerName ) .arg( layerProperty.tableName ) .arg( layerProperty.geometryColName ) ); conn->retrieveLayerTypes( layerProperty, mUseEstimatedMetadata, QgsOracleConn::onlyExistingTypes( mName ) ); } if ( mStopped ) { layerProperty.types.clear(); layerProperty.srids.clear(); } // Now tell the layer list dialog box... emit setLayerType( layerProperty ); } // store the list for later use (cache) if ( !mStopped ) mLayerProperties = layerProperties; emit progress( 0, 0 ); emit progressMessage( tr( "Table retrieval finished." ) ); conn->disconnect(); }
void QgsOracleNewConnection::on_btnConnect_clicked() { QgsDataSourceURI uri; uri.setConnection( txtHost->text(), txtPort->text(), txtDatabase->text(), txtUsername->text(), txtPassword->text() ); QgsOracleConn *conn = QgsOracleConn::connectDb( uri ); if ( conn ) { // Database successfully opened; we can now issue SQL commands. QMessageBox::information( this, tr( "Test connection" ), tr( "Connection to %1 was successful" ).arg( txtDatabase->text() ) ); // free connection resources conn->disconnect(); } else { QMessageBox::information( this, tr( "Test connection" ), tr( "Connection failed - Check settings and try again.\n\n" ) ); } }