有部分字段的数据有一个单引号,在保存数据时系统就报错。
有人建议“再加一个单引号”,我试了,没有成功;
有人建议“用Quotedstr()函数; 把内容放在括号里面”,我也试了,也没有成功。
请帮帮忙,举几个详细的例子,来解决这一问题。
谢谢!

解决方案 »

  1.   

    内容为:ab'cd
    s:='ab''cd';//在字符串中两个单引号代表一个单引号
    内容为:ab''cd
    s:='ab''''cd';//在中间的四个单引号表示2个单引号
    内容为:a'b'c'd
    s:='a''b''c''d';//这个典型的两个单引号表示1个单引号。
    edit1的内容为:ab'cd
    s:=Quotedstr(self.edit1.text);//我们保存数据时一般都用变量或控件用这个函数最方便了。
    内容为:ab'cd
    s:='ab''cd';//在字符串中两个单引号代表一个单引号上面这两个S的值都是一样的。
      

  2.   

    二楼的这个是错误的
    s:='sdsd''sds';
    红色引号表示字符串开始和结束。红色引号内的引号必须成对出现。
      

  3.   

    内容为:ab'cd
    保存时:Quotedstr('ab'+#39+'cd')
      

  4.   

    1 首先要明白在查询分析器里面一个单引号是怎么表示的?
    2 要明白DELPHI里面一个单引号是怎么表示的?
     
      

  5.   

    如果要查询数据库中的 字符串关键字时,建议使用Quotedstr()
      

  6.   

    var
      sql :string;
    begin
      sql := 'insert into table1 values(''1234'''' '')'; //这样中间就有一个单引号了
    end;
      

  7.   

    写个函数不就搞定了
    function ReturnJudge(Val:String;BStr:Boolean):String;
    begin
      if BStr then
      //参数为字符串
        if Val<>'' then
          if Val='    -  -  ' then
            Result:='null'
          else
            Result:=''''+ Val + ''''
        else begin
          Result:='null';
        end
      else begin
      //参数为整数
      Result:=Val;
        if Val='' then
          Result:='null';
      end;
    end;val为字段值,Bstr是否为字符类型