【ADO SQL】如何暫時取代資料表中顯示的資料,如 0→女、1→男 |
答題得分者是:timhuang
|
uuujjj
一般會員 發表:31 回覆:59 積分:18 註冊:2002-09-28 發送簡訊給我 |
各位前輩高手大家好: 在下有一個對大家而言,是非常簡單的疑問(^^"),那就是: 我在資料庫中有一個性別的欄位,其代表號為0 與 1,
使用DBRadioGroup元件可以依0或1來指定顯示的為'女'or'男',
但是,我發現使用DBGrid元件來顯示的話,就只能show出0 跟 1
該如何下SQL來讓'女'跟'男',暫時取代 0 跟 1 呢??
其環境(Access):
資料表 → VIP
欄位 → Sex(女的為0,男的為1) 稍早前我尋遍了整個版頁,
想找出類似的文章,但究竟是我「功力」不足^^"",
只找到了下列相關由fanny版友所發表的文章… 【問題】about 如何在SQL語法中下case
http://delphi.ktop.com.tw/topic.php?topic_id=25262 我的疑問與她相近,
但我使用的資料庫為:Access
我是利用TADOQuery來下SQL指令select資料,
我知道在OracleSQL中,有一個「decode」語法可使用,
但,是否可請教在AccessSQL中,有哪一個類似的語法可使用呢??
希望前輩們能不厭其煩地為我指導,謝謝~
|
kklchu
一般會員 發表:7 回覆:16 積分:4 註冊:2002-12-13 發送簡訊給我 |
|
kklchu
一般會員 發表:7 回覆:16 積分:4 註冊:2002-12-13 發送簡訊給我 |
|
Rain
資深會員 發表:31 回覆:236 積分:268 註冊:2003-02-17 發送簡訊給我 |
|
timhuang
尊榮會員 發表:78 回覆:1815 積分:1608 註冊:2002-07-15 發送簡訊給我 |
Hi, 若是只要顯示的話, 可以用 sql command 來做沒錯(如 mssql 的 case 或是 access 的 iif), 但若是會有異動的考量的話, 則必須使用 Rain兄的方式來進行, 才可以進行異動, 以下為一個小範例:
procedure TForm1.ADOQuery1SEXGetText(Sender: TField; var Text: String; DisplayText: Boolean); begin if Sender.FieldName = 'SEX' then begin case Sender.AsInteger of 0: Text := '女'; 1: Text := '男'; end; DisplayText := true; end; end; procedure TForm1.ADOQuery1SEXSetText(Sender: TField; const Text: String); begin if Sender.FieldName = 'SEX' then begin if Text = '女' then Sender.AsInteger := 0 else if Text = '男' then Sender.AsInteger := 1; end; end; |
uuujjj
一般會員 發表:31 回覆:59 積分:18 註冊:2002-09-28 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |