next up previous contents
Next: Writing attributes Up: Attributes Previous: Attributes   Contents

Reading attributes

Attributes are read using idba_ancora:

c     ...setup a query...
      idba_voglioquesto(handle, count)
      do while (count.gt.0)
        call idba_dammelo(handle, param)

c       Read QC informations about the last value read
        call idba_voglioancora(handle, qc_count)
        do while (qc_count.gt.0)
            call idba_ancora(handle, param) 
            call idba_enqc(handle, param, value)
c           ...process the value...
            qc_count = qc_count - 1
        enddo

        count = count - 1
      enddo

This code introduces two new functions:

idba_voglioancora
Performs a query to retrieve attributes for the last variable read by idba_dammelo. It returns the number of attributes available.
idba_ancora
Retrieves one by one the values queried by idba_voglioancora if there are no more items available, the function will fail.

The parameter param will be set to the name (in the form *Bxxyyy) of the attribute just read.

It is possible to read attributes at a later time giving a context ID and a B table value:

c     Read the context ID after a prendilo or a dammelo
      idba_enqi(handle, "context_id", id)

c     ...a while later...

c     Query the attributes of the variable with the given
c     context ID and B table value
      idba_seti(handle, "*context_id", id)
      idba_seti(handle, "*var_related", "B12001")

c     These are ways one could choose specific attributes:
c     one attribute: idba_setc(handle, "*var", "B33007")
c     some attributes: idba_setc(handle, "*varlist", "B33007,B33036")
c     by default, all attributes are returned

c     Read QC informations about the last value read
      call idba_voglioancora(handle, qc_count)
      do while (qc_count.gt.0)
          call idba_ancora(handle, param) 
          call idba_enqc(handle, param, value)
c         ...process the value...
          qc_count = qc_count - 1
      enddo



root 2007-06-20