我做了一个for语句,从中取出
Var
  IntGradeID: Integer;
Begin
  ...
  IntGradeID := qryGrade.FieldByNames("GradeID").AsInteger;
  ...
  //下面为出错行,提示:IntGradeID不是有效的列名
  SQL.Add("Select * From cClass Where GradeID=IntGradeID")
  ...
End;烦请帮忙,谢谢!

解决方案 »

  1.   

    SQL.Add('Select * From cClass Where GradeID=''IntGradeID''')
      

  2.   

    哦,你的IntGradeID是整数,应该是:
    SQL.Add('Select * From cClass Where GradeID='''+IntToStr(IntGradeID)+'''')
      

  3.   

    SQL.Add('Select * From cClass Where GradeID=''+IntGradeID)
      

  4.   

    错了
    SQL.Add('Select * From cClass Where GradeID='+IntToStr(IntGradeID))
      

  5.   

    SQL.Add('Select * From cClass Where GradeID='''+IntToStr(IntGradeID)+'''')
      

  6.   

    楼上的各位也可以还可以改为:Var
      IntGradeID: Integer;
    Begin
      ...
      IntGradeID := qryGrade.FieldByNames("GradeID").AsInteger;
      ...
      //下面为出错行,提示:IntGradeID不是有效的列名
      SQL.Add("Select * From cClass Where GradeID=IntGradeID")
      ...
    End;也可写为:Var
      IntGradeID: Integer;
    Begin
      ...
      IntGradeID := qryGrade.FieldByNames("GradeID").AsString;
      ...
      //下面为出错行,提示:IntGradeID不是有效的列名
      SQL.Add("Select * From cClass Where GradeID= ' + intGradeID")
      ...
    End;
      

  7.   

    我也是初学者,对于动态创建sql语句也不是很懂
    能解释一下加单引号,双引号的区别吗?
      

  8.   

    delphi中没有双引号
    除非是字符串
      

  9.   

    是啊,在Delphi中是没有双引号的,只有单引号,不用说什么区别了吧。
      

  10.   

    Var
      IntGradeID: Integer;
    Begin
      ...
      IntGradeID := qryGrade.FieldByNames('GradeID').AsInteger;
      ...
     SQL.Add('Select * From cClass Where GradeID= '+ IntToStr(IntGradeID)+'')
      ...
    End;