SQL中没有数组的概念,
可以考虑用表,临时表,表变量,多个变量。

解决方案 »

  1.   

    for i=0 to UBound(aClassId4)
        sql="EXEC InsertGoodsToClass " & aClassId4(i) & "," & rs("GoodsId") 
    'Response.Write(sql)
    conn.Execute sql
    next
    ___
    本来用ASP循环,可是每次循环,sql被执行了2次!
      

  2.   

    真不明白为什么 ,在'Response.Write(sql)的时候正常
    一用conn.Execute sql,执行次数就不和循环的一样了
      

  3.   

    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
      

  4.   

    在执行Response.Write(sql)显示是
    EXEC InsertGoodToClass 1,12
    EXEC InsertGoodToClass 3,12
    EXEC InsertGoodToClass 2,12
    ______
    可是一运行conn.Execute sql
    表里就被重复加入记录
    ————
    不知道是我的过程有问题,还是ADO,ASP方面的问题?
      

  5.   

    EXEC InsertGoodToClass 1,12
    EXEC InsertGoodToClass 3,12
    EXEC InsertGoodToClass 2,12
    这些语句直接在SQLSERVER中执行就好使
      

  6.   

    用按个ASP循环调用就出重复,直接在sqlserver种运行,就正常
      

  7.   

    代码都在这,实在自己找不到问题了
    <%@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
    %>