调用方坦携法不对,你这样调用是没有返回值的。正确的作法滑信山是: DIM MyComm : Set MyComm = Server.CreateObject("ADODB.Command") with MyComm .ActiveConnection = Conn .CommandText = "addnews" .CommandType = 4 .Prepared = true .Parameters.append MyComm.CreateParameter("RETURN",2,4) .Parameters.append MyComm.CreateParameter("@id",3,2,4,id) .Parameters.append MyComm.CreateParameter("@oNEWS_Title",200,1,60,Otitle) .Parameters.append MyComm.CreateParameter("),@oType",3,1,4,ONews_class) .Parameters.append MyComm.CreateParameter("@oNEWS_Content",200,1,5000,Ocontent) .Parameters.append MyComm.CreateParameter("@oHot",3,1,4,Ohot) .Execute end with if MyComm(0)=1 then A_ID=MyComm(1) B_ID=MD5(A_ID) sql="UPDATE WK_NEWS Set MD5_NEWS_ID='"&B_ID&"' WHERE News_id="&A_ID conn.execute(Sql)'这一步其实也可以放到存储过程里面,或者用触发器更简单 end if Set MyComm = Nothing 另外存储过程里面还要增加一个输出参数,修信中改如下: CREATE PROCEDURE addnews@id int output,@oNEWS_Title char(60),@oType int,@oNEWS_Content ntext,@oHot intASinsert WK_News (NEWS_Title,Type,NEWS_Date,NEWS_Content,Hot) values (@oNEWS_Title,@oType,getdate(),@oNEWS_Content,@oHot) if @@error <> 0 begin return -1 endSelect @id=@@identityreturn 1GO
标签:asp,返回值,存储