我用SQL.Add()语句动态对query添加了数据,现在我要读出来,用
str:string;    
with query do
 str:=FieldByName('ID').AsString;
调试时出错提示:varient references to automative ......
 该怎么解决啊

解决方案 »

  1.   

    Query1.Sql.Clear;
    Query1.Sql.Add(...);
    Query1.Open;
    Query1.First;
    str:=Query1.FieldByName('ID').AsString;
      

  2.   

    SQL.Clear;
                              SQL.Add('SELECT ID');
                              SQL.Add ('FROM COURSE_FREE1');
                              SQL.Add('WHERE TERM='''+course_ComboBox10.Text+'''');
                              SQL.Add ('AND SPECIALIZE_CODE='''+special+'''');
                              SQL.Add('AND STATE='''+coursepro+'''');
                              SQL.Add ('AND COMP='''+'0'+'''');
                              SQL.Add('AND CLASS='''+course_ComboBox14.Text+'''' );
                              ExecSQL;
      

  3.   

    close;
    SQL.Clear;
                              SQL.Add('SELECT ID');
                              SQL.Add ('FROM COURSE_FREE1');
                              SQL.Add('WHERE TERM='''+course_ComboBox10.Text+'''');
                              SQL.Add ('AND SPECIALIZE_CODE='''+special+'''');
                              SQL.Add('AND STATE='''+coursepro+'''');
                              SQL.Add ('AND COMP='''+'0'+'''');
                              SQL.Add('AND CLASS='''+course_ComboBox14.Text+'''' );
                              open;
                      应该可以
      

  4.   

    楼主,在添加完数据后,需要将query结果集打开
    及执行query1.open;
    然后再执行你的那段代码,就行了
      

  5.   

    var  
      str:string;
      i:integer;
    begin
    adoquery1.sql.clear;
    adoquery1.close;
    adoquery1.sql.add('select * from COURSE_FREE1');
    adoquery1.open;if not adoquery1.isempty then //如果查询的数据不为空
    begin
         for i:=1 to adoquery1.recordcount do
         with adoquery1 do
         begin
            str:=adoquery1.FieldValues['id'];
            adoquery1.next;
         end;
    end;
      

  6.   

    :)
    不会是没有open吧,呵呵
      

  7.   

    老兄要用open 返回结果集,不能用execsql,只执行返回执行结束的状态