Клиент libneo4j — переберите результаты в neo4j_client для переполнения стека

Я ищу примеры использования neo4j_client в C ++. в тестирование Я вижу neo4j_result_t, но нет примера итерации или вызова полей по имени. Это возможно?

1

Решение

Результаты возвращаются как 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");
}
1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]