Domanda

Ho un problema che ha cominciato appena accadere dopo che ho reinstallato assistente del mio sito web.

In passato ho potuto fare fare questo:

Codice:

<% 
set msgSet = conn.execute("select * from base_scroller where scroller_num = 1" 
%>

controllare se non è vuota o qualsiasi altra cosa

Codice:

<% if msgSet("scroller_name") <> "" then %>

e se è ho potuto fare qualsiasi cosa con esso (come mostrare il suo valore)

Codice:

<%= msgSet("scroller_name") %>
<% end if %>

Ora non posso fare questo, il "se" test non funziona con il "msgSet (" scroller_name ")" e devo ridefiniscono prima in un'altra variabile

Codice:

<% scrollername = msgSet("scroller_name") %>

allora e solo allora posso fare test su di esso ...

Codice:

<% if scrollername <> "" then %>

e mostrare troppo.

<%= scrollername %>
<% end if %>

Vorrei solo tornare la possibilità di fare le operazioni sulle variabili mysql recordset come b4 ....

Qualcuno ha incontrato questo problema? che cosa è cambiato, si tratta di una varsion falty mysql o qualcosa del genere?

Grazie ragazzi.

Nessuna soluzione corretta

Altri suggerimenti

Ci sono due cose che si dovrebbe fare per essere sicuri di avere un valore in un campo:

  1. Assicurati che il recordset non è vuoto.
  2. Assicurarsi che il campo nella corrente non ha un valore NULL.

Non sono lontano di qualsiasi modifica i driver che hanno interessato il codice, ma suppongo la differenza è che la stringa in realtà restituisce una stringa vuota (che sarebbe uguale "") e il recordset restituisce un valore NULL corretta ( che non è uguale "")

Maggiori dettagli:

la mia ODBC è:. Mysql conducente 5.1

la mia versione di MySQL: server MySQL 5.0

la mia stringa di arrivare al edificio è:

Ho cercato di rimuovere l'ebraico STMT = set di caratteri SET; OPTION = 3; parte - nessun cambiamento ...

Il problema è con tutte le variabili fin dal db, potrebbe essere qualsiasi tipo di variabile (testo, data, int) ...

anche

giorno (msgSet ( "scroller_date")), ora non funziona ...

e TH divertente questo è ... il tutto utilizzato per funzionare bene .. b4 l'installazione

Vedi qualcosa fuori dal comune? forse un diverso mysql / versione ODBC?

Ok ...

  1. il nuovo ODBC è 5.1: si trova sui server mysql.com (link: http://dev.mysql.com/downloads/connector/odbc/5.1.html )

  2. Sì. Ho reinstallato il server Windows (2003) del sistema operativo di nuovo sul mio webserver e MySQL server installato 5.0 su di esso.

  3. Non ricevo un errore, non è solo tornando tutti i dati quando uso il metodo stavo spiegando abourt, e devo usare le variabili aggiuntive, come ho spiegato.

Avete bisogno di più dettagli per favore?

Potrebbe essere un modo migliore per testare per verificare se il recordset è vuoto in modo alternativo.

Io generalmente uso:

On Error Goto 0

set msgSet = conn.execute("select * from base_scroller where scroller_num = 1" 

If msgSet.EOF = True And msgSet.BOF = True Then
  Response.Write "Recordset cursor was at the beginning and end of file - empty set."
  Response.End
End If

Questo potrebbe aiutare in qualche modo a debug.

Oh, e qualcosa che potrebbe essere importante. Non riesco a ricordare cosa è causato, ma a volte ho trovato che quando si fa riferimento campi MySQL tramite un set di record, è stato sempre inferiore caso, indipendentemente da ciò che i campi sono nella definizione del database o la query.

Se questo non causa lo script di fallire, magari provare scoprire ciò che è stato restituito dal set di record.

Dim i

For Each i In msgSet.Fields
  Response.Write i & "=[" & msgSet.Fields(i) & "]<br />"
Next

In bocca al lupo

Non ho mai visto questo problema prima, né sono sicuro perché (ulteriori informazioni sull'errore sarebbe utile) - ma, come una soluzione relativamente rapido si può decidere di lanciare l'oggetto quando lo si utilizza. Come:

   <%= cStr(msgSet("scroller_name")) %>

http://www.w3schools.com/vbscript/vbscript_ref_functions.asp# conversione per ulteriori informazioni.

Maggiori informazioni sulla errore hai trovato potrebbe aiutare a ottenere una risposta migliore. Non v'è alcun MyODBC 5.1, in modo che la versione dei driver MyODBC stai usando? Per "il mio ODBC è: driver MySQL 5.1". Vuoi dire il driver per MySQL 5.1 - che dovrebbe essere MyODBC versione 3.51

Inoltre, da "dopo che ho reinstallato assistente del mio sito web" Vuoi dire che hai una nuova installazione di sistema operativo server? o hai semplicemente reinstallare MySQL? O qualcos'altro? MySQL 5.1 è appena uscito 8 DIC - era questa parte di un aggiornamento

Infine, si prega di leggere alcuni dei commenti alla tua domanda e alcune delle vostre risposte. A parità di condizioni, se c'è qualche chiarimento necessario, modificare la domanda per aggiungere i dettagli. Non scrivere una risposta. Questo non è un forum, e tu sei la risposta perderà il suo contesto minuto qualcosa è up-votata sopra di esso. Anche la sua più facile da prendere in tutta la questione se il suo tutto in un unico posto in contrasto con lo scorrimento tra la domanda e le varie addendum in posa come risposte.

Sono sempre lo stesso problema ... Proprio la migrazione di un sito ASP da mysql 4 & 3.x ODBC (una vecchia versione ...) per MySQL 5.1 e ODBC 5.1. Se provo questo semplice codice:

set rs = conn.Execute ( "select ....") pur non rs.EOF   Response.Write "t1:" & rs ( "testo") & "
t2:" & rs ( "testo") e "
"   rs.MoveNext wend

come uscita ottengo il seguente: t1: ciao t2: t1: come stai t2: ecc ...

La seconda volta che accedo al campo non ha alcun valore, l'unico modo è quello di utilizzare una variabile temporanea per memorizzare i dati la prima volta ...

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top