|
ekellysql
Starting Member
16 Posts |
Posted - 2006-03-28 : 12:55:45
|
| Here's my sp and asp code that calls it. The last line of my asp code is where I get the error."Operation not allowed when the object is closed."It works fine for calling other sp's though. Thanks for any help.CREATE Procedure CE_Customer_Purchase_Info( @totalrevenue as int = 0, @numdayssincelstpurchase as int = 0) Asdeclare @tab table ( capID int, memID int, tt int )insert @tabselect f.* from (select top 100 PERCENT cM2.memID as capID,TD.memid,count(CA.whomade)as TT from transactiondetails TD inner join transactioninfo TI ON TI.TID = TD.TID inner join catalog CA ON CA.CatalogID = TI.catalogID inner join coversMems cM2 ON cM2.memId = CA.whomade WHERE ((TD.cc_status='B' and TD.captureStatus = 'successfullyCaptured' and TD.tranStat = 'success') OR (TD.cc_status='V' and TD.captureStatus = '7 day drop' and TD.tranStat = 'success'))group by TD.memid, cM2.memIDorder by TD.memid,count(CA.whomade)desc) fIF @@ERROR <>0 BEGIN PRINT 'Error Occured' ENDSELECT --top 100 cM.MemId , cM.FirstName , cM.LastName , cM.Email , convert(integer,MPI.LPDate - convert(datetime,convert(char(10),cast(madeon As DateTime),101))) As LifeSpanDay , MPI.CntOP , MPI.TotPur As TotalRevenue , MPI.LPDate , convert(integer, getdate() - MPI.LPDate) As #DaysSinceLastPurchase , convert(numeric,MPI.LPDate - convert(datetime,convert(char(10),cast(madeon As DateTime),101))) / MPI.CntOP As AvePurchaseCycle , dbo.GetCustomerMaxIdleDays(cM.memId) , (SELECT Count(memId) As CntGoodPicks FROM transactiondetails TD WHERE (cc_status='B' and captureStatus = 'successfullyCaptured' and tranStat = 'success' and TD.memID = cM.MemId)) As CountofGoodPicks , (SELECT Count(memId) As CntBadPicks FROM transactiondetails TD WHERE (cc_status='V' and captureStatus = '7 day drop' and tranStat = 'success' and TD.memID = cM.MemId)) As CountofBadPicks , 'FS' As FavouriteSport , capM.FirstName + ' ' + capM.LastName as FavouriteCapper FROM coversMems cM INNER JOIN (SELECT MAX(trandate) As LPDate, memID, Count(memId) As CntOP, SUM(playCost) As TotPur FROM transactiondetails WHERE (cc_status='B' and captureStatus = 'successfullyCaptured' and tranStat = 'success') OR (cc_status='V' and captureStatus = '7 day drop' and tranStat = 'success') GROUP BY memID ) As MPI ON MPI.memID = cM.MemId --MPI = Member Purchase Info inner join ( select /*top 1000*/ cM2.memID as capID, TD.memid,count(CA.whomade)as TT from transactiondetails TD inner join transactioninfo TI ON TI.TID = TD.TID inner join catalog CA ON CA.CatalogID = TI.catalogID inner join coversMems cM2 ON cM2.memId = CA.whomade WHERE ((TD.cc_status='B' and TD.captureStatus = 'successfullyCaptured' and TD.tranStat = 'success') OR (TD.cc_status='V' and TD.captureStatus = '7 day drop' and TD.tranStat = 'success')) and convert(varchar(10),cM2.memID)+'_'+convert(varchar(10),TD.memid) = ( select top 1 convert(varchar(10),capID)+'_'+convert(varchar(10),memid) from @tab WHERE memid=TD.memID order by tt desc) group by cM2.memID,TD.memid ) FC on FC.memID=cm.memId inner join (select memID,FirstName, LastName from coversMems) capM on capM.memID=FC.capIDWHERE MPI.TotPur >= @totalrevenue and convert(integer, getdate() - MPI.LPDate) >= @numdayssincelstpurchaseIF @@ERROR <>0 BEGIN PRINT 'Error Occured Again' ENDGO****************************ASP code that calls the sp*******set cmdTempPur = server.CreateObject("ADODB.Command") set ors = server.CreateObject("ADODB.Recordset") Set conSumRep = Server.CreateObject("ADODB.Connection") conSumRep.ConnectionString="Provider=SQLOLEDB;User ID=user;Password=pwd;Initial Catalog=dbname;Data Source=server" conSumRep.ConnectionTimeout = 300 conSumRep.Open cmdTempPur.ActiveConnection = conSumRep cmdTempPur.CommandType = adCmdStoredProc cmdTempPur.CommandText = "CE_Customer_Purchase_Info" cmdTempPur.Prepared = True if Request.Form("totalrevenue") = "" then totalrevenue = 0 else totalrevenue = Request.Form("totalrevenue") cmdTempPur.Parameters("@totalrevenue") = totalrevenue if Request.Form("numdays") = "" then reqnumdays = 0 else reqnumdays = Request.Form("numdays") cmdTempPur.Parameters("@numdayssincelstpurchase") = reqnumdays cmdTempPur.CommandTimeout = 300 set ors = cmdTempPur.Executeif not ors.eof then NewCustAry = ors.getrows() else NewCustAry = "" |
 |
|