一ACCESS数据中的一个PO表,PO表下面有一TITLE字段...TITLE字段下有N条记录,其中每条记录中都包函字符STR,,我现在要把所有STR字符都换成STRING,SQL语句要怎么写,谢谢

解决方案 »

  1.   


    Update PO set title=Replace(title,'STR','STRING')
      

  2.   

     ADOQuery2.Close;
      ADOQuery2.SQL.Clear;
      ADOQuery2.SQL.Add('Update PO set title=Replace(title,:STR,:STR1)');
    ADOQuery2.Parameters.ParamByName('str').Value := edit8.Text;
    ADOQuery2.Parameters.ParamByName('str1').Value := edit7.Text;
     ADOQuery2.Open;出现表达示函数Replace没定义
      

  3.   

    ADOQuery2.Close; 
      ADOQuery2.SQL.Clear; 
      ADOQuery2.SQL.Add('Update PO set title=Replace(title,:STR,:STR1)'); 
    ADOQuery2.Parameters.ParamByName('str').Value := edit8.Text; 
    ADOQuery2.Parameters.ParamByName('str1').Value := edit7.Text; 
    ADOQuery2.Open; ----------->ADOQuery2.ExecSql
      

  4.   

    还是一样出现表达示函数Replace没定义
      

  5.   

    看了下,access 的SQL中没有replace函数,只在Access环境中有。
    只能另外变通处理了给个简单处理的,查询出来后,处理,再写入更新。异常处理和一些数据完整性判断等你可以自己加上begin
        with adoquery1 do
        begin
            close;
            sql.clear;
            sql.add('select title from PO order by 字段');
            open;
        end;
        while not adoquery1.Eof do
        begin
          adoquery1.Edit;
          adoquery1.FieldByName('name').AsString:=StringReplace(adoquery1.FieldByName('name').AsString,'string','字符',[rfReplaceAll]);
          adoquery1.Post;
          adoquery1.Next;
        end;
    end;
      

  6.   

    写成这样的
    adoquery1.FieldByName('name').AsString:=StringReplace(adoquery1.FieldByName('name').AsString,'str','string',[rfReplaceAll]);
      

  7.   

    把name 改成 title 我写的字段名和替换的字符串和你的不一样