Skip to content

Commit

Permalink
Fix HANA
Browse files Browse the repository at this point in the history
  • Loading branch information
elpaso committed Jan 13, 2021
1 parent 0e3422f commit dbef0ea
Show file tree
Hide file tree
Showing 2 changed files with 25 additions and 6 deletions.
18 changes: 16 additions & 2 deletions src/providers/hana/qgshanaproviderconnection.cpp
Expand Up @@ -33,7 +33,7 @@ QgsHanaProviderResultIterator::QgsHanaProviderResultIterator( QgsHanaResultSetRe
, mNextRow( mResultSet->next() )
{}

QVariantList QgsHanaProviderResultIterator::nextRow()
QVariantList QgsHanaProviderResultIterator::nextRowPrivate()
{
QVariantList ret;
if ( !mNextRow )
Expand All @@ -44,6 +44,11 @@ QVariantList QgsHanaProviderResultIterator::nextRow()
return ret;
}

bool QgsHanaProviderResultIterator::hasNextRowPrivate() const
{
return mNextRow;
}

QgsHanaProviderConnection::QgsHanaProviderConnection( const QString &name )
: QgsAbstractDatabaseProviderConnection( name )
{
Expand Down Expand Up @@ -250,7 +255,6 @@ QgsAbstractDatabaseProviderConnection::QueryResult QgsHanaProviderConnection::ex
unsigned short numColumns = md.getColumnCount();
for ( unsigned short i = 1; i <= numColumns; ++i )
ret.appendColumn( QgsHanaUtils::toQString( md.getColumnName( i ) ) );
ret.setRowCount( -1 );
return ret;
}
else
Expand Down Expand Up @@ -403,3 +407,13 @@ QList<QgsVectorDataProvider::NativeType> QgsHanaProviderConnection::nativeTypes(
throw QgsProviderConnectionException( QObject::tr( "Error retrieving native types for connection %1" ).arg( uri() ) );
return types;
}

QVariantList QgsHanaEmptyProviderResultIterator::nextRowPrivate()
{
return QVariantList();
}

bool QgsHanaEmptyProviderResultIterator::hasNextRowPrivate() const
{
return false;
}
13 changes: 9 additions & 4 deletions src/providers/hana/qgshanaproviderconnection.h
Expand Up @@ -23,20 +23,25 @@

struct QgsHanaEmptyProviderResultIterator: public QgsAbstractDatabaseProviderConnection::QueryResult::QueryResultIterator
{
QVariantList nextRow() override { return QVariantList(); }
bool hasNextRow() const override { return false; }
// QueryResultIterator interface
private:
QVariantList nextRowPrivate();
bool hasNextRowPrivate() const;
};

struct QgsHanaProviderResultIterator: public QgsAbstractDatabaseProviderConnection::QueryResult::QueryResultIterator
{
QgsHanaProviderResultIterator( QgsHanaResultSetRef &&resultSet );
QVariantList nextRow() override;
bool hasNextRow() const override { return mNextRow; }

private:
QgsHanaResultSetRef mResultSet;
unsigned short mNumColumns = 0;
bool mNextRow = false;

// QueryResultIterator interface
private:
QVariantList nextRowPrivate();
bool hasNextRowPrivate() const;
};

class QgsHanaProviderConnection : public QgsAbstractDatabaseProviderConnection
Expand Down

0 comments on commit dbef0ea

Please sign in to comment.