Pregunta

Tengo un problema que acaba de comenzar a suceder después de que vuelve a instalar el servidor de mi página web.

En el pasado lo que podía hacer hacer esto:

Código:

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

comprobar si no está vacío o cualquier otra cosa

Código:

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

y si es que podía hacer nada con ella (como lo muestra es el valor)

Código:

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

Ahora no puedo hacer esto, el "si" de prueba no funciona con el "msgSet (" scroller_name ")" y tengo que redifine primero en otra variable

Código:

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

entonces y sólo entonces puedo hacer pruebas en él ...

Código:

<% if scrollername <> "" then %>

y mostrarla también.

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

Me gustaría volver la opción de realizar las operaciones sobre las variables de registros MySQL como b4 ....

¿Alguien ha encontrado con este problema? lo que ha cambiado, es un caya Falty MySQL o algo?

Gracias chicos.

No hay solución correcta

Otros consejos

Hay dos cosas que debe hacer para asegurarse de que tiene un valor en un campo:

  1. Asegúrese de que el conjunto de registros no está vacío.
  2. Asegúrese de que el campo en el actual no tiene un valor NULL.

No estoy lejos de cualquier cambio en los conductores que han afectado a su código, pero supongo que la diferencia es que la cadena de realidad devuelve una cadena vacía (lo que equivaldría a "") y el conjunto de registros devuelve un valor NULL adecuado ( que no es igual "")

Más detalles:

mi ODBC es:. MySQL 5.1 controlador

mi versión de MySQL: MySQL 5.0

mi cadena connetion es:

He tratado de eliminar el hebreo STMT = CONJUNTO DE CARACTERES; OPTION = 3; parte - no hay cambio ...

El problema es el uso de las variables de la derecha desde el PP, que podría ser cualquier tipo de variable (texto, fecha, int) ...

incluso

día (msgSet ( "scroller_date")) ha dejado de funcionar ...

y TH divertido ... esto es todo utiliza para funcionar bien .. b4 la instalación

Ves algo fuera de lo normal? tal vez un mysql / ODBC versión diferente?

De acuerdo ...

  1. el nuevo ODBC es 5,1: situado en los servidores MySQL.com (enlace: http://dev.mysql.com/downloads/connector/odbc/5.1.html )

  2. Sí. He reinstalado el servidor de ventanas (2003) OS de nuevo en mi servidor web y el servidor instalado MySQL 5.0 en él.

  3. Hasta ahora no recibo un error, simplemente no muestra ningún datos cuando se utiliza el método estaba explicando abourt, y tengo que usar las variables adicionales como he explicado.

¿Necesita más detalles, por favor?

Podría ser una mejor manera de probar que comprobar para ver si el conjunto de registros está vacía de una manera alternativa.

I generalmente utilizo:

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

Esto podría ayudar de alguna manera a depurarlo.

Ah, y algo que podría ser importante. No puedo recordar cuál fue la causa, pero a veces he encontrado que al hacer referencia a los campos de MySQL a través de un conjunto de registros, que fue siempre menor caso, independientemente de lo que los campos están en la definición de base de datos o una consulta.

Si esto no causa el script falle, puede que intente averiguar lo que ha sido devuelto por el conjunto de registros.

Dim i

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

Buena suerte

Nunca había visto ese problema antes, ni estoy seguro de por qué (más información sobre el error sería de gran ayuda) - pero, como una solución relativamente rápida es posible que desee emitir el tema cuando lo utiliza. Como:

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

http://www.w3schools.com/vbscript/vbscript_ref_functions.asp# conversión para más información.

Más información sobre el error que está recibiendo le ayudaría a conseguir una mejor respuesta. No hay ninguna MyODBC 5.1, por lo que la versión de los controladores MyODBC está utilizando? Por "mi ODBC es: MySQL 5.1 controlador". Significa que el conductor de MySQL 5.1 - que debería ser la versión 3.51 MyODBC

Además, por "Después de haber reinstalado el servidor de mi sitio web" ¿Quieres decir que lo ha instalado una limpia del sistema operativo del servidor? ¿O simplemente volver a instalar MySQL? ¿O algo mas? MySQL 5.1 acaba de salir 8 diciembre -? Fue esto parte de una actualización

Por último, por favor leer algunos de los comentarios a su pregunta y algunas de sus respuestas. En igualdad de condiciones, si hay alguna aclaración necesaria, editar la pregunta para añadir los detalles. No escriba una respuesta. Este no es un foro, y usted es la respuesta va a perder su contexto el momento en que algo está pasando, votó por encima de ella. También es más fácil de tomar en todo el problema si su todo en un solo lugar a diferencia de desplazamiento entre la pregunta y las diversas adiciones se hacen pasar por respuestas.

Me estoy poniendo el mismo problema ... Sólo la migración de un sitio ASP de MySQL 4 y 3.x ODBC (una versión antigua ...) a MySQL 5.1 y ODBC 5.1. Si trato de este código simple:

rs SET = conn.Execute ( "seleccionar ....") si bien no rs.eof   response.write "t1:" & rs ( "texto") y "t2
:" & rs ( "texto") y "
"   rs.MoveNext wend

como salida me sale el siguiente: t1: hola t2: T1: ¿cómo estás t2: etc ...

La segunda vez que se accede al campo no tiene ningún valor, la única manera es utilizar una variable temporal para almacenar los datos por primera vez ...

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top