public final function fetchIterateAll( string $sql, array $bindParams = [], $fetchStyle = \PDO::FETCH_ASSOC )
      : \Generator
   {

      $this->open();

      try
      {
         if ( 1 > \count( $bindParams ) )
         {
            $stmt = $this->_pdo->query( $sql );
            while ( $record = $stmt->fetch( $fetchStyle, \PDO::FETCH_ORI_NEXT ) )
            {
               yield $record;
            }
         }
         else
         {
            $stmt = $this->_pdo->prepare( $sql );
            $stmt->execute( $bindParams );

            while ( $record = $stmt->fetch( $fetchStyle, \PDO::FETCH_ORI_NEXT ) )
            {
               yield $record;
            }
         }
      }
      catch ( \Throwable $ex )
      {
         throw new QueryException( $this->_driver, $sql, $bindParams, 'Can not fetch all data from query!' );
      }

   }