大哥:
我的代码如下,他说我参数有错,为啥?
with query1 do
 begin
  close;
  with sql do
   begin
    clear;
    add('select min(ID),max(ID) as tian1minid,tian1maxid from tian');
    add('where Knowledgepoint=1');
   end;
   open;
  end;

解决方案 »

  1.   

    with query1 do
     begin
      close;
      with sql do
       begin
        clear;
        add('select min(ID) as tian1minid,max(ID) as tian1maxid from tian');
        add('where Knowledgepoint=1');
       end;
       open;
      end;
      

  2.   

    请这样试试
    add('where Knowledgepiont=''1''');
      

  3.   

    还有一个问题:下面代码怎么错了?
    (其中Tgetidscope=Array[1..2]of integer)
    function getidscope(tablename,KP:string):Tgetidscope;
    begin
    with query1 do
     begin
      close;
      with sql do
       begin
        clear;
        add('select min(ID) as minvaluename,max(ID) as maxvaluename from'+tablename);
        add('where Knowledgepoint='+KP);
       end;
       open;
      end;
    result[1]:=query1.fieldbyname(minvaluename).AsInteger;
    result[2]:=query1.fieldbyname(maxvaluename).AsInteger;
    end;
    调用
    recordscope[3,2,1]:=getidscope('tian','1')[1];
    recordscope[3,2,2]:=getidscope('tian','1')[2];
      

  4.   

    都少了空格吧?
    with query1 do
     begin
      close;
      with sql do
       begin
        clear;
        add('select min(ID) as tian1minid,max(ID) as tian1maxid from tian');
        add(' where Knowledgepoint=1');
            ~这少一空格
       end;
       open;
      end;add('select min(ID) as minvaluename,max(ID) as maxvaluename from '+tablename);
       ~这少一空格
        add(' where Knowledgepoint='+KP);
            ~这少一空格
      

  5.   

    不是呀,大哥:
    是编译通不过,
    [Error] main.pas(33): Undeclared identifier: 'query1'
    [Error] main.pas(36): Undeclared identifier: 'sql'
      

  6.   

    你没有定义Query1啊
    拖一个Query 放在你的Form上先
      

  7.   

    我form上有了
    但写成mainform.query1就ok了
    但执行open还有错?
    select子句中包含一个保留字、拼写错误或丢失的参数,或标点符号不正确
      

  8.   

    大哥:
     但是哪个
    recordscope[3,2,1]:=getidscope('tian','1')[1];
    recordscope[3,2,2]:=getidscope('tian','1')[2];
    返回值取不过来
    但函数里的result[1]和result[2]已经有值了!
      

  9.   

    先设个变量呢?
    function getidscope(tablename,KP:string):Tgetidscope;
    var 
     temp:Tgetidscope;
    begin
    with query1 do
     begin
      close;
      with sql do
       begin
        clear;
        add('select min(ID) as minvaluename,max(ID) as maxvaluename from'+tablename);
        add('where Knowledgepoint='+KP);
       end;
       open;
      end;
    temp[1]:=query1.fieldbyname(minvaluename).AsInteger;
    temp[2]:=query1.fieldbyname(maxvaluename).AsInteger;
    result:=temp;
    end;
    调用
    var
      result:Tgetidscope;
    result:=getidscope('tian','1')
    recordscope[3,2,1]:=result[1];
    recordscope[3,2,2]:=result[2];