1: form1.close;   
  active:=cafree;   
  form1.free;   
  有何区别? 什么时候用什么?
 (1) 比如我动态创建一个框,用完了就close,这样能释放掉什么? 是不是可以释放掉窗体?
  这个窗体我关闭了 以后可能还会用到,到时候还要创建,这里是不是使用close就够了呢?使用free的话就会出问题?
  (2)比如我的主窗体,关闭以后,就不会再打开了,是不是要用到free或者cafree
 2:一个sql语句 一个表一个字段是id 整形,另一个字段yn为字符字段,里面的内容为''(注意不是<NUll>)或者是合格或者是不合格     相同id的记录中,如果yn是''则都是''  
     如何查询这个表同过group by id ,yn, 如果yn是''则显示为未处理,否则为已处理

解决方案 »

  1.   

      form1.close;   :关闭窗体,不是释放,下次显示直接show即可,不过还在内存中存留,    
        
      active:=cafree;       
      form1.free;    
      上面两个没区别都一样!就是释放窗体用的!下次显示就要重新创建窗体了,就不存在内存了。    
      窗体不用时最好释放掉;    问题二不明白楼主想干什么!
      

  2.   

    问题二麻烦说清楚点,要不怎么帮你啊,问题一没多大区别的,都是释放窗体,用show就可以了
      

  3.   

    就是存在 例如   
    主奸 id  yn               
    1    2  (空白)(这里不是NUll)
    2    2   (空白)
    3    2    (空白)
    4    3     合格
    5    3     合格
    6    3     不合格
    7    3     合格我要完整的语句
      

  4.   

    问题二,用case ...when的方式显示为未处理就可以了.
    具体的查一下sqlserver的函数说明,很好用的.
      

  5.   

    create table t(id int,yn varchar(10));insert into t values(1,'');
    insert into t values(2,'');
    insert into t values(3,'合格');
    insert into t values(4,'不合格');
    select id,case yn when '' then '未处理' else yn end yn from t;
      

  6.   

    补充:id相同了,就属于垃圾数据了,你的数据库设计有问题.
    但分组查询是可以的.
    select id,max(case yn when '' then '未处理' else yn end) yn from t
    group by id