QgsMssqlFeatureIterator::QgsMssqlFeatureIterator( QgsMssqlFeatureSource* source, bool ownSource, const QgsFeatureRequest& request ) : QgsAbstractFeatureIteratorFromSource<QgsMssqlFeatureSource>( source, ownSource, request ) , mExpressionCompiled( false ) , mOrderByCompiled( false ) { mClosed = false; mQuery = nullptr; mParser.IsGeography = mSource->mIsGeography; BuildStatement( request ); // connect to the database mDatabase = QgsMssqlProvider::GetDatabase( mSource->mService, mSource->mHost, mSource->mDatabaseName, mSource->mUserName, mSource->mPassword ); if ( !mDatabase.open() ) { QgsDebugMsg( "Failed to open database" ); QgsDebugMsg( mDatabase.lastError().text() ); return; } // create sql query mQuery = new QSqlQuery( mDatabase ); // start selection rewind(); }
QgsMssqlFeatureIterator::QgsMssqlFeatureIterator( QgsMssqlFeatureSource* source, bool ownSource, const QgsFeatureRequest& request ) : QgsAbstractFeatureIteratorFromSource( source, ownSource, request ) { mClosed = false; mQuery = NULL; mParser.IsGeography = mSource->mIsGeography; BuildStatement( request ); // connect to the database mDatabase = GetDatabase(mSource->mDriver, mSource->mHost, mSource->mDatabaseName, mSource->mUserName, mSource->mPassword); if ( !mDatabase.open() ) { QgsDebugMsg( "Failed to open database" ); QString msg = mDatabase.lastError().text(); QgsDebugMsg( msg ); return; } // create sql query mQuery = new QSqlQuery( mDatabase ); // start selection rewind(); }
QgsDb2FeatureIterator::QgsDb2FeatureIterator( QgsDb2FeatureSource* source, bool ownSource, const QgsFeatureRequest& request ) : QgsAbstractFeatureIteratorFromSource<QgsDb2FeatureSource>( source, ownSource, request ) { mClosed = false; mQuery = nullptr; mFetchCount = 0; BuildStatement( request ); // connect to the database QString errMsg; mDatabase = QgsDb2Provider::getDatabase( mSource->mConnInfo, errMsg ); if ( !errMsg.isEmpty() ) { QgsDebugMsg( "Failed to open database: " + errMsg ); return; } // create sql query mQuery = new QSqlQuery( mDatabase ); // start selection rewind(); }
CPLODBCStatement *OGRMSSQLSpatialTableLayer::GetStatement() { if( poStmt == NULL ) { poStmt = BuildStatement(BuildFields()); iNextShapeId = 0; } return poStmt; }
QgsMssqlFeatureIterator::QgsMssqlFeatureIterator( QgsMssqlFeatureSource *source, bool ownSource, const QgsFeatureRequest &request ) : QgsAbstractFeatureIteratorFromSource<QgsMssqlFeatureSource>( source, ownSource, request ) { mClosed = false; mParser.IsGeography = mSource->mIsGeography; if ( mRequest.destinationCrs().isValid() && mRequest.destinationCrs() != mSource->mCrs ) { mTransform = QgsCoordinateTransform( mSource->mCrs, mRequest.destinationCrs() ); } try { mFilterRect = filterRectToSourceCrs( mTransform ); } catch ( QgsCsException & ) { // can't reproject mFilterRect mClosed = true; return; } BuildStatement( request ); // connect to the database mDatabase = QgsMssqlProvider::GetDatabase( mSource->mService, mSource->mHost, mSource->mDatabaseName, mSource->mUserName, mSource->mPassword ); if ( !mDatabase.open() ) { QgsDebugMsg( "Failed to open database" ); QgsDebugMsg( mDatabase.lastError().text() ); return; } // create sql query mQuery.reset( new QSqlQuery( mDatabase ) ); // start selection rewind(); }
int OGRMSSQLSpatialTableLayer::GetFeatureCount( int bForce ) { GetLayerDefn(); if( TestCapability(OLCFastFeatureCount) == FALSE ) return OGRMSSQLSpatialLayer::GetFeatureCount( bForce ); ClearStatement(); CPLODBCStatement* poStatement = BuildStatement( "count(*)" ); if (poStatement == NULL || !poStatement->Fetch()) { delete poStatement; return OGRMSSQLSpatialLayer::GetFeatureCount( bForce ); } int nRet = atoi(poStatement->GetColData( 0 )); delete poStatement; return nRet; }
QgsDb2FeatureIterator::QgsDb2FeatureIterator( QgsDb2FeatureSource *source, bool ownSource, const QgsFeatureRequest &request ) : QgsAbstractFeatureIteratorFromSource<QgsDb2FeatureSource>( source, ownSource, request ) { mClosed = false; if ( mRequest.destinationCrs().isValid() && mRequest.destinationCrs() != mSource->mCrs ) { mTransform = QgsCoordinateTransform( mSource->mCrs, mRequest.destinationCrs() ); } try { mFilterRect = filterRectToSourceCrs( mTransform ); } catch ( QgsCsException & ) { // can't reproject mFilterRect mClosed = true; return; } BuildStatement( request ); // connect to the database QString errMsg; mDatabase = QgsDb2Provider::getDatabase( mSource->mConnInfo, errMsg ); if ( !errMsg.isEmpty() ) { QgsDebugMsg( "Failed to open database: " + errMsg ); return; } // create sql query mQuery.reset( new QSqlQuery( mDatabase ) ); // start selection rewind(); }