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

Fallo con el tipo de dato MEMO de access y ASP

Estas en el tema de Fallo con el tipo de dato MEMO de access y ASP en el foro de ASP Clásico en Foros del Web. Desde un pequeño gestor que he desarrollado en ASP con base de datos access me limita alta y modificación de un registro cuando intento meter ...
  #1 (permalink)  
Antiguo 08/01/2009, 09:53
 
Fecha de Ingreso: enero-2009
Mensajes: 4
Antigüedad: 15 años, 5 meses
Puntos: 0
Fallo con el tipo de dato MEMO de access y ASP

Desde un pequeño gestor que he desarrollado en ASP con base de datos access me limita alta y modificación de un registro cuando intento meter más de 1500 caracteres. Sabiendo que el campo tiene el tipo de dato MEMO que supuestamente soporta hasta 64.000.

Alguien puede saber que pasa?...

Cuando pongo menos de 1500 caracteres, me realiza tanto la función de guardar como de modificar.

Gracias
  #2 (permalink)  
Antiguo 08/01/2009, 18:00
Avatar de Myakire
Colaborador
 
Fecha de Ingreso: enero-2002
Ubicación: Centro de la república
Mensajes: 8.849
Antigüedad: 22 años, 4 meses
Puntos: 146
Respuesta: Fallo con el tipo de dato MEMO de access y ASP

uff!, hacía ya mucho tiempo que nadie preguntaba nada respecto a Access ...

Ya probaste en concatenar en tramos de 1500 el contenido que quieres meter a ese campo?

Ya hace años que no manejo Access pero creo recordar que por ahí iba el asunto
  #3 (permalink)  
Antiguo 08/01/2009, 18:37
Avatar de u_goldman
Moderador
 
Fecha de Ingreso: enero-2002
Mensajes: 8.031
Antigüedad: 22 años, 5 meses
Puntos: 98
Respuesta: Fallo con el tipo de dato MEMO de access y ASP

Además de lo que dice Myakire () ¿cómo envías esos datos?
__________________
"El hombre que ha empezado a vivir seriamente por dentro, empieza a vivir más sencillamente por fuera."
-- Ernest Hemingway
  #4 (permalink)  
Antiguo 09/01/2009, 13:42
Avatar de DonPampero  
Fecha de Ingreso: enero-2009
Mensajes: 27
Antigüedad: 15 años, 5 meses
Puntos: 0
Respuesta: Fallo con el tipo de dato MEMO de access y ASP

es un problema de codigo, el campo memo tiene un largo de caracteres infinito...


Saludos...
  #5 (permalink)  
Antiguo 09/01/2009, 14:12
Avatar de Myakire
Colaborador
 
Fecha de Ingreso: enero-2002
Ubicación: Centro de la república
Mensajes: 8.849
Antigüedad: 22 años, 4 meses
Puntos: 146
Respuesta: Fallo con el tipo de dato MEMO de access y ASP

Cita:
Iniciado por DonPampero Ver Mensaje
es un problema de codigo, el campo memo tiene un largo de caracteres infinito ...


Saludos...


No tengo la más remota idea de donde puedes sacar semejante afirmación, pero definitivamente es muy aventurado o incluso irresponsable hacer ese comentario en un foro, sin saberlo a ciencia cierta dado que alguien sin conocimiento se lo pudiera tomar como cierto

No existe el almacenamiento infinito, todos los motores de bases de datos tienen definidos sus límites por cada tipo de dato, y en el caso de los Memo de access depende de la versión misma:

Cita:
Memo field specifications

Memo fields in Office Access 2007 can store up to 1 gigabyte of characters, or 2 gigabytes of storage (2 bytes per character), of which you can display 65,535 characters in a control on a form or report. In addition, you can now apply rich-text formatting to the data in a Memo field. For example, you can set colors, change fonts, and make data bold or italic.
http://office.microsoft.com/en-us/ac...963131033.aspx

