就是一个简单的更新操作
 执行到下面语句时就会弹出:EoleException 错误,在=附近有语法错误
 我就是看不出来,高手指点一下!!!!!1111   str_Sql[0]:='undate DataSample_Avg'+timestr+' set 室内干球='+format('%f',[Data[0]]);
   str_sql[1]:=' where 采集时间=''总平均值'' ';
  RequestExe(str_sql);

解决方案 »

  1.   

    你用啥连接的数据库,是ADO还是BDE
    where 采集时间=''总平均值'' 这里的就不对,应该 '''总平均值''' 这样才能出现引号建议你这样写:
      with adoquery1 do
      begin
        close;
        SQL.text := 'undate DataSample_Avg'+timestr+' set 室内干球=:S where 采集时间='''总平均值'''';
        parameters.parambyname('s') := 你要更改的内容;
        ExecSql;
      end;
      

  2.   

    SQL语句中字符串还有时间 都要用''包含起来的
      

  3.   

    我具体是这样的:  用上面的 '''总平均值''' 好象不对么
    Data[0]:=Qry2.Fields[1].Asfloat;setLength(Str_sql,2);   
    str_Sql[0]:='undate DataSample_Avg'+timestr+' set 室内干球='+format('%f',[Data[0]]);
    str_sql[1]:=' where 采集时间=''总平均值'' ';
    RequestExe(str_sql);procedure TDataStore.RequestExe(Str: array of string);
    var
      Qry: TADOQuery;
      i: Integer;
    begin
      try
      Qry:=TADOQuery.Create(nil);
      Qry.Connection:=ADOConnection;
      Qry.Active:=false;
      Qry.sql.clear;  for i:=0 to High(str) do
      begin
        Qry.sql.add(Str[i]);
      end;  try
      //   Qry.prepared:=true;
        Qry.ExecSQL;
       // Qry.Prepared;
        //Qry.active:=true;
       except
        on EDatabaseError do ShowMessage('数据库访问出错');
      end;  Finally
        Qry.prepared:=false;
        Qry.free;
      end;
    end;