%条件1不被Filter支持,原因很简单,这种模糊查询太费资源

解决方案 »

  1.   

    既然用Query,为什么不拼SQL语句?
      

  2.   

    galeboy(狂风小子)说%条件1不被Filter支持是因为这种模糊查询太费资源,那为什么它又支持条件1%呢?
    还有直接用SQL语句查询不是比用Filter更加浪费资源吗?
      

  3.   

    "条件1%" 并不费资源, 它是过滤出以条件1开头的记录
    如"条件1aaa"  "条件1bbb" 等等,过滤时只要判断前几个字符是不是"条件1"就行了"%条件1" 就不同了,TADOQuery 过滤时不会从后边取字符的,它会从头查找串中是否包含"条件1" 所以很费资源。
    直接用SQL语句查询这种情况比较复杂,如果数据库是大型关系型数据库(严格的说是支持SQL查询的数据库,如SQL Server、Oracle 等)的话,直接用SQL语句查询会很有效率,因为数据库会自己解释SQL语句,而各种大型数据库执行SQL语句的性能都是很好的,
    如果是本地数据库的话,直接用SQL语句查询就没什么意义了,因为SQL的解释是由数据集或数据库连接组件完成的,性能很差。
    不过如果用Access数据库的话是个例外,它可以自己解释SQL语句(Microsoft自己的驱动),所以在Access下直接用SQL语句查询也是个不错的主意