• User Attivo

    Debug - Stored procedure

    Potrebbe essere che lanciando in debug una stored procedure vada perfettamente, mentre richiamandola da una pagina ASP vada solo per un pezzo!?

    Mi spiego meglio; io ho un stored procedure Sql Server 2000 che deve ciclare e inserire dei record richiamando altre procedure, quindi se la lancio da debug di Query analyzer va perfettamente, mentre se la richiamo da ASP il ciclo dopo alcuni record inseriti perfettamente si ferma!!

    aiutooooooooooooo!!

    grazie
    ciao


  • User Attivo

    Quando utilizzi il Query analyzer, hai parecchio tempo finche non và in time out l'istruzione e te la blocca, mentre tramite IIS questo tempo è più breve, ora non vorrei ricordarmi male, ma in IIS ci dovrebbe essere qualche impostanzione che ti indica quanto tempo attendere l'esecuzione di una Query o Stored da parte di SQL Server prima di troncare la connessione a quest'ultimo.
    Per capire se è questo il problema, orientativamente impieghi più di 30 secondi per concludere l'operazione ?


  • User Attivo

    @tonyx said:

    Quando utilizzi il Query analyzer, hai parecchio tempo finche non và in time out l'istruzione e te la blocca, mentre tramite IIS questo tempo è più breve, ora non vorrei ricordarmi male, ma in IIS ci dovrebbe essere qualche impostanzione che ti indica quanto tempo attendere l'esecuzione di una Query o Stored da parte di SQL Server prima di troncare la connessione a quest'ultimo.
    Per capire se è questo il problema, orientativamente impieghi più di 30 secondi per concludere l'operazione ?

    No assolutamente, al massimo 5 secondi...
    Pare che sia quando richiamo altre stored procedure da questa stessa procedura che s'incazza e non riesce ad inserire correttamente tutti i record...

    che potrebbe essere, non so + dove sbattere

    ciao


  • User Attivo

    L'inserimento di records riguarda sempre la stessa tabella? Se la risposta fosse no allora controlla i permessi delle tabelle dove l'insert si blocca.


  • User Attivo

    @madai said:

    L'inserimento di records riguarda sempre la stessa tabella? Se la risposta fosse no allora controlla i permessi delle tabelle dove l'insert si blocca.

    La chiamata alla procedura esterna fa si che venga inserito un o + record in una tabella diversa da quella principale...
    Cosa dovrei vedere nei permessi!?

    Ecco un esempio di codice della mia stored procedure


    WHILE @intDa < = @intA
    BEGIN

    INSERT INTO TabellaPrincipale
    (CAMPO1, CAMPO2, ...)VALUES(...)

    IF @variabile1 <> ''
    EXEC Stored_pocedure

    SET @intDa = @intDa + 1

    END



  • User Attivo

    Facendo diverse prove ho constatato che solo quando richiama una nuova stored procedure non vengono inseriti correttamente tutti i record.
    Infatti prelevando il codice della procedura che dovrebbe essere richiamata e spostandolo nella procedura principale i record vengono correttamente inseriti.

    cosa posso fare!?!?!?!?!?!?!?!?!?!?!?


  • User Attivo

    Vai nelle proprietà della SP e controlla che l'utente internet abbia le dovute autorizzazioni


  • User Attivo

    @madai said:

    Vai nelle proprietà della SP e controlla che l'utente internet abbia le dovute autorizzazioni

    In allegato puoi vedere come sono i permessi delle stored procedure, ho messo il flag sul campo EXEC, che prima non c'era, ma comunque non vengono fatti tutti gli inserimenti.
    Puoi dargli un occhi e dirmi se c'è qualche cosa che non va!?

    attendo tue pronte notizie
    grazie
    ciao


  • User Attivo

    Non mi ha allegato il file...
    Spero che questa volta vada a buon fine l'upload, eventualmente ti spiego come sono i miei permessi

    Ho un unico utente con permesso che si chiama public non ho la possibilità di modificare nulla se non il campo EXEC...

    fammi sapere

    ciao


  • User Attivo

    Utilizzi public per connetterti al DB? Mi sembra strano. Confronta utenti e permessi di questa SP con quelli di una SP che funziona.


  • User Attivo

    @madai said:

    Utilizzi public per connetterti al DB? Mi sembra strano. Confronta utenti e permessi di questa SP con quelli di una SP che funziona.

    Utilizzo public perchè comunque si tratta di un portale intranet...
    Le altre procedure sono identiche a questa, il problema comunque rimane solo quando chiamo nel ciclo altre procedure

    sono veramente perplesso...


  • User Attivo

    Come vedi public non ha i permessi di INSERT. Prova a creare un utente nuovo, dagli i ruoli: public, datareader e datawriter.

    Poi vai di nuovo nella SP e aggiungilo dandogli i permessi di INSERT.

    Poi ovviamente connettiti con quello e non con public.

    Fammi sapere, ciao.


  • User Attivo

    Forse dopo 2 giorni di ricerche e prove ho trovato, mancava il "set nocount on" nelle stored procedure

    grazie
    ciao


  • User Attivo

    Ok ciao