5.2.19hdfql_subcursor_first
Syntax
int hdfql_subcursor_first(HDFQL_CURSOR *cursor)
Description
Move the subcursor in use to the first position within the result subset. In other words, the subcursor will point to the first element of the result subset, and its position is set to zero. If the result subset is empty, an error is returned, and its position remains unchanged (i.e. remains minus one).
Parameter(s)
cursor – pointer to a cursor to move the subcursor in use to the first position within the result subset. If the pointer is NULL (in C), the subcursor of the cursor in use is moved to the first position instead. The equivalent of a NULL pointer in C++, Java, Python, C#, Fortran, R, and MATLAB HDFql wrappers is NULL, null, None, null, NULL(), NULL, and NaN, respectively. While in C cursor is mandatory, in C++, Java, Python, C#, Fortran, R, and MATLAB it is optional (when not specified, the subcursor of the cursor in use is moved to the first position instead).
Return
int – depending on the success in moving the subcursor to the first position within the result subset, it can be HDFQL_SUCCESS, HDFQL_ERROR_EMPTY, HDFQL_ERROR_BEFORE_FIRST, or HDFQL_ERROR_AFTER_LAST.
Example(s)
// create an HDF5 dataset named "my_dataset" of data type variable-length int of two dimensions (size 2x2)
hdfql_execute("CREATE DATASET my_dataset AS VARINT(2, 2)");
// insert (i.e. write) values into dataset "my_dataset"
hdfql_execute("INSERT INTO my_dataset VALUES(((7, 8, 5), (9)), ((6, 1, 2, 3), (4, 0)))");
// select (i.e. read) data from dataset "my_dataset" and populate cursor in use with it
hdfql_execute("SELECT FROM my_dataset");
// move the cursor in use to the first position within the result set
hdfql_cursor_first(NULL);
// display position of the subcursor in use within the result subset (should be "Position of subcursor is -1")
printf("Position of subcursor is %lld\n", hdfql_subcursor_get_position(NULL));
// move the subcursor in use to the first position within the result subset
hdfql_subcursor_first(NULL);
// display (again) position of the subcursor in use within the result subset (should be "Position of subcursor is 0")
printf("Position of subcursor is %lld\n", hdfql_subcursor_get_position(NULL));