同样的查询语句放在分析器中运行正常  但是通过delphi的edit控件 输入属性值:
 
         如果这个值是英文字母或者数字型字符就可以 但是换成汉字就不行   
 
总是查不出这个语句  这个为什么???

解决方案 »

  1.   

    代码:::
    DataModule4.ADOQuery1.close;
               DataModule4.ADOQuery1.sql.clear;
               DataModule4.ADOQuery1.sql.add('declare @a int update house set');
               if(edit2.text<>'') then
                  begin
                    DataModule4.ADOQuery1.sql.add('House_Structure=:struct,');                DataModule4.ADOQuery1.Parameters.ParamByNam('struct').value:=edit2.Text;              end;
               if(edit3.text<>'') then
                  begin
                     DataModule4.ADOQuery1.sql.add('Facilitu =:faculity,');
                    DataModule4.ADOQuery1.Parameters.ParamByName('faculity').value:=edit3.Text;              end;
               if(edit4.text<>'') then
                  begin
                     DataModule4.ADOQuery1.sql.add('House_Measure=:measure,');
                    DataModule4.ADOQuery1.Parameters.ParamByName('measure').value:=edit4.Text;              end ;
               if(edit6.text<>'') then
                  begin
                     DataModule4.ADOQuery1.sql.add('Res=:,');
                    DataModule4.ADOQuery1.Parameters.ParamByName('').value:=edit6.Text;              end ;
               DataModule4.ADOQuery1.sql.add('@a=12 where Address=:address');
               DataModule4.ADOQuery1.Parameters.ParamByName('address').value:=edit1.Text;
               DataModule4.ADOQuery1.execsql;
      

  2.   

    如果这个address 值为英文就可修改表  换成汉字表示的属性值  就不能修改
      

  3.   

    @a=12放错地方了最终的语句会变成下面这样,不错才怪
    declare @a int update house set House_Structure= ... @a=12 where ...或者全部edit没有输入的时候,变成这样,也是错的
    declare @a int update house set @a=12 where ...
      

  4.   


    那address属性值室英文字母 可以修改  何解??  该怎么改??
      

  5.   

    不确定要要修改的属性值,所以用@a 来充当 ','  避过sql的语法要求
      

  6.   

    首先你這個語句是有問題,樓上說的沒錯,你放這個@a=12 有意義嗎?
    不能用中文的原因是你在SQL中沒有用Unicode雙字節中文。改成:
    'where Address=N:address'
    試試。