在neo4j_client中循环访问结果以进行C++

Iterate over results in neo4j_client for C++

本文关键字:结果 C++ 访问 循环 neo4j client      更新时间:2023-10-16

我正在寻找有关C++中neo4j_client用法的示例。 在测试套件中,我看到了neo4j_result_t,但没有按名称迭代或调用字段的示例。 这可能吗?

结果以 neo4j_result_stream_t 的形式返回,表示结果行的流。结果中的列数可通过neo4j_nfields获得,它们的名称可通过neo4j_fieldname获得,两者都以neo4j_result_stream_t指针作为参数。

要循环访问结果行,请使用返回neo4j_result_tneo4j_fetch_next 。要从行(字段(中提取每列的值,请将指针传递给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");
}