sql >> Base de Datos >  >> RDS >> Sqlserver

Devolviendo el parámetro de salida varchar (max) del procedimiento almacenado truncado a 4000 caracteres

Su suposición sobre la cadena de conexión es acertada

Debe usar SQL Server Native Client en lugar de SQLOLEDB.1 para admitir VARCHAR(MAX) y NVARCHAR(MAX) tipos de datos, de lo contrario, se truncarán de nuevo a sus equivalentes SQLOLEDB.

Entonces querrá usar las siguientes definiciones de parámetros

'For varchar(max) OUTPUT use;
Call cmd.Parameters.Append(cmd.CreateParameter("@detail", adLongVarChar, adParamOutput, -1, strDetail))

'For nvarchar(max) OUTPUT use;
Call cmd.Parameters.Append(cmd.CreateParameter("@detail", adLongVarWChar, adParamOutput, -1, strDetail))

'** Constants **
' adLongVarChar = 201
' adLongVarWChar = 203
' adParamOutput = 2