SQLString :='select * from user_master where a=:a and b=:b';
      sql.add(SQLString);
      parameters.ParamByName('a').Value:=trim(combobox1.Text);
      parameters.ParamByName('b').Value:=trim(edit1.Text);
这是判断用户名,密码是否对的代码,其中SQL语句中:a=:a and b=:b=: 这个符号怎么解释?

解决方案 »

  1.   

    sql里的参数,名称前加:做标志
      

  2.   

    就是SQL语句中用参数形式表示
    这样做好处是,语句看起来变得简洁,赋值时对一些类型变换也不容易出错
    SQL语法没有这样的用法,是D本身有这种写法的
      

  3.   


    SQLString :='select * from user_master where a=:a and b=:b';
          sql.add(SQLString);
          parameters.ParamByName('a').Value:=trim(combobox1.Text);
          parameters.ParamByName('b').Value:=trim(edit1.Text);where a=:a and b=:b // :a和 :b就是参数,需要在执行语句前将参数传入parameters.ParamByName('a').Value:=trim(combobox1.Text);
    parameters.ParamByName('b').Value:=trim(edit1.Text);
    这两句就是给参数:a和:b传入参数的,分别把combobox1.Text和edit1.Text传给a和b语句也可以直接写成这样SQLString :='select * from user_master where a='''+trim(combobox1.Text)+''' and b='''+trim(edit1.Text)+'''';
    sql.add(SQLString);