データベースの内容を、違う形でTEditに表示する方法


しーと  2010-01-10 00:46:29  No: 36865

お伺いします。データベースのテーブル列に、1とか2などの数値型でデータが格納されていたとき、それを取得して、1は「受諾」、2は「拒否」と違う文字でTEdit上に表示するにはどうすればよいですか?


igy  2010-01-10 01:14:12  No: 36866

フィールドをHOGEとすると

(方法1)取得後に判定

if Query1.FieldByName('HOGE').AsInteger = 1 then
    Edit1.Text := '受諾'
else Query1.FieldByName('HOGE').AsInteger = 2 then
    Edit1.Text := '拒否';

(方法2)SQLのSELECT文でCASE式を使う
      (データベースが対応していればですけど。)

SELECT
 CASE HOGE
   WHEN 1 THEN '受諾'
   WHEN 2 THEN '拒否'
   ELSE        'その他'
 END,
 Somefield,
 ....
FROM
   (中略)
;

で、いかがでしょう?


HOta  2010-01-10 01:14:13  No: 36867

いろいろな方法は有りますが、
1,2と決まっているのなら、関数を使えばいかがですか?
procedure getHoge(AI:Integer):String;
begin
  case AI of
    1:
      result := '受諾';
    2: 
      result := '拒否';
    else
      result := '不明';
  end;
end;

として、
  Edit1.Text := getHoge(FieldByName('Hoge').AsInteger);


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

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






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