cmdstr.printf("insert table values('%s')",QuotedStr(String(buffer,20)).c_str());

解决方案 »

  1.   

    char buffer[20];
    String cmdstr;
    cmdstr.printf("insert table values('%s')",QuotedStr(String(buffer,20)).c_str());Cmd->CommandText=cmdstr;
    Cmd->Execute();
    //插入的时候字符常量外必须要有单引号!如:insert AA values('大力')
      

  2.   

    大家看清楚一点问题,我用了QuotedStr,这个函数会给字符串加上头尾两个单引号,并且会替换字符串中的所有 ' 替换成 ''     请大家抓住问题的关键好吗?
      

  3.   

    declare @a varchar(10)
    set @a=''''
    select @a
    select replace(@a,'''','''''')
      

  4.   

    你不会在前台转义吗?declare @a varchar(10)
    set @a=''''
    select @a
    select replace(@a,char(39),'''''')
      

  5.   

    我再解释一下,QuotedStr已经做到各位所说的添加以及替换单引号的功能,所以"单引号"各位不被再重复了……麻烦大家再看看问题.
      

  6.   

    这个问题终于被解决了,原来adocommand->commandtext除了要对'号进行转义,还要对:进行转义,否则:后面的字串会被当作adocommand的参数名称来处理,只需要把所有:替换成::即可