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

Insertar texto en un campo de tipo 'memo'

Estas en el tema de Insertar texto en un campo de tipo 'memo' en el foro de ASP Clásico en Foros del Web. Hola, estoy haciendo una aplicación para publicar noticias por web mediante formularios. Conseguí hacerlo funcionar creando nuevos registros pasándole sólo 2 campos de texto. Ahora ...
  #1 (permalink)  
Antiguo 30/08/2004, 04:49
 
Fecha de Ingreso: noviembre-2003
Mensajes: 456
Antigüedad: 20 años, 7 meses
Puntos: 1
Insertar texto en un campo de tipo 'memo'

Hola,

estoy haciendo una aplicación para publicar noticias por web mediante formularios.

Conseguí hacerlo funcionar creando nuevos registros pasándole sólo 2 campos de texto. Ahora me interesa pasárselos todos, pero al ejecutar el asp, me lanza este error.

Syntax error in INSERT INTO statement

La sentencia INSERT es la misma que cuando funcionaba, sólo que le he añadido más campos.

En el formulario, tengo un campo de texto que ha de permitir mucho texto, puesto que se ha de insertar en un campo de tipo MEMO en la BBDD.

¿puede ser éste el problema? ¿las variables que se recogen ó la sintaxis de la sentecia INSERT dependen del tipo de datos?

Gracias!
  #2 (permalink)  
Antiguo 30/08/2004, 10:18
Avatar de AlZuwaga
Colaborador
 
Fecha de Ingreso: febrero-2001
Ubicación: 34.517 S, 58.500 O
Mensajes: 14.550
Antigüedad: 23 años, 3 meses
Puntos: 535
podés colocar la sentencia SQL?
__________________
...___...
  #3 (permalink)  
Antiguo 31/08/2004, 01:45
 
Fecha de Ingreso: noviembre-2003
Mensajes: 456
Antigüedad: 20 años, 7 meses
Puntos: 1
Sonrisa

Aquí está el código:


<%
Data= Request.Form("Data")
Titol=Request.Form("Titol")
Subtitol=Request.Form("Subtitol")
Text=Request.Form("text")
Font=Request.Form("font")
link1=Request.Form("link1")
link2=Request.Form("link2")
link3=Request.Form("link3")

Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "noticias_coetc"

sSQL="Insert Into mejorado (Titol,Subtitol,Data,Text,Font,Enllaç1,Enllaç2,Enl laç3) values ('" & Titol & "','" & Subtitol & "','" & Data & "','" & Text & "','" & Font & "','" & link1 & "','" & link2 & "','" & link3 & "')"

Response.Write sSQL


set RS = Conn.Execute(sSQL)
%>


Gracias, Dazuaga!
  #4 (permalink)  
Antiguo 31/08/2004, 07:39
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
sSQL="Insert Into mejorado (Titol,Subtitol,Data,Text,Font,Enllaç1,Enllaç2,Enl laç3) values ('" & Titol & "','" & Subtitol & "','" & Data & "','" & Text & "','" & Font & "','" & link1 & "','" & link2 & "','" & link3 & "')"

Estos caracteres pueden ser el problema, mmmmm, también podría ser que no todos los campos sean alfanuméricos que es como los intentas grabar.

Saludos
  #5 (permalink)  
Antiguo 31/08/2004, 10:10
Avatar de AlZuwaga
Colaborador
 
Fecha de Ingreso: febrero-2001
Ubicación: 34.517 S, 58.500 O
Mensajes: 14.550
Antigüedad: 23 años, 3 meses
Puntos: 535
tambien puede ocurrir que algunos de los datos en los request.form contengan apóstrofes, reventando el insert
__________________
...___...
  #6 (permalink)  
Antiguo 01/09/2004, 01:37
 
Fecha de Ingreso: noviembre-2003
Mensajes: 456
Antigüedad: 20 años, 7 meses
Puntos: 1
Hola, y gracias a todos por contestar.

He probado muchas combinaciones y sólo me da error al escribir en el campo 'memo' de la BBDD. Tengo dos 'text field', y uno de ellos lo actualiza sin problemas (en la BBDD es un campo de texto), pero el otro no (el campo memo). Esto es así aunque el único parámetro que le pase sea ése.

¿Qué puedo hacer? Ese campo es importante y ha de ser un texto largo, puesto que lo quiero usar como texto de noticia.

Gracias!

