如,SQL语句为:select * from sale where name=:name  此处 :NAME为一个参数,如何/在哪里定义它的类型,如何引用  
有一方法为在运行SQL前(组件是QUERY)用QUERY1。PARAMS预设参数(如上句SQL语句),可是这样不方便啊。我想在运行时再用用参数,如要查询某姓名时;另一法,运行时赋值给参数,会提示我索引越界,怎么解决这个问题

解决方案 »

  1.   

    干脆就不用参数,直接组织要sql
    const
     csqlselect = 'select * from sale where name = %s'query1.sql := format(csqlselect, [quotedstr(name)]) ;
      

  2.   

    query1.close;
    query1.clear;
    query1.sql.add('select * from sale where name=:name');
    query1.parameters.ParamByName('name').value := ???;
    query1.parameters.ParamByName('other').value := ???;//if exists other parameter
    ....
    query1.execsql;
    query1.close;
      

  3.   

    把你的SQL语句写成:
      sql.text:='select * from sale where name='+#39+'张三'+#39  就OK了.
    至于数据类型,delphi会自动转换的.一般为两种,数值和字符,字符要加引号:
      sql.text:='select * from sale where name='+#39+'张三'+#39  
    数值不用加:
      sql.text:='select * from sale where number='+'32'
      

  4.   

    1.在属性页里可以编辑;
    2.引用query1.parameters.ParamByName('name').
    3.
    query1.sql.add('select * from sale where name=''' + name + '''');