Ciao a tutti, sono abbastanza nuovo nella scrittura di store proc e ho soprattutto qualche difficoltà nella interazione con Asp.![]()
Io dovrei tirar fuori da una stored procedure un valore (il numero di record inseriti in una tabella), e nel contempo vorrei leggere una variabile che mi fa capire che tutto è andato a posto (il COMMIT è avvenuto).
Ve la incollo qui sotto.
create procedure spNewsletter
@nRec int output
as
truncate table SendNewsletter
declare @esito int
begin tran
insert into SendNewsletter (email) (
select distinct(email) from shop.dbo.shopAcquirenti
union
select distinct(email) from dbo.Utenti
union
select distinct(email) from dbo.Mail_Nwsl
)
if @@error = 0
commit tran
select @nRec = count(email) from SendNewsletter
set @esito= 1
return @esito
if @@error <> 0
rollback tran
set @esito= 0
return @esito
GO
Ed ecco invece il codice asp:
Set con = Server.CreateObject("ADODB.Connection")
con.open = "Provider = SQLOLEDB;Data Source = (local);Initial Catalog = xxx;User ID=xxx"
set dbComm = Server.CreateObject("ADODB.Command")
dbComm.ActiveConnection = con
dbComm.CommandType = 4
dbComm.CommandText = "spNewsletter"
dbComm.Parameters.Append dbComm.CreateParameter("esito", 3, 4)
dbComm.Parameters.Append dbComm.CreateParameter("nRec", 3, 4)
dbComm.Execute
if dbComm.Parameters(0).Value = 1 then
Response.Write "Aggiornamento effettuato correttamente "
Response.Write "
Attualmente sono presenti " & dbComm.Parameters(1).Value & " indirizzi email a cui inviare la newsletter"
else
Response.Write "Aggiornamento NON effettuato "
end if
Se qualcuno potesse controllare la correttezza di quello che ho scritto.... Tengo a precisare che funziona, però mi rimane qualche dubbio... ho la netta impressione che non sia ottimizzata!
Grazie![]()

Rispondi quotando