日期:2014-05-16  浏览次数:21145 次

如何快速获取记录集中的某个字段的数据组合成的数组
如何快速获取记录集中的某个字段的数据组合成的数组

比如
[表]
ID  姓名 性别
我想把记录集的ID 组成一个数组 供以后的程序使用

我目前的代码是这样的: 会不会很土啊???
sql="select ID from 表 where ...."
rs.open.........
do while not rs.eof
    itemid=rs("ID")
    if idstring="" then
        idstring=itemid
    else
        idstring=idstring&"|"&itemid
    end if 
    rs.movenext
loop

shuzu=split(idstring,"|")   '我的目的是得到这个数组


有没有更好的方法?



------解决方案--------------------
直接给数组不可以吗
------解决方案--------------------
引用:
必须要从数据库 读取啊
但没必要拼成字符串再分隔成数组呀,直接装进数组不得了
------解决方案--------------------
good!!!!!!!!!!
------解决方案--------------------
楼主,也有别的方法,就是可以试试把sql文改一下,比如说你用的数据库是SQL server的话,可以用For XML Path()这种语法,
查出来的数据像这样
ID
----------------------
001,002,003,004
----------------------
然后在split(',').
------解决方案--------------------
引用:
Quote: 引用:

Quote: 引用:

必须要从数据库 读取啊
但没必要拼成字符串再分隔成数组呀,直接装进数组不得了


不拼成字符串,动态增加数组长度。?

re:
对呀,ReDim Preserve MyArray(增加元素数量),你的不用这么麻烦,只要结果集出来了,就已经知道有多少元素了:
dim myArray(rs.recordCount)
dim i:i=0
do while not rs.eof
    myArray(i)=rs("ID")
    i=i+1
    rs.movenext
loop


另外, 不管怎样 都是要遍历记录集?
re:
对,结果集是一个对象实例,array在vbscript只是一个结构,两者不能划等号
------解决方案--------------------
引用: