ADOQuery select zh,db,hz 三个字段,DBGrid 与ADOQuery 关联,在DBgrid中显示数据,现在想当zh 字段中的记录值为1时在DBGrid里显示“确认”,当zh字段中的值为0时在DBGrid里显示“取消”,请问这样应该如何做?  

解决方案 »

  1.   

    SELECT 
    CASE ZH 
     WHEN '1' THEN '确认'
     WHEM '0' THEN '取消'
    ELSE '嘿咻',
    DB,HZ FROM TABLE
      

  2.   

    错了
    少了一个END
    SELECT 
    CASE ZH 
     WHEN '1' THEN '确认'
     WHEM '0' THEN '取消'
    ELSE '嘿咻'
    END 
    DB,HZ FROM TABLE
      

  3.   

    用query语句如下:
    select (case when zh='1' then '确认' else '取消' end) as 状态,* from youtabel
      

  4.   

    或者:
    可以用dbgrid的canvas属性
    下面的代码是我用0/1判断显示男/女,和你类似如下
    在DBGrid1DrawColumnCell中加入相应语句即可
    如:
    var
    i:integer;
    begin
      for i:=0 to query1.recordcount-1 do
      begin
      if datacol=2 then{性别列}
      begin
        if query1['xb']=true then{判断性别}
           dbgrid1.Canvas.textout(rect.left,rect.top,'男')
        else
           dbgrid1.canvas.textout(rect.left,rect.top,'女');
      end;
    end;
      

  5.   

    这个在delphi 里执行不通过,提示丢失操作符,但语句在 SQL server 里直接执行就可以通过
      

  6.   

    在DBGrid1DrawColumnCell中编码:
    var
    i:integer;
    begin
      for i:=0 to query1.recordcount-1 do
      begin
      if datacol=0 then
      begin
        if query1['ZH'] <> 0 then
           dbgrid1.Canvas.textout(rect.left,rect.top,'确定')
        else
           dbgrid1.canvas.textout(rect.left,rect.top,'取消');
      end;
    end;