diff --git a/dlls/msi/table.c b/dlls/msi/table.c index 90051f3466f..dbfad627013 100644 --- a/dlls/msi/table.c +++ b/dlls/msi/table.c @@ -1220,7 +1220,10 @@ static UINT TABLE_execute( struct tagMSIVIEW *view, MSIRECORD *record ) TRACE("%p %p\n", tv, record); if( tv->table ) - return ERROR_FUNCTION_FAILED; + { + release_table( tv->db, tv->table ); + tv->table = NULL; + } r = get_table( tv->db, tv->name, &tv->table ); if( r != ERROR_SUCCESS ) diff --git a/dlls/msi/where.c b/dlls/msi/where.c index 8b6e1ccff58..927955ecd3a 100644 --- a/dlls/msi/where.c +++ b/dlls/msi/where.c @@ -247,6 +247,7 @@ static UINT WHERE_execute( struct tagMSIVIEW *view, MSIRECORD *record ) if( !wv->reorder ) return ERROR_FUNCTION_FAILED; + wv->row_count = 0; for( i=0; i