Extraído de MSDN:
Las aplicaciones que usan los controladores ODBC de SQL Server de SQL Server versión 6.5 o anterior sólo admiten un máximo de 255 bytes de datos de caracteres. Si estas aplicaciones intentan recuperar parámetros de caracteres de SQL Server versión 7.0 o posterior, o bien columnas de conjuntos de resultados que contengan más de 255 bytes de datos, los datos de caracteres se truncarán a 255 bytes.
Ahora bien, recalco lo que he dicho al respecto de string vs widestring porque parece que no se me tomó en cuenta:
Hola,
Que yo sepa, el tipo de dato string de la era de Pascal almacenaba hasta 255 caracteres. En Delphi, al menos en la versión 6 en adelante, el tipo string es un alias de un long-string (AnsiString) que no posee limitante a cierta cantidad de caracteres, sino que responde al límite máximo de memoria que puede destinar el SO: 2GB (en 32bits, al menos).
Intuyo que el problema pasa más por una cuestión de unicode , que justamente para eso es que existe WideString, que no es más que un ANSIString extendido para almacenar carácteres de 16-bits (los carácteres ANSI son de 8-bits). Y nuevamente, la limitante está dada por los 2GB.
Saludos,
Si dentro del campo se almacenan carácteres unicode obviamente será necesario pasar a WideString, en otro caso bastará con el simple string que repito y sostengo: NO ESTÁ LIMITADO A 255 CARACTERES. ESO ERA EN PASCAL.
Y si no me creen lean la ayuda por Dios.
Saludos,