服务端的recordset如果转成客户端ActiveXObject("ADODB.Recordset");?

后台ASP程序得到一个recordset

VBScript code
set rs=server.CreateObject ("adodb.recordset")
sql = "select * from table"
rs.open sql,conn,1,1






JScript code
前台客户端定义一个RS
var rsDst = new ActiveXObject("ADODB.Recordset");




有什么好方法可以快速把server.CreateObject ("adodb.recordset")转换到前台的ActiveXObject("ADODB.Recordset")呢

转换到客户端后就可以完全在客户端进行操作了 比如说进行sort等等



问题点数:200 回复次数:16 显示所有回复显示星级回复显示楼主回复 修改 删除 举报 引用 回复


加为好友
发送私信
在线聊天
hztgcl1986
我本有心
等级:
可用分等级:中农
总技术分:4300
总技术分排名:4946

发表于:2007-12-10 10:51:121楼 得分:0
对于FSO,ADO之类的,客户端一般都不允许操作,需要进行相应设置。建议还是不要用客户端ADO了,可以把服务器端放入客户端JS数组中进行操作






修改 删除 举报 引用 回复

加为好友
发送私信
在线聊天
a040liutao
冬之心
等级:
可用分等级:短工
总技术分:1474
总技术分排名:14292

发表于:2007-12-10 10:55:042楼 得分:0
谢谢LS 但是放到JS数组后过百的话排序再重新显示就会很慢


修改 删除 举报 引用 回复

加为好友
发送私信
在线聊天
pzhuyy
喝小酒泡尼姑http://blog.const.net.cn
等级:
可用分等级:富农
总技术分:10926
总技术分排名:1795

发表于:2007-12-10 10:57:353楼 得分:0
客户端怎么读取服务器端数据?访问方式?如果要在客户端操作,建议如楼上所说,将服务器端放入客户端JS数组中.
类似 var a= <%=b%>

修改 删除 举报 引用 回复

加为好友
发送私信
在线聊天
a040liutao
冬之心
等级:
可用分等级:短工
总技术分:1474
总技术分排名:14292

发表于:2007-12-10 10:59:354楼 得分:0
谢谢LS
将服务器端放入客户端JS数组中.
类似 var a= <%=b%>

这个变量到变量的转换 单是对象到对象的转换呢? 难道一定要自己来做RS的便利这种蠢方法来转换么


修改 删除 举报 引用 回复

加为好友
发送私信
在线聊天
pzhuyy
喝小酒泡尼姑http://blog.const.net.cn
等级:
可用分等级:富农
总技术分:10926
总技术分排名:1795

发表于:2007-12-10 11:00:045楼 得分:10
排序显示很慢?在内存中排序都很慢的话?在数据库中排和其它方式会更慢吧.
因为数据在客户端,排序的时候不会请求到服务器资源,过百的数据排序很慢会不会是算法上的问题?

修改 删除 举报 引用 回复

加为好友
发送私信
在线聊天
pzhuyy
喝小酒泡尼姑http://blog.const.net.cn
等级:
可用分等级:富农
总技术分:10926
总技术分排名:1795

发表于:2007-12-10 11:04:136楼 得分:10
对象转换实际上也是把所有的参数值给传过去而已,类似一个对象里面包含的数据,只是用一种透明的方式传值,而你想直接传对象过去,好调用js现成的方法与属性.个人感觉不可行,你可以自己把adodb.recordset对象在js中可能用到的方法与属性自己写下:)

修改 删除 举报 引用 回复

加为好友
发送私信
在线聊天
hztgcl1986
我本有心
等级:
可用分等级:中农
总技术分:4300
总技术分排名:4946

发表于:2007-12-10 11:06:087楼 得分:0
数据在HTML中表格中显示出来后,还可以用JS对表格排序






修改 删除 举报 引用 回复

加为好友
发送私信
在线聊天
a040liutao
冬之心
等级:
可用分等级:短工
总技术分:1474
总技术分排名:14292

发表于:2007-12-10 11:38:318楼 得分:0
ActiveXObject("ADODB.Recordset") 本身就是在客户端 那些方法也都是有的
问题的关键是把从服务端(数据库)或者的数据放进去有什么便捷的方法?



修改 删除 举报 引用 回复

加为好友
发送私信
在线聊天
qsj48747776

等级:
可用分等级:贫农
总技术分:538
总技术分排名:31660

发表于:2007-12-10 12:10:129楼 得分:15
把服务端的数据集生成到json格式,然后用js处理可能会快点吧

修改 删除 举报 引用 回复

加为好友
发送私信
在线聊天
a040liutao
冬之心
等级:
可用分等级:短工
总技术分:1474
总技术分排名:14292

发表于:2007-12-10 12:18:0010楼 得分:0
楼上能说仔细点么?

修改 删除 举报 引用 回复

加为好友
发送私信
在线聊天
showbo
要学习了.....さようなら
等级:
可用分等级:富农
总技术分:56086
总技术分排名:141
3
3
发表于:2007-12-10 13:41:3711楼 得分:0
json就是一种数据格式,操作起来还是一样用js.

还是用js数组了

修改 删除 举报 引用 回复

加为好友
发送私信
在线聊天
a040liutao
冬之心
等级:
可用分等级:短工
总技术分:1474
总技术分排名:14292

发表于:2007-12-11 09:24:2012楼 得分:0
难道没人用过ActiveXObject("ADODB.Recordset")

大家可以看看e商2006的商务系统

高手呢 都哪去了啊

修改 删除 举报 引用 回复

加为好友
发送私信
在线聊天
songpengasp
达·文西 有问题先找baidu、google
等级:
可用分等级:掌柜
总技术分:14124
总技术分排名:1144

发表于:2007-12-11 10:44:0013楼 得分:10
ActiveXObject("ADODB.Recordset")

访问哪里的数据库? 服务器上的数据库? 本地数据库?

安全何在??

修改 删除 举报 引用 回复

加为好友
发送私信
在线聊天
showbo
要学习了.....さようなら
等级:
可用分等级:富农
总技术分:56086
总技术分排名:141
3
3
发表于:2007-12-11 11:44:1214楼 得分:100
下面采用数据岛的形式,ie6下运行没问题.不过对于列中的数据类型不知道客户端如果对于的,只按adovbs.inc中的数据类型试试,找到了两种可能的数据类型来添加,如
Const adBSTR = 8;
Const adBigInt = 20;

但是Const adBSTR = 8
Const adChar = 129
Const adVarChar = 200
Const adLongVarChar = 201
Const adWChar = 130

这些没用,不知道怎么搞的,汗.............


HTML code<html>
<head>
<meta http-equiv="http-content" content="text/html;charset=gb2312"/>
<title>XML数据岛测试</title>
</head>
<body>
<!----------------这个数据岛你可以使用recordset对象来生成如同下面的格式--------------------->
<xml id='ds'>
<rows>
<row><id>2</id><name>name2</name></row>
<row><id>1</id><name>name1</name></row>
<row><id>3</id><name>name3</name></row>
</rows>
</xml>
<script>
//数据类型定义,这个我也搞不清楚类型
//在网上和书上都没找到客户端的recordset对于的类型
//只好按adovbs.inc中的类型试试,这两个满足要求,可以添加入列中的类型
var adBSTR = 8;//字符类型
var adBigInt = 20;//数字类型

var dsrs=ds.recordset;//获取数据岛中的recordset
var rs=new ActiveXObject("adodb.recordset");
with(rs)
{
//设置rs的类型
cursortype=1;
locktype=3;
//添加列
fields.append("id",adBigInt);
fields.append("name",adVariant);
}
rs.Open();
while(!dsrs.eof)
{
rs.AddNew();
rs(0)=dsrs(0)
rs(1)=dsrs(1);
rs.Update();
dsrs.movenext();
}
rs.sort="id";//排序
rs.MoveFirst();
alert(rs(0)+"|"+rs(1));
rs=null;
</script>
</body>
</html>



修改 删除 举报 引用 回复

加为好友
发送私信
在线聊天
showbo
要学习了.....さようなら
等级:
可用分等级:富农
总技术分:56086
总技术分排名:141
3
3
发表于:2007-12-11 11:52:3815楼 得分:50
更正下代码


JScript codewith(rs)
{
//设置rs的类型
cursortype=1;
locktype=3;
//添加列
fields.append("id",adBigInt);
fields.append("name",adBSTR);//===========变量搞错了,前面试的时候没改过来
}



修改 删除 举报 引用 回复

加为好友
发送私信
在线聊天
BlueDestiny
www.never-online.net
等级:
可用分等级:富农
总技术分:35036
总技术分排名:270
发表于:2007-12-11 12:35:5616楼 得分:5
有什么好方法可以快速把server.CreateObject ("adodb.recordset")转换到前台的ActiveXObject("ADODB.Recordset")呢

转换到客户端后就可以完全在客户端进行操作了 比如说进行sort等等
-----------
用客户端的grid

加支付宝好友偷能量挖...


评论(0)网络
阅读(89)喜欢(0)JavaScript/Ajax开发技巧