再次请教各位前辈,关于动态添加的问题

chdaner 2009-07-07 05:07:45
在控件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,很多东西还不会。


不好意思,写的不是很清楚,如果有不明白的,可以看下我前面发的提问贴,"还是关于新增项的问题"
...全文
33 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
chdaner 2009-07-07
  • 打赏
  • 举报
回复
好了,问题解决了,万分感谢
AsheBin 2009-07-07
  • 打赏
  • 举报
回复
我晕
chdaner 2009-07-07
  • 打赏
  • 举报
回复
是不是循环到最后一项时,from前面有一个,号?
chdaner 2009-07-07
  • 打赏
  • 举报
回复
上面的代码我运行了一下,提示在关键在'from'附近有语法错误,这是什么原因呢?
dinoalex 2009-07-07
  • 打赏
  • 举报
回复
手写未测,你自己试试

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;

5,388

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