delphi 中sql 语句 sql:='select * from dw where dwmc='+ dwmc  这么写不对 
sql:='select * from dw where dwmc='''+ dwmc  +'''   这么写也不对到底怎么写dwmc是一个字符型的变量  数据库用的sql server2008  

解决方案 »

  1.   

    sql:='select * from dw where dwmc='''+ dwmc +''''
      

  2.   

    也可以使用QuotedStr函数sql:='select * from dw where dwmc='+ QuotedStr(dwmc);
      

  3.   

    从字面上看,你第二个是对的,至于报错,程序里面下断点,启用SQL事件跟踪器看看具体执行的SQL语句,再复制到查询器里看看问题出在哪
      

  4.   

    这样写比较好:
    SQL:='select * from dw where dwmc='+#39+dwmc+#39   
      

  5.   

    用参数表达或者改一下你的代码
    sql:='select * from dw where dwmc='''+ dwmc+'"'
      

  6.   

    多了一个引号
    sql:='select * from dw where  dwmc=''+dwmc+'''
      

  7.   

    sql:='select * from dw where dwmc='''+ dwmc  +''''后面少了一个单引号。
      

  8.   

    楼主该好好的学习一下delphi中引号的用法了。
      

  9.   

    sql:='select * from dw where dwmc='+ QuotedStr(dwmc);    我都是用这个方法 。省事 
      

  10.   

    1.delphi中单引号中的两个单引号表示一个单号
    2.用QuotedStr,就不用考虑引号的问题啦
      

  11.   

    变量名字不要叫sql  一般用sqlstr  语句是
    sqlstr:='select * from dw where dwmc='''+ dwmc+'"';
      

  12.   

    最好是用format来写,这样避免去数'号了
    sqlstr:='select * from dw where dwmc='''+ dwmc+'"';
    用format就是sqlstr:=format('select * from dw where dwmc=''%s''', [dwmc]);%s是指字符型,如果是整形的就是%d format('select * from dw where dwmc=%d', [dwmc]);,浮点型的就是%f format('select * from dw where dwmc=%f', [dwmc]);
      

  13.   

    第一.是DELPHI语法错误:
    sql:='select * from dw where dwmc='+ dwmc  这么写不对 
    sql:='select * from dw where dwmc='''+ dwmc  +'''   这么写也不对正确的语法是:sql:='select * from dw where dwmc='+'''+ dwmc+''';
    或:sql:='select * from dw where dwmc='+QuotedStr(dwmc);第二.SQL SERVER 2008的语法问题
    SQL SERVER 2008是否存在字段大小写问题(我没有研究过SQL SERVER 2008),但甲骨文是区分大小写的,这一点你注意。你如果有exception的提示框截图,就好判断了