Estoy ingresando información de error en una tabla ErrorLog en mi base de datos. Tengo una clase de utilidad para hacer esto:saltos de línea perdidos en el servidor sql
ErrorHandler.Error("Something has broken!!\n\nDescription");
Esto funciona bien. Sin embargo, cuando intento acceder a esta tabla, los saltos de línea ya no parecen estar presentes.
Si SELECT
la tabla:
SELECT * from ErrorLog ORDER BY ErrorDate
No hay saltos de línea presente en el registro. Esto es algo esperado, ya que los saltos de línea en filas de una línea romperían el formato. Sin embargo, si copio los datos, los caracteres de salto de línea se han perdido y los datos están todos en una línea.
¿Cómo obtengo saltos de línea en los datos al final de mi consulta cuando pongo los saltos de línea? No sé si la cadena ha sido despojada de saltos de línea cuando entra en la tabla o si el visor de SQL Server Management Studio ha eliminado los saltos de línea.
El tipo de datos de la columna en la que se escriben los mensajes de error es nvarchar(Max)
, si eso hace la diferencia.
EDIT: Inesperadamente, la solución de Pendri no funcionó.
He aquí un extracto de la cadena justo antes de que pase al servidor SQL:
POST /ipn/paymentResponse.ashx?installation=272&msgType=result HTTP/1.0\n\rContent-Length: 833\n\rContent-Type:
Y aquí es la misma cadena cuando extraerlo del visor de red en SQL Server Management Studio:
POST /ipn/paymentResponse.ashx?installation=272&msgType=result HTTP/1.0 Content-Length: 833 Content-Type:
El lugar donde debería estar el salto de línea ha sido espaciado doble.
¿Alguna idea?
Cuando dice saltos de línea se pierden, es que debido a que no aparecen en la vista de cuadrícula de resultados cuando se ejecuta la consulta desde SSMS? Creo que SSMS elimina los saltos de línea en los resultados, incluso cuando los copia y los pega. Podrías verificar esto lanzando a varbinary y ver si los códigos de caracteres relevantes están presentes en la representación binaria, o escribiendo una pequeña aplicación C#. –