UDA Cursor Functions

Cursor Functions

As explained in the searches section, a cursor is used to navigate through a group of records satisfying the search criteria on a specified index. The function mco_uda_lookup() positions the cursor at the first object that satisfies the search criteria.

To initialize a cursor based on the index_no:

 
    MCO_RET mco_uda_cursor( mco_trans_h t,
                unsigned short struct_no,
                unsigned short index_no,
                /* out */ mco_cursor_t * cursor );
     

To position the cursor at the first object that satisfies the search criteria:

     
    MCO_RET mco_uda_lookup( mco_trans_h t,
                unsigned short struct_no,
                unsigned short index_no,
                MCO_OPCODE op,
                const mco_uda_value_t * keys,
                unsigned short keys_count,
                /* out */ mco_cursor_t * cursor );
     

The object handle can then be received using:

     
    MCO_RET mco_uda_from_cursor( mco_trans_h t,
                    const mco_cursor_t * cursor,
                    /* out */ mco_uda_object_handle_t * obj );
     

To obtain information about the index associated with the cursor use:

     
    MCO_RET mco_uda_cursor_info( mco_trans_h t,
                    const mco_metadict_header_t * metadict,
                    const mco_cursor_t * cursor,
                    /* out */ unsigned short * dict_no,
                    /* out */ unsigned short * struct_no,
                    /* out */ unsigned short * index_no );
     

To position the cursor in the index referenced by index_no at a specific object use:

     
    MCO_RET mco_uda_locate( mco_trans_h t,
                const mco_uda_object_handle_p obj,
                unsigned short index_no,
                /* out */ mco_cursor_t * cursor );
                 

To compare the value(s) referenced by the current position of the index cursor with value(s) supplied by the application use:

     
    MCO_RET mco_uda_compare( mco_trans_h t,
                const mco_cursor_t * cursor,
                const mco_uda_value_t * keys,
                unsigned short keys_count,
                /* out */ int * cmp_result );