PD: lo del espacio en "Enl laç" era un error de copiar y pegar. En el código está bien. Y lo de la 'ç' tampoco es.
  #7 (permalink)  
Antiguo 03/09/2004, 04:08
 
Fecha de Ingreso: noviembre-2003
Mensajes: 456
Antigüedad: 20 años, 7 meses
Puntos: 1
Por favor! Nadie puede ayudarme?

Gracias!
  #8 (permalink)  
Antiguo 03/09/2004, 09:54
Avatar de AlZuwaga
Colaborador
 
Fecha de Ingreso: febrero-2001
Ubicación: 34.517 S, 58.500 O
Mensajes: 14.550
Antigüedad: 23 años, 3 meses
Puntos: 535
Hacé una cosa a ver si se soluciona, porque no estás dando muchos datos.
Reemplazá todo lo siguiente:


Código:
Data= Request.Form("Data")
Titol=Request.Form("Titol")
Subtitol=Request.Form("Subtitol")
Text=Request.Form("text")
Font=Request.Form("font")
link1=Request.Form("link1")
link2=Request.Form("link2")
link3=Request.Form("link3")
.. por esto y volvé a probarlo:

Código:
Data= Replace(Request.Form("Data"), "'", "''")
Titol=Replace(Request.Form("Titol"), "'", "''")
Subtitol=Replace(Request.Form("Subtitol"), "'", "''")
Text=Replace(Request.Form("text"), "'", "''")
Font=Replace(Request.Form("font"), "'", "''")
link1=Replace(Request.Form("link1"), "'", "''")
link2=Replace(Request.Form("link2"), "'", "''")
link3=Replace(Request.Form("link3"), "'", "''")
Contanos cómo te fue
__________________
...___...
  #9 (permalink)  
Antiguo 06/09/2004, 01:32
 
Fecha de Ingreso: noviembre-2003
Mensajes: 456
Antigüedad: 20 años, 7 meses
Puntos: 1
Gracias, Dazuaga, pero me parece que no es eso (ya uso Titol=Trim(Replace(Request.Form("Titol"), "'", "''")))

Sólo me da error en el campo que es de tipo 'memo'. Algo debe pasar con él.
De todas formas, os incluyo el código de la página del formulario y la del código asp, porque ya me tiene más que harto el tema:

CÓDIGO DEL FORMULARIO
--------------------------


