我的环境是delphi7+access数据库,执行查询语句,条件是like'*'或类似like'*5*'这样语句,数据量小的时候执行没问题,数据量大点(1500条)左右,就出现内存溢出的错误,不知道是为什么?如果没有解决办法,是否就得换数据库了,那可太麻烦了.
like '*'是access的语法,不是错误.
谢谢大家,请帮个忙

解决方案 »

  1.   

    請大家帮忙:
    delphi为什么在操作oracle时,select a.* from tab a 有记录返回而 select a.* from tab a where a.atime>='2007-01-01 00:00:00'沒有记录呢在oracle中有记录??
    謝谢大家!
      

  2.   

    a.atime如果是datetime类型的,要写成:a.atime>=CDate('2007-01-01 00:00:00')
      

  3.   

    日期转换函数有方言,这个SQL部分不是很规范。
    like'*' 有点过分吧,好好看看SQL参考,这样的语法必然消耗资源开销。
      

  4.   

    找到原因了.其它字段没有问题,就是在查询图书名称时有问题.记录中图书名称有中文和日文的。
    在网上查了一下,是26个日文片假名导致Access搜索(80040e14/内存溢出)造成的。解决办法:
    一,用函数将字段值进行编码解码
    二,不要使用like语句,例:
    把会报错的SQL:where title like '%keyword%'
    换成:where InStr(1,LCase(Title),LCase('keyword'),0)<>0
    具体见:http://www.hellowind.com/2/viewspace_568.html多谢提醒,语句是不规范,因为是拼出来的,我改进一下。谢谢大家!