在控件combobox中动态增加项目,各项目以列的形式显示在dbgrid中,有高手给我提供了下述方法,
  s:='select 学号,姓名,'; 
  for i:=0 to combobox1.Items.Count-1 do 
    s:=s+'max(case 科目 when'''+combobox1.Items[i]+''' then 成绩 else 0 end) '+combobox1.Items[i]+','; 
  s:=s+' from 成绩表 group by 学号,姓名'; 
  edit1.Text:=s; 我想请问一下,这些语句我应该放在哪里,具体怎么执行,谢谢各位了,在下新学delphi,很多东西还不会。
不好意思,写的不是很清楚,如果有不明白的,可以看下我前面发的提问贴,"还是关于新增项的问题"

解决方案 »

  1.   

    手写未测,你自己试试var
      s: string;
    begin
    datasource1.dataset:= adoquery1;
    dbgrid1.DataSource:= datasource1;
    adoquery1.sql.clear;
    s:='select 学号,姓名,'; 
      for i:=0 to combobox1.Items.Count-1 do 
        s:=s+'max(case 科目 when'''+combobox1.Items[i]+''' then 成绩 else 0 end) '+combobox1.Items[i]+','; 
      s:=s+' from 成绩表 group by 学号,姓名'; 
      edit1.Text:=s;
    adoquery1.sql.text:= s;
    adoquery1.open;
      

  2.   

    上面的代码我运行了一下,提示在关键在'from'附近有语法错误,这是什么原因呢?
      

  3.   

    是不是循环到最后一项时,from前面有一个,号?