Я ищу примеры использования neo4j_client в C ++. в тестирование Я вижу neo4j_result_t, но нет примера итерации или вызова полей по имени. Это возможно?
Результаты возвращаются как neo4j_result_stream_t
, который представляет поток строк результатов. Количество столбцов в результате доступно через neo4j_nfields
, и их имена через neo4j_fieldname
, оба из которых принимают neo4j_result_stream_t
указатель в качестве параметра.
Чтобы перебрать строки результата, используйте neo4j_fetch_next
который возвращает neo4j_result_t
. И чтобы извлечь значения для каждого столбца из строки (полей), передайте указатель на neo4j_result_field
(вместе с индексом столбца).
Примером будет что-то вроде этого:
neo4j_result_stream_t *results =
neo4j_run(session, "MATCH (n) RETURN n.name, n.age", neo4j_null);
if (results == NULL)
{
neo4j_perror(stderr, errno, "Failed to run statement");
return EXIT_FAILURE;
}
int ncolumns = neo4j_nfields(results);
if (ncolumns < 0)
{
neo4j_perror(stderr, errno, "Failed to retrieve results");
return EXIT_FAILURE;
}
neo4j_result_t *result;
while ((result = neo4j_fetch_next(results)) != NULL)
{
unsigned int i;
for (i = 0; i < ncolumns; ++i)
{
if (i > 0)
{
printf(", ");
}
neo4j_value_t value = neo4j_result_field(result, i);
neo4j_fprint(value, stdout);
}
printf("\n");
}
Других решений пока нет …