<FORM METHOD="POST" ACTION="insertar_ampli.asp">
<p><br>
</p>
<table width="50%" border="0">
<tr>
<td width="51%" align="right">Data (DD/MM/AA) </td>
<td width="49%" align="left">
<INPUT NAME="Data" TYPE="TEXT" id="Data"></td>
</tr>
<tr>
<td align="right">T&iacute;tol</td>
<td align="left">
<INPUT NAME="Titol" TYPE="TEXT" id="Titol"></td>
</tr>
<tr>
<td align="right">Subt&iacute;tol</td>
<td align="left">
<input name="Subtitol" type="text" id="Subtitol"></td>
</tr>
</table>
<p>&nbsp; </p>
<hr>
<table width="50%" border="0">
<tr>
<td align="right">Text:</td>
<td align="left"><textarea name="text" id="text"></textarea>
Text de la not&iacute;cia</td>
</tr>
<tr>
<td align="right">Font:</td>
<td align="left"><textarea name="font" id="font"></textarea></td>
</tr>
<tr>
<td height="24" align="right">&nbsp;</td>
<td align="left">Els enlla&ccedil;os han de ser URLs (http://...)</td>
</tr>
<tr>
<td align="right">Enlla&ccedil;1:</td>
<td align="left"><input name="link1" type="text" id="link1"> </td>
</tr>
<tr>
<td align="right">Enlla&ccedil;2:</td>
<td align="left"><input name="link2" type="text" id="link2"></td>
</tr>
<tr>
<td align="right">Enlla&ccedil;3:</td>
<td align="left"><input name="link3" type="text" id="link3"></td>
</tr>
</table>
<p><br>
<br>
<INPUT TYPE="SUBMIT" value="Publicar not&iacute;cia!">
</p>
</FORM>


CÓDIGO DE 'INSERTAR_AMPLI.ASP' (web que introduce el nuevo registro)
----------------------------------

<HTML>
<HEAD>
<TITLE>Insertar.asp</TITLE>
</HEAD>
<BODY>

<%
'Recogemos los valores del formulario
Data= Request.Form("Data")
'los Trim y Replace solucionan problemas cuando el texto contiene comillas simples

Titol=Trim(Replace(Request.Form("Titol"), "'", "''"))
Subtitol=Trim(Replace(Request.Form("Subtitol"), "'", "''"))
Text=Trim(Replace(Request.Form("text"), "'", "''"))
Font = Trim(Replace(Request.Form("font"), "'", "''"))
link1=Request.Form("link1")
link2=Request.Form("link2")
link3=Request.Form("link3")

'Instanciamos y abrimos nuestro objeto conexion
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "noticias_coetc"


sSQL="Insert Into mejorado (Titol,Subtitol,Data,Text,Font,link1,link2,link3) values ('" & Titol & "','" & Subtitol & "','" & Data & "','" & Text & "','" & Font & "','" & link1 & "','" & link2 & "','" & link3 & "')"

Response.Write sSQL


'Ejecutamos la orden
set RS = Conn.Execute(sSQL)
%>

<h1><div align="center">Registro Insertado</div></h1>
<div align="center"><a href="/noticies/noticias.asp">Visualizar el contenido de
la base</a></div>

<%
'Cerramos el sistema de conexion
Conn.Close
%>

</BODY>
</HTML>



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

Espero que me podáis ayudar.

Gracias!
  #10 (permalink)  
Antiguo 06/09/2004, 01:37
Avatar de u_goldman
Moderador
 
Fecha de Ingreso: enero-2002
Mensajes: 8.031
Antigüedad: 22 años, 5 meses
Puntos: 98
sSQL="Insert Into mejorado (Titol,Subtitol,Data,Text,Font,link1,link2,link3) values ('" & Titol & "','" & Subtitol & "','" & Data & "','" & Text & "','" & Font & "','" & link1 & "','" & link2 & "','" & link3 & "')"

Alguna de estas dos o las dos, no será una palabra reservada, me imagino que "text" si debe ser...

Al parecer tu sentencia está bien, por lo que me queda esa duda, trata cambiándole el nombre al campo.
__________________
"El hombre que ha empezado a vivir seriamente por dentro, empieza a vivir más sencillamente por fuera."
-- Ernest Hemingway
  #11 (permalink)  
Antiguo 10/09/2004, 02:49
 
Fecha de Ingreso: noviembre-2003
Mensajes: 456
Antigüedad: 20 años, 7 meses
Puntos: 1
Hola Goldman.

Lo he probado y no. No son palabras reservadas...



Gracias.

¿Alguien más se arriesga ?
  #12 (permalink)  
Antiguo 10/09/2004, 10:26
Avatar de AlZuwaga
Colaborador
 
Fecha de Ingreso: febrero-2001
Ubicación: 34.517 S, 58.500 O
Mensajes: 14.550
Antigüedad: 23 años, 3 meses
Puntos: 535
mmm... poné el campo MEMO (y sus vaores también) al final de la lista de campos/valores.
Leí alguna vez que los campos tipo MEMO y otros algunas veces dan problemas "raros" y se soluciona así (igual, lo leí para un SELECT, no para un INSERT).


sSQL="Insert Into mejorado (Titol,Subtitol,Text,Font,link1,link2,link3,Data) values ('" & Titol & "','" & Subtitol & "','" & Text & "','" & Font & "','" & link1 & "','" & link2 & "','" & link3 & "','" & Data & "',)"
__________________
...___...
  #13 (permalink)  
Antiguo 10/09/2004, 10:34
Avatar de AlZuwaga
Colaborador
 
Fecha de Ingreso: febrero-2001
Ubicación: 34.517 S, 58.500 O
Mensajes: 14.550
Antigüedad: 23 años, 3 meses
Puntos: 535
Bueno, aquí lo leí:

http://www.aspfaq.com/show.asp?id=2188


Pero efectivamente es para los SELECT (Avoid SELECT * notation; NAME your columns in a list, and name the offending column(s) LAST)
__________________
...___...
  #14 (permalink)  
Antiguo 15/09/2004, 03:29
 
Fecha de Ingreso: noviembre-2003
Mensajes: 456
Antigüedad: 20 años, 7 meses
Puntos: 1
Hola Dazuaga,


probaré a ver, pero no sé...

Me fastidia que una cosa tan simple y rutinaria como ésa me dé tantos problemas. Y además que sólo me pase a mí.

Gracias!
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 15:45.