日期:2014-05-17  浏览次数:20870 次

散分了!奇怪得不能再奇怪的问题,为何这时的recordcount=0???
遇到了个奇怪问题,是想将时间搜索从天精确到小时,原来的模块没问题,但改成小时后就出现了:

1)参数赋值,并传递参数,其中FileRepDate是varchar(20)
<%
dim   selNowDate
selNowDate   =   Cstr(request( "NowDay "))
......
dim   Form_sql

Form_sql   =   "   where   FileRepDate   like   '% "&selNowDate& "% ' "

Call   GetItemCount(Form_sql)
......
%>
......
2)函数体
<%
sub   GetItemCount(Form_sql)
  dim   rs,sql
  set   rs=server.createobject( "adodb.recordset ")
  sql   =   "select   *   from   tablename "   &   Form_sql
 
  rs.open   sql,conn,1,3

  response.write   sql
  response.write   rs.recordcount
 
  ......  
end   sub
%>
以上是仅匹配日期的语句,能够成功显示记录数.以下是精确到某时间段,第(1)部分修改为以下代码,其中时间输入容错均处理并正常,语句在SQL中也测试没有问题
<%
dim   selFmTime,   selToTime

selFmTime=   Cstr(request( "FmTime "))
selToTime=   Cstr(request( "ToTime "))

......
dim   Form_sql

Form_sql   =   "   where   FileRepDate   between   ' "&selFmTime& " '   and   ' "&selToTime& " ' "  

Call   GetItemCount(Form_sql)
......
%>
但这时第(2)部分中返回的recordcount总是0,应该是有记录数的.
我将返回的sql内容直接放到SQL   PLUS中运行没有问题,或者将sql直接赋值,也没有问题,有记录数返回,但就是传进参数Form_sql后,不返回记录.

关键是原来的操作中传参数都没问题,为何仅是改了个写法就不行了(关键这写法在函数体里面就没问题),请高人们给点建议!!!急的冒汗!!!


------解决方案--------------------
select * from tablename where FileRepDate between ' "&selFmTime& " 'and ' "&selToTime& " ' "
你把值写入放进sql里面执行看看出什么错
filerepdate是什么类型?
------解决方案--------------------
数据类型问题。