- Home
- Categorie
- Coding e Sistemistica
- Altri linguaggi per il web
- Debug - Stored procedure
-
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 ?
-
@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
-
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.
-
@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
BEGININSERT INTO TabellaPrincipale
(CAMPO1, CAMPO2, ...)VALUES(...)IF @variabile1 <> ''
EXEC Stored_pocedureSET @intDa = @intDa + 1
END
-
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!?!?!?!?!?!?!?!?!?!?!?
-
Vai nelle proprietà della SP e controlla che l'utente internet abbia le dovute autorizzazioni
-
@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
-
Non mi ha allegato il file...
Spero che questa volta vada a buon fine l'upload, eventualmente ti spiego come sono i miei permessiHo un unico utente con permesso che si chiama public non ho la possibilità di modificare nulla se non il campo EXEC...
fammi sapere
ciao
-
Utilizzi public per connetterti al DB? Mi sembra strano. Confronta utenti e permessi di questa SP con quelli di una SP che funziona.
-
@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 proceduresono veramente perplesso...
-
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.
-
Forse dopo 2 giorni di ricerche e prove ho trovato, mancava il "set nocount on" nelle stored procedure
grazie
ciao
-
Ok ciao