SQLite3の問い合わせ結果を得るには

解決


nick  2012-06-11 10:54:52  No: 42462  IP: 192.*.*.*

こんにちは。
SQLite3の使い方を試しています。
例えば次のような問い合わせについて
select category, count(*) from goods group by category;

このように取り出したいのですが、
--------------
自転車    2
野球      4
http://www.dbonline.jp/sqlite/function/index1.html

項目とその項目ごとの数量を得る方法を教えたいただきたい。
よろしくお願いします。

procedure TForm1.SelectMember;
var sltb: TSQLiteTable;

begin
sltb := SLDB.GetTable('select category, count(*) from goods group by category');

 while sltb.Row < sltb.RowCount do begin
   Memo1.Lines.Add(sltb.FieldAsString(sltb.FieldIndex['category']));
   Memo1.Lines.Add(inttostr(sltb.Count));//全数?が表示される
   sltb.Next;
    end;
  end;
end;

編集 削除
igy  2012-06-11 11:28:37  No: 42463  IP: 192.*.*.*

試していませんが、

count(*)

の後ろに " AS cnt"
を付けて

Memo1.Lines.Add(sltb.FieldAsString(sltb.FieldIndex['cnt']));

とかすると、どうなりますか?

編集 削除
nick  2012-06-11 12:08:09  No: 42464  IP: 192.*.*.*

>とかすると、どうなりますか?
お蔭様でうまく取り出せました。

まだサンプルを動かしてみる程度の能力しかなく、
複雑な問い合わせ結果や関数の結果は如何するのかと、何日か考えていました。
SQLite3に用意されている関数は沢山あるのですが、教えていただいた応用で取り出せるのでしょうね。
igyさん、どうもありがとうございました。

編集 削除