コンピュータや音楽の事書いてます

C++Builder PostgreSQL Text[]カラムの読み込み 要素数不明の場合

TarrayField の Fields や FieldValues を使うという情報があったが、なぜか先頭要素しか取得できなかった。
FieldByName() で取得した TField を TDataSetField へキャストし、
TDataSetField の NestedDataSet->Eof を見ながら Next() していく方法でうまくいった。
XXX_array という配列カラムがある場合、

TFDConnection *con;
TFDQuery *qry;
/*---- 設定省略 ----*/
qry->open("select a, b, c, XXX_array from t_abcd;");
while (!db->qry->Eof){
    auto colArray = (TDataSetField*) qry->FieldByName("XXX_array");
    while(!colArray->NestedDataSet->Eof){
        auto str = colArray->NestedDataSet->Fields->Fields[0]->AsString;
        if(str != NULL && str.Trim() != "")
            vecXXX.push_back(str);
        colArray->NestedDataSet->Next();