比如说,sql中有edit.text,有定义变量时,我总是没法写对,不知道如何加?        username:=trim(edit1.Text);
     
        datamodule1.adoq_pass_table.Close;        datamodule1.adoq_pass_table.SQL.Clear;        datamodule1.adoq_pass_table.SQL.Add('select * from pass_table');
    
datamodule1.adoq_pass_table.sql.add('where user_name= '+'"'+username+'"');
//编译说这句错,不知??
        datamodule1.adoq_pass_table.open;
        datamodule1.adoq_pass_table.first;     label3.Caption:=datamodule1.adoq_pass_table.Fields[0].Value;

解决方案 »

  1.   

    单引号
    'where user_name= '+'''+username+'''
    只用单引号你如果觉得麻烦可用参数查找
      

  2.   

    sql.add('select * from pass_table where user_name= :user_name');
    parambyname('user_name').asstring :=username
    try
     open;
    except 
    showmessage('error');
    end;
      

  3.   

    'where user_name= '''+ username+''''
    datamodule1.adoq_pass_table.sql.add('where user_name= '''+username+'''');''''='
      

  4.   

    正常sql语句:
    select * from table where a='aaa'
    在query中:
    query.sql.add('select * from table where a='+quotedstr(aaa));
    正常sql语句:
    select * from table where a=aaa
    在query中:
    query.sql.add('select * from table where a='+'aaa');
      

  5.   

    不要用那些引号了,太烦人,而且代码地可读性不好,用这个吧!QuotedStr()!
    'WHERE USER_NAME='+ QuotedStr(username) + 'AND...'有什么不明白地就查帮助,有详细地说明
      

  6.   

    单引号在DELPHI的SQL语句中是敏感字符