程序如下,运行时老提示出错,说:列名‘店1’无效
到底该怎么写这种SQL的拼接?各位高手请指点
  temp:='店1';
  sql:='select * from shop ';
  sql:=sql+'where (店名="'+temp+'")';//这一句应该是有问题了,我不知道该怎么写
  edit1.Text:=sql;
  query1.Close;
  query1.SQL.Clear;
  query1.SQL.Add(sql);
  query1.Open;

解决方案 »

  1.   

    sql:=sql+'where (店名='+temp+')'
      

  2.   

    sql:='select * from shop ';
    sql:=sql+'where 店名='+chr(39)+temp+chr(39);
      

  3.   

    在DELPHI里两个单引号表示一个双引号。
    sql:=sql+'where (店名='''+temp+''')';//
      

  4.   

    temp:='店1';
      sql:='select * from shop ';
      sql:=sql+'where 店名='+quotedstr(temp);
      edit1.Text:=sql;
      query1.Close;
      query1.SQL.Clear;
      query1.SQL.Add(sql);
      query1.Open;
      

  5.   

    WWWWA(aaaa) :这个写法还是不行
      

  6.   

    sql:='select * from shop ';
    sql:=sql+'where (店名='''+temp+''')';
      

  7.   

    alimyso(杨桦):quotedstr()这个函数的作用能不能详细跟我说一下,还有没有其他类似的函数
      

  8.   

    ^_^,应该教你调试方法啊!而不是仅仅教给你怎么写!设置断点
    读取值,
    分析SQL
    在查询分析器里通过先
      

  9.   

    sql:=sql+'where 店名='+#39+temp+#39;
      

  10.   

    Olamny():非常感谢,char(39)就是键盘的 ' 吧,那其他的符号对应的是多少呢?
      

  11.   

    wangzn1979(梦郎2003):谢谢,我用的SQL语句都在SQL Server2000的分析查询器里通过了
    不过我还不会设置断点、读取值
      

  12.   

    用参数阿
    where 点名=:pquery1.parambyname('p').asstring:=
      

  13.   

    jinjazz(我是jin):这个我知道啊,我现在想的是先把sql拼接好,然后add就行了
    这中间涉及的一些细节我不是很清楚,还好有这么多人帮忙,现在经验值又增长一点了
      

  14.   

    中间是不少了空格,用showmessage看看