2009-03-04 7 views

Respuesta

5

Desde la página de PHP, el problema parece ser el controlador de base de datos subyacente en las plataformas de Windows. Varchar solo puede devolver < 255 caracteres. La solución alternativa es convertir el varchar en texto dentro de la sentencia sql SELECT.

+0

La conversión a VARCHAR (MAX) también parece funcionar si necesita utilizar la palabra clave DISTINCT en su consulta. –

-1

La causa en realidad puede ser MySQL en lugar de PHP ... Antes de MySQL 5.0.3 MySQL solo podía almacenar 255 caracteres en un VARCHAR firmado. Este límite se ha aumentado a 65535 en versiones posteriores.

+0

No MySQL, MS SQL. No soy el que está desarrollando esto, mi compañero de equipo sí. Solo estoy haciendo la pregunta. –

+0

Vaya, lo siento, mi error. –

0

No estoy seguro sobre el casting, cambiaría los tipos de campo relevantes a Text en lugar de Varchar.

+0

Eso es lo que terminamos haciendo, pero no estábamos seguros de si eso iba a romper la funcionalidad existente. No fue así. Pero ese es el trabajo en caso de que realmente no pueda cambiar el tipo de campo con el que está trabajando. –

4

lanzar una amplia VARCHAR de texto en MS SQL:

SELECT convert(text,myWideField) FROM myTable 

Dónde myWideField es la columna que se está truncado y myTable es así ... mi mesa.

El resultado se convertirá en TEXTO con más de 256 caracteres.

d.

+0

Si desea utilizar el nombre original de columna, deberá agregar 'AS'. Por ejemplo, 'SELECT convert (text, myWideField) AS myWideField FROM myTable'. –

1

He intentado cambiar los valores de las variables en el php.ini:

mssql.textlimit = 2147483647 
mssql.textsize = 2147483647 

Pero no funciona ...

he cambiado el tipo de mi columna varchar (2000) a varchar (max) ¡Esto funcionó para mí!

3

Intente cambiar la configuración de freetds.

En el servidor, editar /etc/freetds.conf

Cambio:

tds version = 4.2 

a:

tds version = 8.0 

Ver más en Notas de usuarios, Mssql Functions Reference.

+0

Esto definitivamente hace una diferencia positiva, sin cambios de código, lo que la convierte en una mejor solución en mi opinión. – jschrab

+0

You beauty - la versión 7.0 funcionó para mí, ¡comparte la palabra a todos los que sufren este infierno de sistema heredado! – puppyFlo

Cuestiones relacionadas