Obviamente las versiones anteriores soportan mucho menos, creo que son 64KB para Access 2000, de la misma forma que Excel 2003 solo soportaba poco más de 64 mil lineas y el 2007 casí el millón.

Ahora, por que se truncan, puede ser por diversos motivos, uno de ellos puede ser del lado de lo lógica del negocio, pero definitivamente otro puede ser por cuestiones de la capa de datos, recuerdo que en Access el problema que alguna vez vi (repito, hace varios años que no manejor access) era respecto al proveedor OleDb que usé.

Aquí hay una lectura que he encontrado que habla al respecto: http://allenbrowne.com/ser-63.html

Saludos
  #6 (permalink)  
Antiguo 09/01/2009, 16:39
Avatar de u_goldman
Moderador
 
Fecha de Ingreso: enero-2002
Mensajes: 8.031
Antigüedad: 22 años, 5 meses
Puntos: 98
Respuesta: Fallo con el tipo de dato MEMO de access y ASP

Cita:
Iniciado por DonPampero Ver Mensaje
es un problema de codigo, el campo memo tiene un largo de caracteres infinito...


Saludos...
Lo preguntaba pues se me ocurrió que quizás envías esos datos por get, en cuyo caso tendrás un límite inferior a envíarlos por post...pero a lo mejor puede ser también que tu aplicación encontró el límite del infinito.

Saludos
__________________
"El hombre que ha empezado a vivir seriamente por dentro, empieza a vivir más sencillamente por fuera."
-- Ernest Hemingway
  #7 (permalink)  
Antiguo 11/01/2009, 09:18
 
Fecha de Ingreso: noviembre-2003
Ubicación: México, D.F.
Mensajes: 76
Antigüedad: 20 años, 6 meses
Puntos: 0
Respuesta: Fallo con el tipo de dato MEMO de access y ASP

Pienso que deberías desplegar tu query para saber si el problema no se encuentra en la información que deseas insertar. Yo trabajé con este tipo de datos por mucho tiempo con información muy grande y no tuve ese problema por tamaño, sin embargo tuve problemas cuando dentro de mi información llegaba a existir un apóstrofe, por ejemplo.

Suerte
__________________
http://www.musicgalerias.com
  #8 (permalink)  
Antiguo 12/01/2009, 06:16
 
Fecha de Ingreso: enero-2009
Mensajes: 4
Antigüedad: 15 años, 5 meses
Puntos: 0
Respuesta: Fallo con el tipo de dato MEMO de access y ASP

Gracias a todos por la respuesta...

El metodo que utilizo es el POST a través del formulario...y la base de datos access esta conectada al ASP por medio de DNS y no directo al archivo como muchas veces se hace.

Lo del caracter ya lo he probado, no existe conexión del error con el tema de encontrar un caracter en la cadena de datos enviados...Y en efecto...las limitaciones de un campo de tipo MEMO es de 64.000 caracteres.

lo raro es que si lo meto a mano desde el access me lo permite, el problema viene si esto lo hago a través del gestor...nunnca me habia pasado.

Probaré la forma que me dices de concatenar en dos partes el texto haciendo un contador de ellos...pero me resulta dificil imaginar que esta es la solución.

Gracias igualmente y seguiré investigando...
  #9 (permalink)  
Antiguo 12/01/2009, 11:05
Avatar de u_goldman
Moderador
 
Fecha de Ingreso: enero-2002
Mensajes: 8.031
Antigüedad: 22 años, 5 meses
Puntos: 98
Respuesta: Fallo con el tipo de dato MEMO de access y ASP

Que raro, deberías poner tu código y el texto colgarlo de algún lugar, a lo mejor entre todos encontramos el problema.

Saludos
__________________
"El hombre que ha empezado a vivir seriamente por dentro, empieza a vivir más sencillamente por fuera."
-- Ernest Hemingway
  #10 (permalink)  
