注册 登录
编程论坛 ASP技术论坛

请教下面二句语句有何区别?

sylknb 发布于 2010-02-03 15:26, 475 次点击
1.Temp = Conn.Execute("Select Sum(Num) From [Vote]")
 TotalVote = Temp(0)   
 


2.set temp=Conn.Execute("Select Sum(Num) From [Vote]")
请教上面二句有何不同?
temp(0)是指什么?
5 回复
#2
yms1232010-02-03 15:34
1.Temp = Conn.Execute("Select Sum(Num) From [Vote]")
TotalVote = Temp(0)   



2.set temp=Conn.Execute("Select Sum(Num) From [Vote]")
第2句应该是对的,这个语句可能是某个投票统计
Temp这里是ADODB.RecordSet类型的,Temp(0)就是第一行第一个字段的值,而这里的值是一个投票的统计结果值。
#3
aspic2010-02-03 16:38
Temp = Conn.Execute("Select Sum(Num) From [Vote]")(0)

这样也是对的
#4
sylknb2010-02-03 17:02

上面两位首先谢谢,但还不明白。

set temp=Conn.Execute()我知道是用Conn的Execute方法隐性创建记录集对象(temp)
但此句书上有:Temp = Conn.Execute("Select Sum(Num) From [Vote]")
TotalVote = Temp(
0)  


这句中的Temp = Conn.Execute("Select Sum(Num) From [Vote]")(0)中TEMP表示什么意义,(0)表示什么


[ 本帖最后由 sylknb 于 2010-2-3 17:03 编辑 ]
#5
yms1232010-02-05 10:31
你要把记录集看作是一个特殊的二维数组就明白了,一般的数据表都是
 字段1  字段2 字段3
  val1  val2  val3
  val1  val2  val3
而记录集就是存储这个数据表
记录集执行Open函数或使用con.execute创建都会默认指向第一行
也就是
  val1  val2  val3
这是要取得val1可以写rs(0),取得val2可以写rs(1)
移动到下一行使用rs.movenext执行完这个函数
再写rs(0)取得的就是第二行第一个
#6
sylknb2010-02-05 11:09
多谢 yms123
1