我用sql插入数据时,如果数据中包含',则sql出现错误,"miss right quote"
怎么办呢!

解决方案 »

  1.   

    sql语句中的'用'''来表示的或者#39来表示的
    例如
    sql.add('SELECT * FROM Table1 WHERE column='''+str+'''')
    或者
    sql.add('SELECT * FROM Table1 WHERE column='+#39+str+#39)
      

  2.   

    与Delphi中的源代码类似,也用''表示。
    Insert xx
    values(...,    'It''s me.'   ,...)
      

  3.   

    或者quotedstr(str)就可以不用引号了
    sql.add('SELECT * FROM Table1 WHERE column='+quotestr(str)+')
      

  4.   

    奇怪了,我跟踪调试时发现我的数据中有很多 '#$D#$A'
    这个东西中的'好像用quotedstr替换不了.这样我数据没法插入.
    我不知道'#$D#$A'时什么东西,我的数据时从网上下的,用idhttp.get得到
      

  5.   

    我用StringReplace把所有的'都换成空还是不行
      

  6.   

    sql语句中显示'是
    select ''''
      

  7.   

    现在,我发现数据中已经没有包含'了,但仍然出现错误missing right quote
    到底是为什么呢?
    是不是missing right quote只是由'引起的呢?
      

  8.   

    delphi中
    '是引号作用,''才是'字符
    所以''''四个边上的是引号,里面的''代表'字符
    用+''''+来表示SQL语句S1:='0001';
    with adoDS_XXX do
    begin
      colse;
      CommandText:='Select * from XXX where X_ID='+''''+S1+'''';
      Open;
    end;