ASP调用存储过程问题

无漾 2017-08-10 05:20:36
批量将rs记录集里的数据导入到MSSQL中,使用了存储过程,但是ASP循环调用存储过程和赋值不对,另外参数SHU怎么赋值??


MSSQL存储过程:
USE [ceshi]
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER procedure [dbo].[InsertTest]
@A varchar(50),
@B varchar(50),
@shu int
as

begin

declare @i int

set @i=1

while @i<=@shu

begin

insert into test (A,B) VALUES (@A,@B)

SET @i=@i+1

end

end

——————
ASP调用,赋值:
<!--#include file="conn.asp"-->
<!--#include file="adovbs.inc"-->
<%
DIM U,P,MyComm
SHU=0
do while not rs.eof
SHU=SHU+1
Set MyComm = Server.CreateObject("ADODB.Command")
MyComm.ActiveConnection = conn
MyComm.CommandText = "InsertTest"
MyComm.CommandType = 4
MyComm.Prepared = true
MyComm.Parameters.append MyComm.CreateParameter("@A", 200, 1, 20,RS("U"))
MyComm.Parameters.append MyComm.CreateParameter("@B",200,1,50,RS("P"))
MyComm.Parameters.append MyComm.CreateParameter("@SHU",200,1,-1,SHU)
MyComm.Execute
rs.movenext
loop
Set MyComm = Nothing
%>
...全文
253 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
hookee 2017-08-11
  • 打赏
  • 举报
回复
MyComm.Parameters.append MyComm.CreateParameter("@A", 200, 1, 50, rs("U").Value) MyComm.Parameters.append MyComm.CreateParameter("@B", 200,1, 50, rs("P").Value) MyComm.Parameters.append MyComm.CreateParameter("@SHU",3, 1, 4, SHU) 如果是实际的项目的话,既然用了sp,那么不需要用ado循环了,直接在sp里用sql解决问题可能更高效。
无漾 2017-08-11
  • 打赏
  • 举报
回复
1.目前用我的代码可以将RS记录集插入到MSSQL里,但是RS上万条,速度会非常慢,还不及一条条insert 来的快,所以我觉得我上面的代码有问题,估计是在循环赋值问题上。你给我改的加上Value,问题依然存在。 2.参数SHU就是RS的行数,像我上面的代码,每循环赋值一次,SHU就改变一次,另外到了存储过程中,就会将相同RS记录行,插入几次,这样也是不对的。 我想要的是将RS记录集用存储过程批量插入到MSSQL里。网上很多代码都是插一条。

28,390

社区成员

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

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