CREATE PROCEDURE InsertGoodstoClass @ClassId numeric(8),@GoodsId numeric(8) AS /* 功能:给商品分配一个分类(插入记录到ClassTable) 参数:@ClassId 4级类ID,@GoodsId商品ID */ declare @ClassId1 numeric(8) declare @ClassId2 numeric(8) declare @ClassId3 numeric(8) declare @ParentId numeric(8) set @ParentId=(select ParentClassId from ClassTable4 where ClassTable4.ClassId=@ClassId) set @ClassId3=(select ClassTable3.ClassId from ClassTable3 where ClassTable3.ClassId=@ParentId)set @ParentId=(select ParentClassId from ClassTable3 where ClassTable3.ClassId=@ClassId3) set @ClassId2=(select ClassTable2.ClassId from ClassTable2 where ClassTable2.ClassId=@ParentId)set @ParentId=(select ParentClassId from ClassTable2 where ClassTable2.ClassId=@ClassId2) set @ClassId1=(select ClassTable1.ClassId from ClassTable1 where ClassTable1.ClassId=@ParentId) insert into ClassTable (GoodsId,ClassId1,ClassId2,ClassId3,ClassId4) values (@GoodsId,@ClassId1,@ClassId2,@ClassId3,@ClassId) GO
sql="EXEC InsertGoodsToClass " & aClassId4(i) & "," & rs("GoodsId")
'Response.Write(sql)
conn.Execute sql
next
___
本来用ASP循环,可是每次循环,sql被执行了2次!
一用conn.Execute sql,执行次数就不和循环的一样了
/* 功能:给商品分配一个分类(插入记录到ClassTable)
参数:@ClassId 4级类ID,@GoodsId商品ID
*/
declare @ClassId1 numeric(8)
declare @ClassId2 numeric(8)
declare @ClassId3 numeric(8)
declare @ParentId numeric(8)
set @ParentId=(select ParentClassId from ClassTable4 where ClassTable4.ClassId=@ClassId)
set @ClassId3=(select ClassTable3.ClassId from ClassTable3 where ClassTable3.ClassId=@ParentId)set @ParentId=(select ParentClassId from ClassTable3 where ClassTable3.ClassId=@ClassId3)
set @ClassId2=(select ClassTable2.ClassId from ClassTable2 where ClassTable2.ClassId=@ParentId)set @ParentId=(select ParentClassId from ClassTable2 where ClassTable2.ClassId=@ClassId2)
set @ClassId1=(select ClassTable1.ClassId from ClassTable1 where ClassTable1.ClassId=@ParentId)
insert into ClassTable (GoodsId,ClassId1,ClassId2,ClassId3,ClassId4) values (@GoodsId,@ClassId1,@ClassId2,@ClassId3,@ClassId)
GO
EXEC InsertGoodToClass 1,12
EXEC InsertGoodToClass 3,12
EXEC InsertGoodToClass 2,12
______
可是一运行conn.Execute sql
表里就被重复加入记录
————
不知道是我的过程有问题,还是ADO,ASP方面的问题?
EXEC InsertGoodToClass 3,12
EXEC InsertGoodToClass 2,12
这些语句直接在SQLSERVER中执行就好使
<%@LANGUAGE="VBSCRIPT"%>
<!--#include file="include/opendb.asp"-->
<%
GoodsName=Trim(Request.Form("GoodsName"))
BRmb=Trim(Request.Form("BRmb"))
BDollar=Trim(Request.Form("BDollar"))
GRmb=Trim(Request.Form("GRmb"))
GDollar=Trim(Request.Form("GDollar"))
HRmb=Trim(Request.Form("HRmb"))
HDollar=Trim(Request.Form("HDollar"))
Explain=Trim(Request.Form("Explain"))
sClassId4=Trim(Request.Form("ClassId4"))
Show=Trim(Request.Form("Show"))
Picture="DEMO.jpg"
set conn=opendb("FLL","conn","accessdsn")
sql="INSERT INTO GoodsTable (GoodsName,BRmb,BDollar,GRmb,GDollar,HRmb,HDollar,Picture,Show,Explain)"
sql=sql & "VALUES ("
sql=sql & "'" & GoodsName & "'" & ","
sql=sql & "" & BRmb & "" & ","
sql=sql & "" & BDollar & "" & ","
sql=sql & "" & GRmb & "" & ","
sql=sql & "" & GDollar & "" & ","
sql=sql & "" & HRmb & "" & ","
sql=sql & "" & HDollar & "" & ","
sql=sql & "'" & Picture & "'" & ","
sql=sql & "" & Show & "" & ","
sql=sql & "'" & Explain & "'" & ")"
'Response.Write(sql)
conn.Execute sqlSet rs = Conn.Execute("SELECT * FROM GoodsTable where GoodsName='" & GoodsName & "'")
aClassId4=split(sClassId4,",")
for i=0 to UBound(aClassId4)
sql="EXEC InsertGoodsToClass " & aClassId4(i) & "," & rs("GoodsId")
'Response.Write(sql)
conn.Execute sql
next
%>