Antiguo 12/01/2009, 11:11
 
Fecha de Ingreso: enero-2009
Mensajes: 4
Antigüedad: 15 años, 5 meses
Puntos: 0
Respuesta: Fallo con el tipo de dato MEMO de access y ASP

u_goldman

Este es el código que inserta en la base de datos, no es nada del otro mundo...pero por las dudas te lo dejo:

----------------------------------------------------------------------

<%@LANGUAGE="VBSCRIPT" CODEPAGE="1252"%>
<%

dim nombre, email, cuerpo, imagen, seleccion, idioma, posicion, strDSN

nombre = "'" & request.Form("nombre") & "'"
email = "'" & request.Form("email") & "'"
cuerpo = "'" & request.Form("cuerpo") & "'"
posicion = request.Form("posicion")
seleccion = "'" & request.Form("seleccion") & "'"


strDSN = "dbtlex.com.abogados"

if request.Form("imagen") = "" then
imagen = "'none'"
else
imagen = "'" & request.Form("imagen") & "'"
end if

on error resume next
set con = server.createobject("adodb.connection")
con.open strDSN

if request.Form("idioma") = "1" then
sql="insert into abogados_en (nombre, email, cuerpo, imagen, seleccion, posicion) values(" & nombre & "," & email & "," & cuerpo & "," & imagen & "," & seleccion & "," & posicion & ")"
set resp = con.execute(sql)
else
sql="insert into abogados_es (nombre, email, cuerpo, imagen, seleccion, posicion) values(" & nombre & "," & email & "," & cuerpo & "," & imagen & "," & seleccion & "," & posicion & ")"
set resp = con.execute(sql)
end if

if err.description<>"" then
response.Redirect "Error: " & err.description
else
end if

con.close
set resp= nothing

response.Redirect "panelControl_abogados.asp?idioma=" & request.Form("idioma") & "&mensaje=<b>Se agregó un nuevo abogado</b><br><br>"

%>

----------------------------------------------------------

Los parámetros pasan bien del formulario a este código...

Saludos,

Oscar
  #11 (permalink)  
Antiguo 12/01/2009, 13:14
Avatar de u_goldman
Moderador
 
Fecha de Ingreso: enero-2002
Mensajes: 8.031
Antigüedad: 22 años, 5 meses
Puntos: 98
Respuesta: Fallo con el tipo de dato MEMO de access y ASP

En ese caso yo me uno a la teoría de que es tu contenido el que está de alguna manera truncando tu sentencia SQL:

Código:
nombre = "'" & request.Form("nombre") & "'"
email = "'" & request.Form("email") & "'"
cuerpo = "'" & replace(request.Form("cuerpo"), "'", "''")  & "'"
posicion = request.Form("posicion") 
seleccion = "'" & request.Form("seleccion") & "'"
La otra es que proveas tambien el texto que estás intentando insertar.

Saludos
__________________
"El hombre que ha empezado a vivir seriamente por dentro, empieza a vivir más sencillamente por fuera."
-- Ernest Hemingway
  #12 (permalink)  
Antiguo 12/01/2009, 14:47
 
Fecha de Ingreso: noviembre-2003
Ubicación: México, D.F.
Mensajes: 76
Antigüedad: 20 años, 6 meses
Puntos: 0
Respuesta: Fallo con el tipo de dato MEMO de access y ASP

Me refiero a lo que viene de tu forma: replace(request.Form("cuerpo") o intenta con cuerpo = "'" & replace(request.Form("cuerpo"), "'", "'''") & "'"
__________________
http://www.musicgalerias.com
  #13 (permalink)  
Antiguo 14/01/2009, 10:49
 
Fecha de Ingreso: enero-2009
Mensajes: 4
Antigüedad: 15 años, 5 meses
Puntos: 0
Respuesta: Fallo con el tipo de dato MEMO de access y ASP

Lo intentaré con esto último y gracias a todos...
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 22:11.