The following code is an example of querying with a prepared statement. Error handling is omitted. Two metadata fields are used with the definitions from the schema:
<field name="test_date" type="date"> <field name="test_status" type="string"> hcerr_t res; time_t t; struct tm *date; hc_pstmt_t *pstmt; hc_query_result_set_t *rset; hc_string_t selects[] = { "test_status" }; // get today’s date time(&t); date = gmtime(&t); // list all OIDs with today’s date res = hc_pstmt_create(session, "test_date = ?", &pstmt); res = hc_pstmt_set_date(pstmt, 1, date); res = hc_pstmt_query_ez(pstmt, NULL, 0, 2000, &rset); while (1) { hc_oid oid; int finished; res = hc_qrs_next_ez(rset, &oid, NULL, &finished); if (finished) break; printf("today’s oid: %s\n", oid); } res = hc_qrs_free(rset); // list all OIDs from yesterday with test_status t = 86400; // 86400 sec/day date = gmtime(&t); res = hc_pstmt_set_date(pstmt, 1, date); res = hc_pstmt_query_ez(pstmt, selects, 1, 2000, &rset); while (1) { hc_oid oid; hc_nvr_t *nvr int finished; hc_string_t test_status; res = hc_qrs_next_ez(rset, &oid, &nvr, &finished); if (finished) break; res = hc_nvr_get_string(nvr, "test_status", &test_status); printf("yesterday’s oid & test_status: %s %s\n", oid, test_status); hc_nvr_free(nvr); } res = hc_qrs_free(rset);
The following function is defined to delete records: hc_delete_ez.
Deletes the metadata record for specified OID.
hcerr_t hc_delete_ez(hc_session_t *session, hc_oid *oid);
This function deletes the metadata record for the specified OID. When the last metadata record associated with a data object is deleted, the underlying data object is also deleted.
session
IN: Pointer to the session.
oid
IN: The specified OID.
HCERR_OK HCERR_BAD_REQUEST HCERR_OOM HCERR_NULL_SESSION HCERR_INVALID_SESSION HCERR_INVALID_OID
The following functions are defined for translating error codes and type codes into strings:
Translates an error code into a string.
char *hc_decode_hcerr(hcerr_t res);
Translates an error code into a string.
res
IN: The error code returned by a function.
Translates a type code into a string.
char *hc_decode_hc_type(hc_type_t type);
Translates a type code into a string.
type
IN: The type code to translate.