cursor/printSiblingNamesOnMothersSide.c
{
RDM_RETCODE rc;
char name[32];
RDM_CURSOR children = NULL;
RDM_CURSOR cursor = NULL;
rc = rdm_cursorGetSiblingRows (child, REF_MOTHERS_CHILDREN, &children);
{
rc = rdm_cursorMoveToFirst (children);
}
/* Iterate over all mothers children */
while (rc == sOKAY)
{
const char *relationship = "Sibling";
RDM_CURSOR_COMPARE comparison;
children, REF_FATHERS_CHILDREN, &cursor);
{
relationship = "Half brother or sister";
rc = sOKAY;
}
if (rc == sOKAY)
{
rc = rdm_cursorReadColumn (
children, COL_CHILD_CHILD_NAME, name, sizeof (name), NULL);
}
if (rc == sOKAY)
{
rdm_cursorComparePosition (children, child, &comparison);
}
/* Do not print out ourself */
{
printf ("%s: %s\n", relationship, name);
}
if (rc == sOKAY)
{
rc = rdm_cursorMoveToNext (children);
}
}
rc = sOKAY;
rdm_cursorFree (children);
rdm_cursorFree (cursor);
return rc;
}
RDM_RETCODE rdm_cursorGetSiblingRows(RDM_CURSOR memberCursor, RDM_REF_ID refId, RDM_CURSOR *pCursor)
Associate an RDM_CURSOR with siblings.
RDM_CURSOR_COMPARE
Enumeration for RDM cursor comparisons.
Definition: rdmtypes.h:228
RDM_RETCODE rdm_cursorComparePosition(RDM_CURSOR cursorPrimary, RDM_CURSOR cursorSecondary, RDM_CURSOR_COMPARE *comparison)
compare the position of a cursor relative to another cursor
RDM_RETCODE rdm_cursorGetSiblingRowsAtPosition(RDM_CURSOR memberCursor, RDM_REF_ID refId, RDM_CURSOR *pCursor)
Associate an RDM_CURSOR with siblings.
RDM_RETCODE rdm_cursorReadColumn(RDM_CURSOR cursor, RDM_COLUMN_ID columnId, void *columnValue, size_t bytesIn, size_t *bytesOut)
Read a single column from a table row.