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,