Errore Item cannot be found in the collection - Errori ASP

Descrizione

Si sta cercando di eseguire un'operazione su un campo non presente nel recordset corrente.

Messaggio d'Errore

Messaggio in Italiano

ADODB.Recordset '0x800A0CC1'
Impossibile trovare l'oggetto nell'insieme corrispondente al nome o al numero richiesto.
/percorso/file, line 10

Messaggio in Inglese

ADODB.Recordset error '800a0cc1'
Item cannot be found in the collection corresponding to the requested name or ordinal.
/path/to/file.asp, line 10

Errore Item cannot be found in the collection

Per eseguire delle operazioni tra pagine ASP e database, è necessario definire come prima cosa una connessione, in seguito un recordset ed infine eseguire una query.
La query ha lo scopo di interrogare il database e fornire, mediante il recordset, il risultato di questa operazione nonché i dati contenuti nel database che soddisfano le richieste.

Questo errore è causato da una situazione in cui si tenta di accedere ad un campo di un database non presente all'interno del recordset.

Come risolvere il problema

I motivi alla base di questo errore possono essere principalmente due:

  • Non esiste un campo con tale nome all'interno nel database.
  • Il campo esiste ma non è stato incluso all'interno del recordset corrente.

Nel primo caso il problema è lampante. Immaginando di aver definito un recordset chiamato objRs, se si tenta di richiamare objRs("campo3") che non è presente all'interno del database, allora di fatto ASP non potrà completare l'istruzione richiesta.

Il secondo caso si verifica invece quando nella query è stato limitato il numero dei campi restituiti.
La query seguente, una volta eseguita, restituirà i valori associati ai 3 campi dichiarati nella prima parte della SELECT, ammesso che siano presenti dei record all'interno della tabella indicata.

strSQL = "SELECT campo1, campo2, campo3 FROM tabella"

Ammettendo che la tabella contenga anche un campo chiamato campo4, una qualsiasi esecuzione che includa objRs("campo4") produrrà comunque l'errore sopra citato, poiché di fatto il recordset non è stato istruito per restituire tale campo.

Prestate dunque attenzione alla presenza del campo richiesto all'interno della tabella e verificate sempre che i campi utilizzati siano stati richiesti nella query in esecuzione.


ASP.weppos.com e ASP.weppos.it sono di proprietà di Simone Carletti.
Scopri il mio sito o visita il mio Simone Carletti's profile on LinkedIn