SQLiteにて、MAX文やCOUNT文を使って値を得る方法

解決


saya  2013-01-15 19:38:19  No: 43626

SQLiteにて、MAX文やCOUNT文を使いたいのですが、
どのようにすれば、その結果を得られますか?

現状では、下のコードにてCOUNT数は得ていますが、
そうではなく、SQL文を使って、
・SELECT COUNT(ID) FROM TEST_TABLE;
・SELECT MAX(ID) FROM TEST_TABLE;
で得た値を表示させたいです。

よろしくお願いいたします。

var
  sldb: TSQLiteDatabase;
  sltb: TSQLIteTable;
begin
  sldb := TSQLiteDatabase.Create('test.db');
  try
    sldb.BeginTransaction;
    sltb := slDb.GetTable('SELECT ID FROM TEST_TABLE;');
    //カウント表示
    ShowMessage('COUNT='+IntToStr(sltb.Count));
    //フィールドの値表示
    for i := 0 to sltb.Count - 1 do
      begin
        ShowMessage(sltb.FieldAsString(sltb.FieldIndex['ID']));
      end;
  finally
    sldb.Free;
  end;
end;


saya  2013-01-15 20:27:43  No: 43627

中国のサイトで答えが見つかりました。
sltb := sldb.GetTable('SELECT MAX(ID) as maxValue FROM TEST_TABLE;');
ShowMessage(IntToStr(sltb.FieldAsInteger(sltb.FieldIndex['maxValue']) + 1));

ありがとうございました。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加