Newsgroup: it.comp.appl.access
Titolo: SP che non aggiorna tutti i record

Ciao a tutti,
non riesco a capire perche' uns sp con la seguente sintassi non aggiorna
tutti i record:
UPDATE CorsiDR2000 SET Elaborato=0
ne lascia a null olter un migliaio su 11000.
ho anche pensato che potesse trattarsi di un limite predefinito sul numero
di record su cui intervenire (come il limite predefinito in visualizzazione
e' 10000) ma non vedo che senso abbia su una sp di aggiornamento.
Sib

"Sib" <si...@SPAMiol.it> ha scritto nel messaggio
news:cHZHa.107327$pR3.2...@news1.tin.it...

ciao
se ti crei una nuova tabella tmpCorsiDR2000 ci copy dentro alcuni record che
non ti vengono aggiornati sull'altra tabella e provi ad eseguire la sp su
questa nuova che succede?
Ciao, AEOM

 questa nuova che succede?
Allora, i record sono 11988, dopo l'esecuzione della sp risultano impostati
a 0 solo 10000 record ed e' possibile identificare e filtrare i restanti
1988 record che hanno il campo ancora impostato a null.
Ma ora viene il bello, se creo una copia della tabella col copia-incolla
allora TUTTI i record della copia della taabella risultano impostati a 0.
e' come se l'operazione fosse stata fatta ma access non se ne fosse ancora
accorto, neanche chiudendo e riaprendo la tabella, anzi, neanche chiudendo e
riaprendo access.
Non e' che c'e' una sorta di transazione da confermare o qualcosa del
genere?
Sib

"Sib" <si...@SPAMiol.it> ha scritto nel messaggio
news:3idIa.110592$pR3.2...@news1.tin.it...

Ciao Sib
Il numero 10000 fa pensare che in Strumenti-->Opzioni-->Avanzate tu abbia
10000 come max numero di record.
Infatti questo parametro invia a SqlServer il Comando SET ROWCOUNT 10000 che
come da manuale impone in Microsoft® SQL ServerT l'interruzione
dell'elaborazione della query dopo che è stato restituito il numero di righe
specificato, e questo influisce anche sulle Sp. Prova a mettere a zero tale
impostazione o se vuoi mantenerla dopo la dichiarazione sella Sp 'ALTER PROC
ecc AS' inserisci   SET ROWCOUNT  0 .
Ciao Giorigo.

 ecc AS' inserisci   SET ROWCOUNT  0 .
Comprendo, accetto e applico il consiglio, ma cio' lascia due enormi
interrogativi:
Come mai questa limitazione avviene anche sulle sp di comando che NON
restituiscono record?
Soprattutto, perche' se copio la tabella sullo stesso database avviene che
nella nuova tabella tutti i campi sono impostati a 0?
Sib

 nella nuova tabella tutti i campi sono impostati a 0?
Ok,
ho trovato risposta al secondo quesito, un campo bit, anche se impostato per
accettare valore null, non accetta il valore null, quindi nella copia access
corregge i dati impostando il primo valore valido e cioe' 0.
il tuo suggerimento ha funzionato, ma resto dell'avviso che sia
concettualmente errato applicare quel limite anche sulle sp di comando.
Sib

"Sib" <si...@SPAMiol.it> ha scritto nel messaggio
news:zUgIa.111800$pR3.2...@news1.tin.it...

Ciao Sib
Non sono un progettista di Access ma essendoci un solo parametro per
limitare il numero dei record trovo logico che sia applicato a tutti i
comandi inviati al server. Infatti intercettando le interrogazioni  da
access al server con Query Profiler si nota che la prima riga di ogni query,
sp, funzione č SET ROWCOUNT 10000.
Ciao Giorgio.