我在SQL SERVER里写了个带参数的存储过程,当参数是英文时没问题,可当参数带有汉字时就出错,难道不能传汉字?大家怎么解决的?

解决方案 »

  1.   

    参数带汉字是指Params.ParamByName('vSubWhere').AsString := 'name = '武汉'';是指参数的值,不是指参数的名称.
      

  2.   


    var pstr:string;
    ...pstr:='name=''' + '武汉' + '''';
    Params.ParamByName('@vSubWhere').AsString:=pstr;
    ...
      

  3.   

    to zjhjp(寒松):你这个方法不行呀,我试过了.pstr英文或数字都行,但汉字就出错.
      

  4.   

    把你的存储过程,和你需要的操作写下来,你先试一下:Params.ParamByName('@vSubWhere').AsString:=pchar('name=''' + '武汉' + '''');
      

  5.   

    'name = '武汉''//我想确认,你要的字符串是 name = '武汉'  ,对不?
      

  6.   

    我指的是参数值是中文.我要传的字符串就是:name = '武汉' ,然后存储过程接收参数后把它当做where的条件执行SQL语句.
      

  7.   

    你试过把这个“'name='+#39 + '武汉' + #39”作为参数传递吗?
      

  8.   

    Params.ParamByName('vSubWhere').AsString := 'name = '+Quotedstr(武汉);试试这样呢