有一个数组
a 里面包含了11..1009的数.sql.add('select * from ypmenu where id in(这里包含数组a)');请问这样语句应该怎么写.
即条件id包含数组a里面的.??

解决方案 »

  1.   

    sql里没有数组
    你可以试试用临时表和表变量来借支
      

  2.   

    procedure TMainForm.BitBtn3Click(Sender: TObject);
    var
      v_SQL_String, v_SQL_Integer, v_ID_String, v_ID_Integer: string;
      A: array[1..3] of string;
      B: array[1..3] of integer;
      i: INTEGER;
    begin
      A[1] := '301010';
      A[2] := '301012';
      A[3] := '300111';
      B[1] := 301010;
      B[2] := 301012;
      B[3] := 300111;
      v_ID_String := '';
      v_ID_Integer := '';
      for i := 1 to 3 do
      begin
        v_ID_String := v_ID_String + '''' + A[i] + ''','; // string 数组串联
        v_ID_Integer := v_ID_Integer + inttostr(B[i]) + ','; // integer 数组串联
      end;
      v_ID_String := copy(v_ID_String,1,length(v_ID_String)-1); //去掉结尾的逗号
      v_ID_Integer := copy(v_ID_Integer,1,length(v_ID_Integer)-1); //去掉结尾的逗号
      v_SQL_String := 'select * from ypmenu where id in (' + v_ID_String + ') ';
      v_SQL_Integer := 'select * from ypmenu where id in (' + v_ID_Integer + ') ';
      with OraQuery1  do
      begin
        close;
        sql.Clear;
        sql.Add(v_SQL_String); // string 数组查询
        open;
      end;  with OraQuery2 do
      begin
        close;
        sql.Clear;
        sql.Add(v_SQL_Integer); // integer 数组查询
        open;
      end;end;
      

  3.   

    我一向通过参数传的,
    用ADOCommand
    配合param使用SQL的没用过不过即使用ADOCommand,也不简单