Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 16

Discussione: asp e stored procedure

  1. #1

    asp e stored procedure

    Ho una stored procedure in sql server che mi crea una stringa di sei caratteri
    non riesco a recuperare il valore della stringa creata dalla mia pagina asp.

    questo è il codice della stored

    CREATE PROC Generatestringa (
    @len INT = 6,
    @randomstringa CHAR(6) OUTPUT
    )
    AS


    BEGIN
    DECLARE @stringa VARCHAR(6), @type TINYINT, @source VARCHAR(50)
    SET @source = '0123456789ABCDEFGHILMNOPQRSTUVZ' -- caratteri utilizzati per la creazione
    SET @stringa=''

    DECLARE @lenghtSource AS TINYINT
    SET @lenghtSource = LEN(@source) - 1

    -- scelta del nuovo carattere da aggiungere alla stringa finale
    WHILE ( @len > 0 )
    BEGIN
    SET @stringa = @stringa + SUBSTRING(@source, CONVERT(INT, ROUND(1 + (RAND() * (@lenghtSource)), 0)), 1)
    SET @len = @len - 1
    END

    SET @randomstringa = @stringa
    END
    GO


    sto cercando di recuperare la mia stringa in questo modo

    sql = "EXECUTE Generatestringa"
    set r = conn.Execute(sql)
    response.write r("randomstringa")


    l'errore che mi ritorna è il seguente
    Microsoft OLE DB Provider for ODBC Drivers error '80040e14'

    [Microsoft][ODBC SQL Server Driver][SQL Server]La procedura 'Generatestringa' richiede il parametro '@randomstringa', che non è stato specificato.

    non riesco a capire come fare
    Grazie mille
    Fiorella

  2. #2
    è un parametro obbligatorio, passalo

  3. #3
    come devo passarglielo ...per me è il valore che devo ricevere in output....cosa dovrei scrivere dentro la chiamata asp??

  4. #4
    sql = "EXECUTE Generatestringa @randomstringa=''"

    dovrebbe andar bene

  5. #5
    mi ritorna il seguente errore
    ADODB.Recordset error '800a0cc1'

    Item cannot be found in the collection corresponding to the requested name or ordinal.

    /titano/lost.asp, line 30


    la linea 30 è dove cerco di recuperare la stringa in uscita
    response.write r(0)
    ho provato con response.write r("stringa") , r("@stringa") ,
    response.write r("randomstringa") , response.write r("@randomstringa")

    l'errore è sempre lo stesso (
    Fiorella

  6. #6
    scusa pensavo di aver risolto invece mi da uno strano errore
    È stato superato il numero massimo di livelli di nidificazione consentito (32) per stored procedure, funzioni, trigger o viste

  7. #7

  8. #8
    si è una semplice funzione random che mi genera una stringa casuale ( non avevo mai usato stored per recuperare valori di solito faccio tutto in asp.....

    da query analyzer la richiamo in questo modo

    DECLARE @stringa AS CHAR(6)
    EXEC GenerateStringa 6, @Stringa OUTPUT
    SELECT @Stringa


    e funziona benissimo




    ho provato a mettere questo dentro la stored
    EXEC GenerateStringa 6, @Stringa OUTPUT

    ma da asp ottengo l'errore
    È stato superato il numero massimo di livelli di nidificazione consentito (32) per stored procedure, funzioni, trigger o viste

  9. #9
    ok, in fondo alla SP (prima della END) metti

    SELECT @randomstringa

    oppure

    SELECT @stringa


    esegui come adesso, e stampa rs(0)

    se funziona, lascia

    SELECT @stringa


    e togli la stringa OUTPUT anche nella dichiarazione

  10. #10
    grazie mille funziona!!!
    Fiorella

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2026 vBulletin Solutions, Inc. All rights reserved.