La columna de texto de SQL Server afecta los resultados devueltos a ASP clásico
Usando asp clásico, estoy tratando de consultar una base de datos de SQL Server así:
strSQL = "select column_1, column_2, column_3, column_4 from someview " &_
"where RecordNo=" & i
set rs=conn.Execute(strSQL)
if not rs.eof then
A = rs("column_1")
B = rs("column_2")
C = rs("column_3")
D = rs("column_4")
end if
Column_3 es un tipo NText, las otras columnas son varchar o int (a veces pueden devolverse más de 4 columnas) pero la consulta solo devuelve 1 registro debido a la cláusula where.
En la página ASP los resultados varían (a veces, A, B, D se rellenan, a veces no), pero todas las columnas de la vista contienen datos (cuando pregunto en el servidor SQL, veo los resultados esperados, todas las columnas contienen datos). Si elimino column_3, que es NText del strSQL, todo funciona bien.
He visto este comportamiento en un par de otras páginas en el pasado. Si modifico el ASP para obtener column_3 por separado:
strSQL = "select column_3 from someview where RecordNo=" & i
Los datos de NText se devuelven correctamente.
¿Hay una longitud de registro máxima para un conjunto de registros de SQL Server devuelto a ASP clásico? Aparte de dividir el NTEXT en una consulta separada, ¿hay algo más que pueda hacer?
EDITAR: Solo se me ocurrió intentar cambiar la cadena de conexión, inspirada en estocomenta sobre un problema similar - la conexión es a través del controlador ODBC de SQL Server (Driver = {SQL Server};).