Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

159
Views
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 answers
Answer question

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!