ASP向Access插入多条记录的问题 20

i=0DoWhilei<numrs.addnewrs("key_str")=CreatePass(12)rs("price")=pricers("g_id")=g_idr... i = 0
Do While i < num
rs.addnew
rs("key_str") = CreatePass(12)
rs("price") = price
rs("g_id") = g_id
rs("valid_time") = valid_time
rs("use_flag") = 0
rs("user_id") = -1
rs.update
i = i + 1
Loop
rs.Close
set rs=Nothing
response.write "生成完毕"

代码如上(ASP的),i = 1~50没问题,但要是50以上,就不能完整执行了,也就是"生成完毕"显示不出来,插入的记录也达不到数量,IIS的ASP延时已经设置成3000秒了,但是没什么改关,用的是Access的数据库!
'插入数据
sql = "SELECT * FROM Keys"
rs.open sql, conn, 3, 3

i = 0
Do While i < num
'调试用
response.write "Insert:" & i & "<br>"
rs.addnew
rs("card_str") = ckAry(i, 0)
rs("key_str") = ckAry(i, 1)
rs("price") = price
rs("g_id") = g_id
rs("valid_time") = valid_time
rs("use_flag") = 0
rs("user_id") = -1
rs.update
i = i + 1
Loop
rs.Close

set rs=Nothing
conn.Close
set conn=Nothing

call on_ok(i & "个卡密成功生成!","keys.asp")

代码作了改进,避免了使用了卡号加密码的方式,并设置了随即数种子来尽量避免重复,但实际使用过程中发现,如果输出的num为几十的话,以上代码就不能顺利执行完毕了
展开
 我来答
xxq8210
2009-06-16 · TA获得超过1.8万个赞
知道小有建树答主
回答量:476
采纳率:0%
帮助的人:283万
展开全部
建议改成这样,之间用Sql命令字符串来操作的话,有保证!当然,insert 里的各个字段
字符串类型 就加:' ' 括起来
整型,就不用了!

dim sql
i= 0
do while i< num
sql = "insert into table(key_str,price,g_id,valid_time,use_flag,user_id)" &_
"values('{key_str} ',{price},{g_id},'{valid_time}',{use_flag},{user_id})"

replace(sql , "{key_str}" ,CreatePass(12))
replace(sql , "{price}" ,price)
replace(sql , "{g_id}" ,g_id)
replace(sql , "{valid_time}",valid_time)
replace(sql , "{use_flag}" ,0)
replace(sql , "{user_id}" ,-1)

rs.open sql,conn
rs.close();
loop
set rs=nothing

response.write "生成完毕"
ccheck
2009-06-16 · TA获得超过116个赞
知道小有建树答主
回答量:221
采纳率:0%
帮助的人:113万
展开全部
代码看起来没问题啊
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
miniapphe47hvdzyil7l
2009-06-16 · TA获得超过497个赞
知道小有建树答主
回答量:750
采纳率:0%
帮助的人:499万
展开全部
timeout 设置长点噢。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
tangzhiyong88
2009-06-16 · TA获得超过216个赞
知道小有建树答主
回答量:334
采纳率:0%
帮助的人:149万
展开全部
<%Server.ScriptTimeout=9999 %> 脚本前面加上这个就好了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
小鱼的眼皮
2009-06-16 · TA获得超过2607个赞
知道小有建树答主
回答量:1608
采纳率:0%
帮助的人:700万
展开全部
操作是否完成 需要一个是 代码的处理时间
Server.ScriptTimeout
还需要一个页面的显示时间
一般 Server.ScriptTimeout是90秒设置只有15秒
所有大量的数据插入必定不能在这么短的时间内完成
因此 如果大量数据写入 可以考虑分页写入

一页插入 20条记录或者更少就不会出现这个问题了
主要是需要有参数的传递
貌似你就四个参数还是很简单的
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
nannanTMD
2009-06-16
知道答主
回答量:20
采纳率:0%
帮助的人:0
展开全部
你的num赋值多少
最好用
num=rs.recordcount就都一样了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(5)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式