Metti un po' di Debug.Assert sparsi qua e là. Si tratta di uno statement in cui puoi esprimere una condizione e che solleva una exception nel caso in cui questa condizione non sia verificata, ed è molto utile per scovare bug subdoli tipo questo.

Es. di utilizzo con le due righe che hai postato:
Dato che sono stra-sicuro, o comunque mi aspetto che il primo statement mi restituisca un datareader e non null, allora scrivo una roba del genere:
dr2 = MySQL_Requettes.MyODBCReader(strSQL2, var_st.ODBCBase, var_st.ODBCServer, var_st.ODBCPwd, var_st.ODBCUser)
Debug.Assert(not dr2 is nothing, "Il DataReader è risultato null")
WHILE dr2.Read()
....
In questo caso se MySQL_Requettes.MyODBCReader restituisce null, ti viene sollevato un errore su quella assertion e ti rendi subito conto di cosa c'è che non va.

Poi ho un po' indagato su questo MySQL_Requettes (che non avevo mai sentito) e ho scovato questo:
http://www.codeproject.com/KB/database/mysqlconnexion.aspx
Domanda: l'hai preso da lì? Perchè il codice postato in quell'articolo ha una *PESSIMA* gestione delle eccezioni, visto che non le rilancia. Non vorrei ci fosse qualcosa di simile nel metodo che invochi tu e che quindi, in corrispondenza di un qualsiasi errore del db, venga fatta una Response.Write del messaggio magari restituendo null.

Let me know.
Ciao.
allora ho provato ad inserire la stringa che mi hai suggerito, l'ho piazzata in tutti i punti della pagina di prova che interagiscono con il db!

però ottengo sempre lo stesso errore


dr2 = MySQL_Requettes.MyODBCReader(strSQL2, var_st.ODBCBase, var_st.ODBCServer, var_st.ODBCPwd, var_st.ODBCUser)
Debug.Assert(not dr2 is nothing, "Il DataReader è risultato null")
WHILE dr2.Read()

la riga che mi stampa l'errore è sempre questa
WHILE dr2.Read()

intendo dire che il debug.assert non stampa quello che io ci ho scritto dentro

MySQL_Requettes non ricordo dove l'ho recuperato è passato parecchio tempo ed è sempre andato egragiamente solo con il cambio di server si sono manifestati questi comportamenti anomali

ma la cosa che non capisco è perchè va e viene
secondo te da cosa può dipendere il fatto che aggiornando la pagina tutto funziona bene ?!

GustoInRete La Rete del Gusto
Immobili360 Annunci Immobiliari
dr2 dove la dichiari? non è shared, vero?
m.
dr2 viene dichiarato immediatamente prima di

dr2 = MySQL_Requettes.MyODBCReader(strSQL2, var_st.ODBCBase, var_st.ODBCServer, var_st.ODBCPwd, var_st.ODBCUser)

quindi ho

dim dr2 as ODBCDataReader
dr2 = MySQL_Requettes.MyODBCReader(strSQL2, var_st.ODBCBase, var_st.ODBCServer, var_st.ODBCPwd, var_st.ODBCUser)


confermo NON è shared

GustoInRete La Rete del Gusto
Immobili360 Annunci Immobiliari
ho cercato in giro per la rete tutta la notte ma davvero non è spiegabile quell'errore !
la cosa più strana di tutti è il fatto che non sia un errore diciamo cosi FISSO ma che va e viene e questo mi fa pensare quasi che sia come se i dati memorizzati nel global.asax in qualche modo non vengano "caricati"

GustoInRete La Rete del Gusto
Immobili360 Annunci Immobiliari
Ciao,

ho commesso un'imprecisione: Debug.Assert in un'applicazione web non solleva un'eccezione. Dovresti creare un listener o al limite fai un controllo con una if. Ma domanda... hai visto internamente come si comporta il componente che utilizzi per creare il datareader? ti ho già messo in guardia circa la sua pessima gestione delle eccezioni, occhio che basta un database occupato e che provochi un timeout sulla tua richiesta perchè questa ti venga completamente mascherata dalla nullrefexception che ricevi.

Invece di cercare tutta la notte  verifica come si comporta internamente il componente che hai scelto di utilizzare.

m.
43 messaggi dal 03 luglio 2006
Ciao,

ho avuto anch'io in passato dei problemi con i null random con i connettori per MySql via ODBC.

Ho risolto cambiando connettore http://dev.mysql.com/downloads/connector/net/1.0.html

Sem Tamburella

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.