778 changes: 389 additions & 389 deletions src/providers/mssql/qgsmssqlgeometryparser.cpp

Large diffs are not rendered by default.

18 changes: 9 additions & 9 deletions src/providers/mssql/qgsmssqlnewconnection.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@ QgsMssqlNewConnection::QgsMssqlNewConnection( QWidget *parent, const QString& co
cb_geometryColumns->setChecked( settings.value( key + "/geometryColumns", true ).toBool() );
cb_allowGeometrylessTables->setChecked( settings.value( key + "/allowGeometrylessTables", true ).toBool() );
cb_useEstimatedMetadata->setChecked( settings.value( key + "/estimatedMetadata", false ).toBool() );

if ( settings.value( key + "/saveUsername" ).toString() == "true" )
{
txtUsername->setText( settings.value( key + "/username" ).toString() );
Expand Down Expand Up @@ -118,7 +118,7 @@ void QgsMssqlNewConnection::accept()
settings.setValue( baseKey + "/geometryColumns", cb_geometryColumns->isChecked() );
settings.setValue( baseKey + "/allowGeometrylessTables", cb_allowGeometrylessTables->isChecked() );
settings.setValue( baseKey + "/estimatedMetadata", cb_useEstimatedMetadata->isChecked() );

QDialog::accept();
}

Expand All @@ -135,17 +135,17 @@ QgsMssqlNewConnection::~QgsMssqlNewConnection()

void QgsMssqlNewConnection::testConnection()
{
if (txtService->text().isEmpty())
if ( txtService->text().isEmpty() )
{
if (txtHost->text().isEmpty())
if ( txtHost->text().isEmpty() )
{
QMessageBox::information( this,
tr( "Test connection" ),
tr( "Connection failed - Host name hasn't been specified.\n\n" ) );
return;
}

if (txtDatabase->text().isEmpty())
if ( txtDatabase->text().isEmpty() )
{
QMessageBox::information( this,
tr( "Test connection" ),
Expand All @@ -154,10 +154,10 @@ void QgsMssqlNewConnection::testConnection()
}
}

QSqlDatabase db = QgsMssqlProvider::GetDatabase( txtService->text().trimmed(),
txtHost->text().trimmed(), txtDatabase->text().trimmed(),
txtUsername->text().trimmed(), txtPassword->text().trimmed() );
QSqlDatabase db = QgsMssqlProvider::GetDatabase( txtService->text().trimmed(),
txtHost->text().trimmed(), txtDatabase->text().trimmed(),
txtUsername->text().trimmed(), txtPassword->text().trimmed() );

if ( db.isOpen() )
db.close();

Expand Down
899 changes: 450 additions & 449 deletions src/providers/mssql/qgsmssqlprovider.cpp

Large diffs are not rendered by default.

42 changes: 21 additions & 21 deletions src/providers/mssql/qgsmssqlprovider.h
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@ class QTextStream;
class QgsMssqlGeometryParser
{

protected:
protected:
unsigned char* pszData;
unsigned char* pszWkb;
int nWkbLen;
Expand All @@ -65,23 +65,23 @@ class QgsMssqlGeometryParser
int nNumShapes;
int nSRSId;

protected:
void CopyBytes(void* src, int len);
void CopyPoint(int iPoint);
void ReadPoint(int iShape);
void ReadMultiPoint(int iShape);
void ReadLineString(int iShape);
void ReadMultiLineString(int iShape);
void ReadPolygon(int iShape);
void ReadMultiPolygon(int iShape);
void ReadGeometryCollection(int iShape);

public:
protected:
void CopyBytes( void* src, int len );
void CopyPoint( int iPoint );
void ReadPoint( int iShape );
void ReadMultiPoint( int iShape );
void ReadLineString( int iShape );
void ReadMultiLineString( int iShape );
void ReadPolygon( int iShape );
void ReadMultiPolygon( int iShape );
void ReadGeometryCollection( int iShape );

public:
QgsMssqlGeometryParser();
unsigned char* ParseSqlGeometry(unsigned char* pszInput, int nLen);
unsigned char* ParseSqlGeometry( unsigned char* pszInput, int nLen );
int GetSRSId() { return nSRSId; };
int GetWkbLen() { return nWkbLen; };
void DumpMemoryToLog(char* pszMsg, unsigned char* pszInput, int nLen);
void DumpMemoryToLog( char* pszMsg, unsigned char* pszInput, int nLen );
};


Expand All @@ -100,8 +100,8 @@ class QgsMssqlProvider : public QgsVectorDataProvider

virtual ~QgsMssqlProvider();

static QSqlDatabase GetDatabase(QString driver, QString host, QString database, QString username, QString password);
static bool OpenDatabase(QSqlDatabase db);
static QSqlDatabase GetDatabase( QString driver, QString host, QString database, QString username, QString password );
static bool OpenDatabase( QSqlDatabase db );

/* Implementation of functions from QgsVectorDataProvider */

Expand Down Expand Up @@ -261,7 +261,7 @@ class QgsMssqlProvider : public QgsVectorDataProvider
*/
virtual bool createSpatialIndex();

/**Create an attribute index on the datasource*/
/**Create an attribute index on the datasource*/
virtual bool createAttributeIndex( int field );

/** convert a QgsField to work with MSSQL */
Expand All @@ -283,7 +283,7 @@ class QgsMssqlProvider : public QgsVectorDataProvider

protected:
/** loads fields from input file to member attributeFields */
QVariant::Type DecodeODBCType(int sqltype);
QVariant::Type DecodeODBCType( int sqltype );
void loadFields();
void loadMetadata();

Expand All @@ -295,7 +295,7 @@ class QgsMssqlProvider : public QgsVectorDataProvider
QgsMssqlGeometryParser parser;

int mFieldCount; // Note: this includes field count for wkt field

//! Layer extent
QgsRectangle mExtent;

Expand Down Expand Up @@ -327,7 +327,7 @@ class QgsMssqlProvider : public QgsVectorDataProvider

// The current sql query
QSqlQuery mQuery;

// The current sql statement
QString mStatement;

Expand Down
90 changes: 45 additions & 45 deletions src/providers/mssql/qgsmssqlsourceselect.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -444,7 +444,7 @@ void QgsMssqlSourceSelect::addTables()
void QgsMssqlSourceSelect::on_btnConnect_clicked()
{
cbxAllowGeometrylessTables->setEnabled( true );

if ( mColumnTypeThread )
{
mColumnTypeThread->stop();
Expand Down Expand Up @@ -477,11 +477,11 @@ void QgsMssqlSourceSelect::on_btnConnect_clicked()
bool allowGeometrylessTables = cbxAllowGeometrylessTables->isChecked();

mConnInfo = "dbname='" + database + "' host=" + host + " user='" + username + "' password='" + password + "'";
if (!service.isEmpty())
if ( !service.isEmpty() )
mConnInfo += " service='" + service + "'";

QSqlDatabase db = QgsMssqlProvider::GetDatabase( service,
host, database, username, password );
QSqlDatabase db = QgsMssqlProvider::GetDatabase( service,
host, database, username, password );

if ( !QgsMssqlProvider::OpenDatabase( db ) )
{
Expand All @@ -492,33 +492,33 @@ void QgsMssqlSourceSelect::on_btnConnect_clicked()
}

QString connectionName;
if (service.isEmpty())
if ( service.isEmpty() )
{
if (host.isEmpty())
{
QMessageBox::warning( this,
tr( "MSSQL Provider" ), "QgsMssqlProvider host name not specified" );
return;
}
if ( host.isEmpty() )
{
QMessageBox::warning( this,
tr( "MSSQL Provider" ), "QgsMssqlProvider host name not specified" );
return;
}

if (database.isEmpty())
{
QMessageBox::warning( this,
tr( "MSSQL Provider" ), "QgsMssqlProvider database name not specified" );
return;
}
connectionName = host + "." + database;
if ( database.isEmpty() )
{
QMessageBox::warning( this,
tr( "MSSQL Provider" ), "QgsMssqlProvider database name not specified" );
return;
}
connectionName = host + "." + database;
}
else
connectionName = service;
connectionName = service;


// Read supported layers from database
QApplication::setOverrideCursor( Qt::WaitCursor );

// build sql statement
QString query("select ");
if (useGeometryColumns)
QString query( "select " );
if ( useGeometryColumns )
{
query += "f_table_schema, f_table_name, f_geometry_column, srid, geometry_type from geometry_columns";
}
Expand All @@ -527,30 +527,30 @@ void QgsMssqlSourceSelect::on_btnConnect_clicked()
query += "sys.schemas.name, sys.objects.name, sys.columns.name, null, 'GEOMETRY' from sys.columns join sys.types on sys.columns.system_type_id = sys.types.system_type_id and sys.columns.user_type_id = sys.types.user_type_id join sys.objects on sys.objects.object_id = sys.columns.object_id join sys.schemas on sys.objects.schema_id = sys.schemas.schema_id where sys.types.name = 'geometry' or sys.types.name = 'geography' and sys.objects.type = 'U'";
}

if (allowGeometrylessTables)
if ( allowGeometrylessTables )
{
query += " union all select sys.schemas.name, sys.objects.name, null, null, 'NONE' from sys.objects join sys.schemas on sys.objects.schema_id = sys.schemas.schema_id where not exists (select * from sys.columns sc1 join sys.types on sc1.system_type_id = sys.types.system_type_id where (sys.types.name = 'geometry' or sys.types.name = 'geography') and sys.objects.object_id = sc1.object_id) and sys.objects.type = 'U'";
}

// issue the sql query
QSqlQuery q = QSqlQuery(db);
q.setForwardOnly(true);
QSqlQuery q = QSqlQuery( db );
q.setForwardOnly( true );
q.exec( query );

if (q.isActive())
if ( q.isActive() )
{
while ( q.next() )
while ( q.next() )
{
QgsMssqlLayerProperty layer;
layer.schemaName = q.value(0).toString();
layer.tableName = q.value(1).toString();
layer.geometryColName = q.value(2).toString();
layer.srid = q.value(3).toString();
layer.type = q.value(4).toString();
layer.schemaName = q.value( 0 ).toString();
layer.tableName = q.value( 1 ).toString();
layer.geometryColName = q.value( 2 ).toString();
layer.srid = q.value( 3 ).toString();
layer.type = q.value( 4 ).toString();
layer.pkCols = QStringList(); //TODO

QString type = layer.type;
QString srid = layer.srid;
QString srid = layer.srid;

if ( !layer.geometryColName.isNull() )
{
Expand Down Expand Up @@ -580,8 +580,8 @@ void QgsMssqlSourceSelect::on_btnConnect_clicked()
//expand all the toplevel items
for ( int i = 0; i < numTopLevelItems; ++i )
{
mTablesTreeView->expand( mProxyModel.mapFromSource(
mTableModel.indexFromItem( mTableModel.invisibleRootItem()->child( i ) ) ) );
mTablesTreeView->expand( mProxyModel.mapFromSource(
mTableModel.indexFromItem( mTableModel.invisibleRootItem()->child( i ) ) ) );
}
}
}
Expand Down Expand Up @@ -673,7 +673,7 @@ void QgsMssqlSourceSelect::addSearchGeometryColumn( QString connectionName, QgsM
mColumnTypeThread, SLOT( addGeometryColumn( QgsMssqlLayerProperty ) ) );
connect( mColumnTypeThread, SIGNAL( finished() ),
this, SLOT( columnThreadFinished() ) );

}

emit addGeometryColumn( layerProperty );
Expand Down Expand Up @@ -764,12 +764,12 @@ void QgsMssqlGeomColumnTypeThread::run()
.arg( layerProperty.geometryColName )
.arg( table );


// issue the sql query
QSqlDatabase db = QSqlDatabase::database(mConnectionName);
QSqlQuery q = QSqlQuery(db);
q.setForwardOnly(true);
if (!q.exec( query ))
QSqlDatabase db = QSqlDatabase::database( mConnectionName );
QSqlQuery q = QSqlQuery( db );
q.setForwardOnly( true );
if ( !q.exec( query ) )
{
QString msg = q.lastError().text();
QgsDebugMsg( msg );
Expand All @@ -778,19 +778,19 @@ void QgsMssqlGeomColumnTypeThread::run()
QString type;
QString srid;

if (q.isActive())
if ( q.isActive() )
{
QStringList types;
QStringList srids;

while ( q.next() )
while ( q.next() )
{
QString type = q.value(0).toString().toUpper();
QString srid = q.value(1).toString();
QString type = q.value( 0 ).toString().toUpper();
QString srid = q.value( 1 ).toString();

if ( type.isEmpty() )
continue;

types << type;
srids << srid;
}
Expand Down
2 changes: 1 addition & 1 deletion src/providers/mssql/qgsmssqltablemodel.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -405,7 +405,7 @@ QGis::GeometryType QgsMssqlTableModel::geomTypeFromMssql( QString dbType )
}
else
{
return QGis::UnknownGeometry;
return QGis::UnknownGeometry;
}
}

Expand Down