Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

160
Vistas
No se devuelve ningún conjunto de registros si una de las columnas tiene datos de más de 1024 caracteres Mysql 8.0 y Classic ASP

Estoy usando el conector MySQL ODBC 8.19 de 32 bits con el servidor Classic asp MYSQL es 8. CHARACTER es latin1 y COLLATE es latin1_swedish_ci La cadena de conexión tiene OPCIÓN = 3 El motor de almacenamiento es InnoDB

A continuación se muestra la estructura de la tabla.

 CREATE TABLE Data_temp ( ROWGUID varchar(36) default (UUID()) NOT NULL , col_desc varchar(10) NOT NULL , History varchar (4000), PRIMARY KEY Data_temp_P_KEY(ROWGUID) ) ;

Usando el comando Adodb, ejecute la siguiente consulta

 Select * from Data_temp WHERE col_desc=?

y el parámetro es proporcionado por el parámetro de creación de adodb.

El resultado se devuelve en el conjunto de registros adodb como

 set recordset=command.execute method

el conjunto de registros no se devuelve si la columna Historial tiene datos de más de 1024 caracteres

Si se ejecuta la misma consulta en los siguientes escenarios como ,

  1.  Select col_desc,Rowguid from Data_temp WHERE col_desc=?

    es decir, la lista de columnas no contiene esa columna de datos grande, entonces se devuelve el conjunto de registros

  2.  Select col_desc,Rowguid,substring(history,1,1024) from Data_temp WHERE col_desc=?

    también funciona

  3. Al hacer una columna como tipo de datos TEXTO en lugar de varchar

¿Cuál podría ser la razón?

¿Hay algún límite para devolver los datos de la columna? Una observación más en lugar de usar una consulta parametrizada si la consulta se ejecuta directamente con valor en la consulta misma

 Select * from Data_temp WHERE Col_Desc='aa'

sin parámetro, se devuelve el conjunto de registros

Gracias por adelantado

over 4 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

Echa un vistazo a estos problemas similares:

https://bugs.mysql.com/bug.php?id=92078
https://bugs.mysql.com/bug.php?id=93895
https://bugs.mysql.com/bug.php?id=94545

y la recomendación oficial:

Fuente: https://dev.mysql.com/doc/relnotes/connector-odbc/en/news-8-0-16.html

Se emitió una excepción al obtener el contenido de un registro BLOB/TEXT después de ejecutar una instrucción preparada en el lado del servidor con un parámetro vinculado.

La solución es no usar parámetros ni especificar NO_SSPS=1 en la cadena de conexión; esto permite que el controlador obtenga los datos.

En Connector/ODBC 5.2 y posteriores, de forma predeterminada, se utilizan declaraciones preparadas del lado del servidor. Cuando esta opción se establece en un valor distinto de cero, las declaraciones preparadas se emulan en el lado del cliente, que es el mismo comportamiento que en 5.1 y 3.51. Añadido en 5.2.0.

La solución alternativa recomendada es especificar NO_SSPS=1 en la cadena de conexión y confirmo que funciona.

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda