打開該字段對應的GetText,SetText事件,加入代碼: procedure TForm1.ADOQuery1Field1GetText(Sender: TField; var Text: String; DisplayText: Boolean); begin if Text='0' then DisplayText:='否' else DisplayText:='是'; end;procedure TForm1.ADOQuery1Field1SetText(Sender: TField; const Text: String); begin if (Text='是')or(Text='1') then Sender.AsInteger :=1 else Sender.AsInteger :=0;end;
在sql里面写 select a,b,c,'是'as dd from table where d=1 union select a,b,c,'否'as dd from table where d<>1
“select a,b,c,'是'as dd from table where d=1 union select a,b,c,'否'as dd from table where d<>1” 在DBGRID编辑后怎样保存?怎样转回Integer型?
这样应该比较简单. select (case md_int when 1 then '是' when 2 then '否' end) as vt_int, md_field1,md_field2 from table1
在该字段对象(在TTable或TQuery等控件上双击后添加、选取)的OnGetText事件里写: if (Sender->AsBoolean) Text = "是"; else Text = "否";
select case when field1=1 then ' +''''+'是'+''''+' else '+''''+'否'+''''+'end AS field2 from table
select decode(md_int,1,'是','否') as vt_int,md_field1,md_field2 from table1
或者在DBGrid1DrawColumnCell中判断是否是1,如果是,就把字体颜色和背景颜色改为一样,这样用户就看不到了
procedure TForm1.ADOQuery1Field1GetText(Sender: TField; var Text: String;
DisplayText: Boolean);
begin
if Text='0' then
DisplayText:='否'
else
DisplayText:='是';
end;procedure TForm1.ADOQuery1Field1SetText(Sender: TField;
const Text: String);
begin
if (Text='是')or(Text='1') then
Sender.AsInteger :=1
else
Sender.AsInteger :=0;end;
select a,b,c,'是'as dd from table where d=1
union
select a,b,c,'否'as dd from table where d<>1
union
select a,b,c,'否'as dd from table where d<>1”
在DBGRID编辑后怎样保存?怎样转回Integer型?
select (case md_int when 1 then '是' when 2 then '否' end) as vt_int,
md_field1,md_field2
from table1
if (Sender->AsBoolean)
Text = "是";
else
Text = "否";
from table1
select decode(field1,1 '是',‘否’) from table