请帮我分析一下这段代码问题在哪里?如何改进?

youzhj 2011-03-18 12:36:18

sDt1 = "2010-9-1 7:30:00"
sDt2 = "2010-10-1 7:30:00"

days = DateDiff( "d", sDt1,sDt2)
MsgBox CStr(days),vbSystemModal

sDt2 = sDt1

Set conn = CreateObject("ADODB.Connection")
strConn = "Driver={SQL Server};Server=(local);Database=UserDatabase;Uid=;Pwd=;"
conn.Open strConn

For i = 1 To days
sDt1 = sDt2
sDt2 = DateAdd("d",1,sDt2)

Set rs = CreateObject("ADODB.Recordset")
strSQL = "select * from AirRecord where Kid in(56,57,58,59,60,61,62,63,64,67,68,71,73,74,75,76,78,81,86,89,90,92,93,94,95) "
strSQL = strSQL & " And (Rdt between '"+sDt1+"' and '"+sDt2+"') order by Rdt,Kid"
rs.Open strSQL,conn,2,2
If rs.EOF = False And rs.BOF = False Then
rs.MoveFirst
ts5 = rs("Hours")
For i1 = 1 To 24
rs.MoveNext
ts5 = ts5 + rs("Hours")
Next
rs.MoveLast
tz5 = rs("Hours")
For j1 = 1 To 24
rs.MovePrevious
tz5 = tz5 + rs("Hours")
Next
End If
rs.Close
MsgBox CStr(tz5 - ts5),vbSystemModal
Next
conn.Close
Set rs = Nothing
Set conn = Nothing
...全文
100 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
youzhj 2011-03-18
  • 打赏
  • 举报
回复
真是奇怪,别的地方我也用过+号,也能运行啊,就这里不行。刚改成&,就可以运行了。
不管怎么说,&应该是更标准的,谢谢你,太感谢了![Quote=引用 4 楼 falizixun2 的回复:]
引用 3 楼 youzhj 的回复:

引用 2 楼 falizixun2 的回复:
用眼睛看不出代码有什么问题!

但是用VB脚本来写数据库连接即使可以这么做,也是不可取的!代码问题就是不安全!
你说得有道理,但是现在确实需要这样做,代码运行时候,提示说" And (Rdt between '"+sDt1+"' and '"+sDt2+"') order by Rdt,Kid"运行出……
[/Quote]
youzhj 2011-03-18
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 falizixun2 的回复:]
引用 3 楼 youzhj 的回复:

引用 2 楼 falizixun2 的回复:
用眼睛看不出代码有什么问题!

但是用VB脚本来写数据库连接即使可以这么做,也是不可取的!代码问题就是不安全!
你说得有道理,但是现在确实需要这样做,代码运行时候,提示说" And (Rdt between '"+sDt1+"' and '"+sDt2+"') order by Rdt,Kid"运行出……
[/Quote]我改改试试,以前没注意这个问题,谢谢提醒哈。
kaifadi 2011-03-18
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 youzhj 的回复:]

引用 2 楼 falizixun2 的回复:
用眼睛看不出代码有什么问题!

但是用VB脚本来写数据库连接即使可以这么做,也是不可取的!代码问题就是不安全!
你说得有道理,但是现在确实需要这样做,代码运行时候,提示说" And (Rdt between '"+sDt1+"' and '"+sDt2+"') order by Rdt,Kid"运行出错,type mismatch!不知道这到……
[/Quote]
" And (Rdt between '"+sDt1+"' and '"+sDt2+"') order by Rdt,Kid"这行错误吗?

VB脚本的连字符有+号吗?你上面都知道用&,为什么这里就变成了+了呢?

当然VB6软件设计里有+这个连字符!脚本级的没有!
youzhj 2011-03-18
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 falizixun2 的回复:]
用眼睛看不出代码有什么问题!

但是用VB脚本来写数据库连接即使可以这么做,也是不可取的!代码问题就是不安全!
[/Quote]你说得有道理,但是现在确实需要这样做,代码运行时候,提示说" And (Rdt between '"+sDt1+"' and '"+sDt2+"') order by Rdt,Kid"运行出错,type mismatch!不知道这到底是什么问题?
kaifadi 2011-03-18
  • 打赏
  • 举报
回复
用眼睛看不出代码有什么问题!

但是用VB脚本来写数据库连接即使可以这么做,也是不可取的!代码问题就是不安全!

28,391

社区成员

发帖
与我相关
我的任务
社区描述
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区管理员
  • ASP
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