1

C++ での neo4j_client の使用例を探しています。テスト スイートでは、neo4j_result_t が表示されますが、フィールドを名前で繰り返したり呼び出したりする例はありません。それは可能ですか?

4

1 に答える 1

1

neo4j_result_stream_t結果は、結果行のストリームを表すとして返されます。結果の列の数は で取得できneo4j_nfields、その名前は で取得できます。neo4j_fieldnameどちらもneo4j_result_stream_tポインタをパラメータとして取ります。

結果行を反復処理するには、neo4j_fetch_nextwhich を使用して を返します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");
}
于 2016-10-23T23:02:00.923 に答える