• 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