Utilizzare le stored procedure con le ASP

di Daniele Bochicchio, in Classic ASP, Database, Tips,

Una stored procedure è più performante, a parità di complessità e quando quest'ultima è elevata, di una query SQL eseguita in una pagina ASP.
L'esempio di oggi permette di utilizzare una stored procedure che inserisce in una nuova tabella due valori, username e nome e restituisce il numero progessivo di identificazione dello stesso.
Per fare questo, utilizzeremo due parametri di input ed uno di output:

<!--METADATA Type="typelib" uuid="{00000205-0000-0010-8000-00AA006D2EA4}"-->
<%

Set conn = Server.CreateObject("ADODB.Connection")
set command = Server.CreateObject("ADODB.Command")
conn.Open strConn ' da valorizzare

command.ActiveConnection = conn
 command.CommandText = "sp_NuovoUtente"
command.CommandType = adCmdStoredProc

         ' parametri di input
 ' formato: nomecampo, tipo, tipo di parametro, lunghezza, valore
set objParameter = command.CreateParameter ("@username", adVarChar, adParamInput, 30, username)
command.Parameters.Append objParameter

set objParameter = command.CreateParameter ("@nome", adVarChar, adParamInput, 255, nome)
command.Parameters.Append objParameter
        
 ' parametri di output
set objParameter = command.CreateParameter ("@UserID", adInteger, adParamOutput, , 0)
command.Parameters.Append objParameter

 ' execute per eseguire senza avere un recordset di ritorno
command.Execute , , adExecuteNoRecords

 ' ricavo l'userID appena inserito
 UserID = command.Parameters("@UserID")

 Response.write "Hai il numero " & userID

%>

I parametri vanno aggiunti nello stesso ordine in cui sono nella stored procedure.
Ed ecco la stored procedure che utilizzeremo per inserire un nuovo utente e ricavare come output il valore inserito:

Create PROCEDURE sp_NuovoUtente
(
  @username varchar(30),
  @nome varchar(255),
  @UserID int OUTPUT
)
AS
BEGIN
  INSERT INTO utenti (username, nome)
  VALUES (@username, @nome)

  SELECT @UserID = @@IDENTITY
END

Commenti

Visualizza/aggiungi commenti

| Condividi su: Twitter, Facebook, LinkedIn

Per inserire un commento, devi avere un account.

Fai il login e torna a questa pagina, oppure registrati alla nostra community.

Approfondimenti

Nessuna risorsa collegata

I più letti di oggi