如何将下面长的语句加入ADOQuery中,用
  with ADOQuery1 do
  begin
    SQL.Text:='.......';
    OPen;
  end;就是这些语句
declare  @sql  varchar(8000)  
set  @sql  =  'select  学号,姓名,班级,学期'  
select  @sql  =  @sql  +  ',max(case  科目名称  
when  '''+科目名称+'''  then  cast(成绩 as varchar(10)) end)   ['+科目名称+']
,max(case  科目名称  when  '''+科目名称+'''  then  cast(补考 as varchar(10))  end)  ['+科目名称+'补考]'  
   from  (select  distinct  科目名称  from  成绩表 where 班级='2000电算会计')   as  a  
select  @sql=@sql+' from  成绩表  where 班级=''2000电算会计'' and 学期=1 group by  学号,姓名,班级,学期'
exec(@sql)  

解决方案 »

  1.   

    哦哦,用那个控件的咯?我在ADOQuery的SQL中加入去可以用的但是编程中加入去就不可以
      

  2.   

    用ADOStoredProc1吧,但是我的是会变的哦我的班级\ 学期是用EDIT输入的,我必须在程序中加入去,不能在SQL中建立存储过程
      

  3.   

    ADOQuery好像不能有多条语句
    你可以先用ADOQuery生成存储过程,
    然后在ADOStoredProc1如何
      

  4.   


    用adoquery的确比较麻烦,因为你要用循环,楼上说得不错,用存储过程吧
    create proc urporc(
    @name varchar(100)
    ) asdeclare  @sql  varchar(8000)  
    set  @sql  =  'select  学号,姓名,班级,学期'  
    select  @sql  =  @sql  +  ',max(case  科目名称  
    when  '''+科目名称+'''  then  cast(成绩 as varchar(10)) end)   ['+科目名称+']
    ,max(case  科目名称  when  '''+科目名称+'''  then  cast(补考 as varchar(10))  end)  ['+科目名称+'补考]'  
       from  (select  distinct  科目名称  from  成绩表 where 班级=@name)   as  a  select  @sql=@sql+' from  成绩表  where 班级='''+ @name+''' and 学期=1 group by  学号,姓名,班级,学期'
    exec(@sql)  
    return程序中
    with ADOQuery1 do
      begin
        SQL.Add('exec urporc ''' + '2000电算会计' + '''' );
        OPen;
      end;