DATAB.Query1.ExecSQL;
该为
DATAB.Query1.Open;

解决方案 »

  1.   

    第三句有误,应为:
    DATAB.Query1.SQL.Add('select * from WORKERBASE where 级别=:i;');
      

  2.   

    'select * form WORKERBASE where 级别=:i;'
    i后面好像多了个分号。
      

  3.   

    DATAB.Query1.Active:=False;
     DATAB.Query1.SQL.Clear;
     DATAB.Query1.SQL.Add('select * form WORKERBASE where 级别=:i;');
     DATAB.Query1.Prepare;
     DATAB.Query1.Params[0].AsInteger:=StrToInt(Self.Edit1.Text);
     DATAB.Query1.ParamCheck:=True;
     DATAB.Query1.ExecSQL;
     DataSource1.Enabled:=True;
      

  4.   

    ...
    DATAB.Query1.Params.Clear;<--删除
    ...
    DATAB.Query1.ExecSQL;<改为--DATAB.Query1.Open
      

  5.   

    错误显示:List index out of bounds(0)
      

  6.   

    关键问题可能在这儿:
    我用的是ASA7做的数据库,使用静态SQL连接正常,但是一用Params传递动态参数就出问题,错误信息[Sybase][ODBC Driver][Adaptive Server Anywhere]General error: Host variables may not be used within a batch,加分中。