Foros del Web » Programando para Internet » ASP Clásico »

Problema campo text Sql-server

Estas en el tema de Problema campo text Sql-server en el foro de ASP Clásico en Foros del Web. Jeje, casualidad he leido un post reciente parecido pero con access. Bueno, al grano. Tengo en la base de datos un campo text. Introduzco los ...
  #1 (permalink)  
Antiguo 09/01/2009, 05:09
 
Fecha de Ingreso: agosto-2006
Mensajes: 191
Antigüedad: 17 años, 10 meses
Puntos: 3
Problema campo text Sql-server

Jeje, casualidad he leido un post reciente parecido pero con access. Bueno, al grano.

Tengo en la base de datos un campo text. Introduzco los datos mediante un procedimiento almacenado, en el cual tambien utilizo una variable text. Pero me sigue dando problemas al insertar mas de 8064 caracteres (creo que es esa la cantidad).

Cargo la variable del procedimiento almacenado de la siguiente manera:

cmdModAdd.Parameters.Append cmdModAdd.CreateParameter("@Contenido", adLongVarChar, adParamInput, longitud_texto, Contenido)

donde "Const adLongVarChar = 201"

Espero haberme expicado bien y puedan enterdeme...

Gracias por todo
__________________
El mejor consejo lo da la experiencia, aunque este siempre llega tarde.
Cacharreando con Joomla
  #2 (permalink)  
Antiguo 09/01/2009, 05:33
Avatar de Muzztein  
Fecha de Ingreso: agosto-2002
Ubicación: Hangar 18
Mensajes: 1.703
Antigüedad: 21 años, 9 meses
Puntos: 16
Respuesta: Problema campo text Sql-server

Segun mi poca experiencia, eso se debe a que SQL server es solo capaz de insertar una cierta cantidad de caracteres a la vez cuando se suman todos los campos del registro.

Cuando esto ocurre, no te queda otra que hacerlo en dos tandas.
Osea; Primero haces el insert del registro con los datos que te alcancen y luego haces un update sobre este para colocar los datos restantes.

Para no tener que usar dos instrucciones distintas, te recomiendo usar un UPSERT (http://en.wikipedia.org/wiki/Upsert)

Si tienes SQL server 2005, la instruccion ya viene por defecto, si tienes SQL SERVER 2000 deberias hacer algo asi:

Código PHP:
CREATE PROCEDURE IWS_OWN.XPA_SET_CLSS_OB98_NODO
@ID_OBJETO DMN_CODIGOS
@
VERSION_OBJETO DMN_CODIGOS
@
CLASE_OBJETO DMN_CODIGOS
@
CREADOR_OBJETO DMN_CODIGOS
@
ESTADO_OBJETO DMN_CODIGOS
@
ORDEN_NODO DMN_NUMEROS,
@
NIVEL_NODO DMN_NUMEROS,
@
METODO_NODO DMN_CODIGOS,
@
NOMBRE_NODO DMN_CODIGOS,
@
AGRUPADOR_NODO DMN_CODIGOS,
@
PADRE_NODO DMN_CODIGOS
AS 
BEGIN TRANSACTION
UPDATE IWS_OWN
.OB98
SET 
OB98_CDG_VER
ISNULL(@VERSION_OBJETO,OB98_CDG_VER), 
STTS_CDG_ID ISNULL(@ESTADO_OBJETO,STTS_CDG_ID), 
OB98_NMR_01ISNULL(@ORDEN_NODO,OB98_NMR_01),
OB98_NMR_02ISNULL(@NIVEL_NODO,OB98_NMR_02),
OB98_CDG_01ISNULL(@METODO_NODO,OB98_CDG_01),
OB98_CDG_02ISNULL(@NOMBRE_NODO,OB98_CDG_02),
OB98_CDG_04ISNULL(@AGRUPADOR_NODO,OB98_CDG_04),
OB98_CDG_05ISNULL(@PADRE_NODO,OB98_CDG_05)
WHERE OB98_CDG_ID = @ID_OBJETO 
AND OB98_CDG_ID '0'

IF @@ROWCOUNT 
INSERT INTO IWS_OWN
.OB98(
OB98_CDG_ID,
OB98_CDG_VER,
CLSS_CDG_ID,
PRSN_CDG_ID,
STTS_CDG_ID,
OB98_NMR_01,
OB98_NMR_02,
OB98_CDG_01,
OB98_CDG_02,
OB98_CDG_04,
OB98_CDG_05
)VALUES(
@
ID_OBJETO,
@
VERSION_OBJETO,
@
CLASE_OBJETO,
@
CREADOR_OBJETO,
@
ESTADO_OBJETO,
@
ORDEN_NODO,
@
NIVEL_NODO,
@
METODO_NODO,
@
NOMBRE_NODO,
@
AGRUPADOR_NODO,
@
PADRE_NODO)
COMMIT

GO 


tb podrias hacer que en el mismo SP se ejecute dos veces la instruccion.

Pero lo que queda claro es que en una sola insercion no se puede hacer
  #3 (permalink)  
Antiguo 09/01/2009, 16:46
Avatar de u_goldman
Moderador
 
Fecha de Ingreso: enero-2002
Mensajes: 8.031
Antigüedad: 22 años, 5 meses
Puntos: 98
Respuesta: Problema campo text Sql-server

Además de lo que dice Muzztein, trata envíandole un tamaño enorme como parámetro:

Código:
cmdModAdd.Parameters.Append cmdModAdd.CreateParameter("@Contenido", adLongVarChar, adParamInput, 1000000, Contenido)
Saludos
__________________
"El hombre que ha empezado a vivir seriamente por dentro, empieza a vivir más sencillamente por fuera."
-- Ernest Hemingway
  #4 (permalink)  
Antiguo 10/01/2009, 04:51
 
Fecha de Ingreso: agosto-2006
Mensajes: 191
Antigüedad: 17 años, 10 meses
Puntos: 3
Respuesta: Problema campo text Sql-server

Ok, gracias a ambos por sus respuestas. Aunque el asunto tendrá que esperar hasta el lunes ;)

Saludos
__________________
El mejor consejo lo da la experiencia, aunque este siempre llega tarde.
Cacharreando con Joomla
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 20:43.