Le variabili sono certe (nel senso che non vengono passati parametri
non compatibili) e sono numeri interi.
Ogni tanto, apparentemente con modalità casuale, l'UPDATE non avviene
e mi ritorna il seguente errore:
Errore di run-time '3157'
ODBC: operazione di UPDATE non riuscita su tabella collegata
'TAGLIANDI'
[Microsoft][ODBC SQL Server Driver] Timeout query scaduto. (#0)
Qualche idea?
Per caso usi l'UPDATE sulla stessa tabella su cui prima hai fatto una INSERT o
anche una semplice SELECT?
--
All'interno del controllo specificato non faccio nessuna operazione
prima dell'UPDATE
La SELECT avviene dopo quando seleziono i dati da stampare.
QRY_BASE = "SELECT * FROM TAGLIANDI WHERE ID=" & Me.ELC1.Column(0) & "
AND ANNO=" & Me.ELC1.Column(1)
DoCmd.OpenReport "REP_TAGLIANDO", acViewNormal
(nell'apertura del report viene impostata la QRY_BASE)
dove postare sul ng di sql?
Avevo giŕ postate 2 volte....ma evidentemente c'č qualche problema.....
Riassumo. I timeout succedono essenzialmente per 2 motivi: o l'operazione č
titanica (allora basta allungare il timeout o ripensare la procedura) oppure
ci sono dei lock nel mezzo. SQL server ha tutta una sua gestione dei lock che
sarebbe bene conoscere (io per primo!!!!) per sapere come meglio agire.
Aggiungi che Jet potrebbe decidere di aprire + connessioni contemporanee per
questioni prestazionali. Questo č un comportamento non trasparente, nel senso
che non lo sai se e quando lo fa.....Possibili soluzioni: usi ADO e non DAO.
Cosě controlli tutto: connessioni, livello di isolamento.....Confezioni una
query pass-through che viene eseguita lato server SENZA elaborazioni da parte
di jet. Usi le stored-procedure...che sarebbe di gran lunga la soluzione
migliore (atomicitŕ garantita, zero traffico di rete, gestione completamente
delegata al server.....). Di solito č sufficente ripensare le procedure per
non cadere in questi casi.....l'upgrade al completo client-server č
chiaramente la soluzione ideale IMHO
--
> I timeout succedono essenzialmente per 2 motivi: o l'operazione è
> titanica (allora basta allungare il timeout o ripensare la procedura) oppure
> ci sono dei lock nel mezzo.
tabelle piccole (circa 1000 record) e update o insert in record
singoli
> query pass-through che viene eseguita lato server SENZA elaborazioni da parte
> di jet.
ho convertito tutte le query "normali" in query pass-through:
l'errore si ripresenta ugualmente anche se con minor frequenza
Se imposto il timeout = 0 ?
Può essere utile?
--
Daniele
Rispondere scartando OneEDP, spam e 32
è quello che stavo cercando di capire/fare ...
esiste un strumento di analisi più appropriato?