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

Replace

Estas en el tema de Replace en el foro de ASP Clásico en Foros del Web. Hola vereis, tengo una aplicacion que es para meter información en un formulario el cual despues te lo envia a una db, bien, mi problema ...
  #1 (permalink)  
Antiguo 13/03/2006, 06:38
 
Fecha de Ingreso: octubre-2004
Mensajes: 230
Antigüedad: 20 años, 6 meses
Puntos: 0
Replace

Hola vereis, tengo una aplicacion que es para meter información en un formulario el cual despues te lo envia a una db, bien, mi problema esque hay un campo en el cual el usuario puede meter texto ya sea corto o muy extenso ya que es un campo memo, y mi problema esque no siempre me funciona ya que si alguien mete un texto el cual copia y pega y este texto lleva o espacios en blanco o saltos de linea o ...yo que se pues no me hace la insercion en db, alguien del foro me dijo que mi problema estaba en el update que hacia que tenia que poner esto
Código:
Replace(Request.form("temario"), chr(10), "")
pero con esto hay veces en que me va y otras en que no segun lo que meta el usuario......
A ver si alguien me puede decir como hacer para que meta lo que meta el usuario en el textarea que recoje esta información se actualice en mi db y tb a ver si alguien me pude explicar lo que hace el chr(10), que supongo que es que si hay espacios en blanco te los quita....pero no estoy muy seguro.
Se me olvidaba esto viene de este Post
http://www.forosdelweb.com/f15/actualizacion-registros-375432/
Un saludo y gracias de antemano
  #2 (permalink)  
Antiguo 13/03/2006, 07:26
 
Fecha de Ingreso: septiembre-2004
Mensajes: 179
Antigüedad: 20 años, 7 meses
Puntos: 0
Buenas,

si sabes que el texto no excede al tamaño del campo de la base de datos deberías fijarte en los caracteres especiales, concretamente en las comillas que pueden estar modificando la SQL.
__________________
Estoy en www.aibarra.net

Camino para preguntar: manual -> Google -> FAQs y buscador del foro -> Nuevo Tema.
Tan difícil es escribir correctamente? Es más fácil leerlo. Pónselo fácil al que quiera ayudarte.
  #3 (permalink)  
Antiguo 13/03/2006, 11:15
 
Fecha de Ingreso: octubre-2004
Mensajes: 230
Antigüedad: 20 años, 6 meses
Puntos: 0
Pues si, el fallo está en que cuando meto alguna comilla simple no me hace nada.......como lo podria solucionar?
  #4 (permalink)  
Antiguo 13/03/2006, 11:20
Avatar de AlZuwaga
Colaborador
 
Fecha de Ingreso: febrero-2001
Ubicación: 34.517 S, 58.500 O
Mensajes: 14.550
Antigüedad: 24 años, 2 meses
Puntos: 535
Código:
Replace(Request.form("temario"), "'", "''")
__________________
...___...
  #5 (permalink)  
Antiguo 13/03/2006, 11:32
 
Fecha de Ingreso: octubre-2004
Mensajes: 230
Antigüedad: 20 años, 6 meses
Puntos: 0
Gracias por tu respuesta Al Zuwaga, ahora si que me acepta las comillas simples , pero por ejemplo si le meto este texto
Cita:
Ubicación Profesional y Orientación en el Mercado de Trabajo.
Técnicas Administrativas de Oficina (Facturación, Nominas y S.S.)
Técnicas Básicas de Comunicación y Archivo.
Aspectos Administrativos de la Gestión Empresarial.
Mecanografía Audiovisual
Informatica Básica
Ofimática (Windows XP, Word, Excel, Access e Internet)
Aplicaciones Informáticas de Gestión Empresarial (Contaplus, Facturaplus y Nominaplus)
Seguridad e Higiene en el Trabajo.
el cual copio y pego no me hace nada sabrias tu como podria hacer para que ponga lo que ponga me lo acepte?
  #6 (permalink)  
Antiguo 13/03/2006, 11:41
Avatar de AlZuwaga
Colaborador
 
Fecha de Ingreso: febrero-2001
Ubicación: 34.517 S, 58.500 O
Mensajes: 14.550
Antigüedad: 24 años, 2 meses
Puntos: 535
No entiendo qué significa que no te hace nada.
Que no lo guarda en la base de datos?
Veo que estás usando un campo memo, por lo que la extensión no sería un problema...

Te tira algún error o, como decís, no hace nada de nada?
__________________
...___...
  #7 (permalink)  
Antiguo 14/03/2006, 05:40
 
Fecha de Ingreso: octubre-2004
Mensajes: 230
Antigüedad: 20 años, 6 meses
Puntos: 0
Cuando digo que no me hace nada, me refiero a que no me lo mete en la DB
  #8 (permalink)  
Antiguo 14/03/2006, 10:48
Avatar de DkarnDuuk  
Fecha de Ingreso: marzo-2004
Mensajes: 626
Antigüedad: 21 años, 1 mes
Puntos: 2
No se si t he entendido, pero si lo q dices es q los saltos de linea t los coge mal o tienes problemas puedes probar con esto

replace(request.form("texta"),vbcrlf,"<br>")

por lo demas no deberias tener problemas, aunq haya blancos, comillas simples haciendo lo q dice Al Zuwaga, comillas dobles, etc
__________________
bla, bla, bla......
  #9 (permalink)  
Antiguo 14/03/2006, 10:55
Avatar de AlZuwaga
Colaborador
 
Fecha de Ingreso: febrero-2001
Ubicación: 34.517 S, 58.500 O
Mensajes: 14.550
Antigüedad: 24 años, 2 meses
Puntos: 535
Va a sonar "tonto" esto, pero una vez me ha ocurrido (además, no le encuentro otra explicación):

Abrí la tabla para ver los datos. Situate en un registro que hayas insertado y cuyo dato "no se ha guardado". Metete dentro de ese campo haciéndole un click y luego bajá un par de líneas con la tecla de "flechita hacia abajo" :)

¿Están los datos? Espero que si, porque de lo contrario ya no tengo nada más por decir :/
__________________
...___...
  #10 (permalink)  
Antiguo 14/03/2006, 12:11
 
Fecha de Ingreso: octubre-2004
Mensajes: 230
Antigüedad: 20 años, 6 meses
Puntos: 0
Bueno.......la verdad me estoy volviendo loco ahora acabo de descubrir que si tienes un texto el cual copias y pegas y este texto lleva una linea en blanco como esto
Código:
Enla parte inferior se muestra una relación de cursos accesibles, por los visitantes de la web.

Estos cursos muestran enlaces inferiores, que permiten editar, dar de baja o borrar definitivamente, cada uno de los cursos.
me falla y no me mete nada en la DB, en cambio si le meto ( ó ' ó " o cualquier otra cosa medio rara de signos si me lo coje pero como os he dicho si hay una linea en blanco nada...
  #11 (permalink)  
Antiguo 14/03/2006, 12:43
Avatar de AlZuwaga
Colaborador
 
Fecha de Ingreso: febrero-2001
Ubicación: 34.517 S, 58.500 O
Mensajes: 14.550
Antigüedad: 24 años, 2 meses
Puntos: 535


Colocá el código del formulario y el del script que hace la inserción en la BD
__________________
...___...
  #12 (permalink)  
Antiguo 16/03/2006, 03:52
 
Fecha de Ingreso: octubre-2004
Mensajes: 230
Antigüedad: 20 años, 6 meses
Puntos: 0
Bueno hay va el código del Form
Código:
<FORM METHOD="POST" ACTION="update.asp" name="envio">
<input type="hidden" name="id" value="<%=adrecord.fields("numcur").value%>">
<table width="100%" border="0" align="left" cellpadding="0" cellspacing="0">
<tr style="padding-left:10"> 
<td height="4" colspan="5" valign="top"></td>
</tr>
<tr style="padding-left:10">
<td height="15" valign="top" bgcolor="#d8eec5" class="e_azul">Nombre</td>
<td height="15" valign="top" colspan="4">
<input type="text" name="nombre" size="60" value="<%=rtrim(adrecord.fields("nomcur").value)%>">
</td>
</tr>
<tr style="padding-left:10"> 
<td width="90" height="15" valign="top" bgcolor="#d8eec5"class="e_azul">Tipo de Curso</td>
<td width="166" height="15" valign="top">
<select name="tipo" class="menutitle2">
<option value="1" <%if trim(adrecord.fields("tipcur").value)="1" then response.write("selected")%>>Desempleados</option>
<option value="2" <%if trim(adrecord.fields("tipcur").value)="2" then response.write("selected")%>>Trabajadores/Continua</option>
<option value="3" <%if trim(adrecord.fields("tipcur").value)="3" then response.write("selected")%>>Privados Empresas</option>
<option value="4" <%if trim(adrecord.fields("tipcur").value)="4" then response.write("selected")%>>Privado Particulares</option>
<option value="5" <%if trim(adrecord.fields("tipcur").value)="5" then response.write("selected")%>>Oracle University</option>
<option value="6" <%if trim(adrecord.fields("tipcur").value)="6" then response.write("selected")%>>E-Learning</option>
<!--<option value="7" <%'if trim(adrecord.fields("tipcur").value)="7" then response.write("selected")%>>A Distancia/Multimedia</option>-->
<option value="8" <%if trim(adrecord.fields("tipcur").value)="8" then response.write("selected")%>>Cámaras de Comercio</option>
<!--<option value="0" <%'if trim(adrecord.fields("tipcur").value)="0" then response.write("selected")%>>Certificacion Microsoft</option>-->
<option value="9" <%if trim(adrecord.fields("tipcur").value)="9" then response.write("selected")%>>Otros Cursos</option>
</select>
</td>
<td width="90" height="15" valign="top" bgcolor="#d8eec5" class="e_azul">Precio</td>
<td width="254" height="15" colspan="2" valign="top">
<input type="text" name="precio" value="<%=rtrim(adrecord.fields("precur").value)%>">
</td>
</tr>
<tr style="padding-left:10"> 
<td width="90" height="15" bgcolor="#d8eec5" class="e_azul" valign="top">Horas</td>
<td width="166" height="15" valign="top">
<input type="text" name="horas" size="9" value="<%=rtrim(adrecord.fields("horacur").value)%>">
</td>
<td width="90" height="15" valign="top" bgcolor="#d8eec5" class="e_azul">Horario</td>
<td width="254" height="15" colspan="2" valign="top">
<input type="text" name="horario" size="40" value="<%=rtrim(adrecord.fields("nhorcur").value)%>">
</td>
</tr>
<tr style="padding-left:10"> 
<td width="90" height="15" bgcolor="#d8eec5" class="e_azul" valign="top">Inicio</td>
<td width="166" height="15" valign="top">
<p><input type="text" name="inicio" size="10" value="<%=rtrim(adrecord.fields("finicur").value)%>"> 
(dd/mm/aaaa)</p> 
</td>
<td width="90" height="15" valign="top" bgcolor="#d8eec5" class="e_azul">Finalizacion</td>
<td width="254" height="15" colspan="2" valign="top">
<p><input type="text" name="fin" size="10" value="<%=rtrim(adrecord.fields("ffincur").value)%>">
(dd/mm/aaaa)</p>
</td>
</tr>
<tr style="padding-left:10"> 
<td width="90" height="15" bgcolor="#d8eec5" class="e_azul" valign="top">Estado</td>
<td width="166" height="15" valign="top">
<select name="estado" class="menutitle2">
<option value="si" <%if trim(adrecord.fields("baja").value)="si" then response.write("selected")%>>De Baja</option>
<option value="" <%if trim(adrecord.fields("baja").value)="" then response.write("selected")%>>Activo</option>
</select>
</td>
<td width="90" height="15" valign="top" bgcolor="#d8eec5" class="e_azul">Direccion</td>
<td width="254" height="15" colspan="2" valign="top">
<select name="lugar" class="menutitle2">
<%
if session("callecita")="FORMA" then
cvalor1 = "miacademia1"
cvalor2 = "miacademia2"
cvalor3 = "miacademia3"
else
cvalor1 = "aca1"
cvalor2 = "aca2"
cvalor3 = "aca3"
end if		  
%>
<option value="<%=cvalor1%>"><%=cvalor1%></option>
<option value="<%=cvalor2%>"><%=cvalor2%></option>
<option value="<%=cvalor3%>"><%=cvalor3%></option>
</select>
</td>
</tr>
<tr style="padding-left:10"> 
<td width="90" valign="top" bgcolor="#d8eec5" class="e_azul">Temario</td>
<td colspan="4" valign="top">
<textarea name="temario" cols="40" rows="4"><%=rtrim(adrecord.fields("reqcur").value)%></textarea>
</td>
</tr>
<tr style="padding-left:10">
<td valign="top" bgcolor="#d8eec5" class="e_azul">Observaciones</td>
<td colspan="4" valign="top">
<textarea name="notas" cols="40" rows="4"><%=rtrim(adrecord.fields("notas").value)%></textarea>
</td>
</tr>
<tr style="padding-left:10">
<td valign="top" bgcolor="#d8eec5" class="e_azul">Situaci&oacute;n</td>
<td valign="top" class="e_azul">
<select name="activo" class="menutitle2">
<option value="1" <%if trim(adrecord.fields("activ").value)="1" then response.write("selected")%>>Plazas libres</option>
<option value="2" <%if trim(adrecord.fields("activ").value)="2" then response.write("selected")%>>Completo</option>
<!--<option value="3" <%'if trim(adrecord.fields("activ").value)="3" then response.write("selected")%>>DESTACADO</option>
<option value="" <%'if trim(adrecord.fields("activ").value)="" then response.write("selected")%>>No determinado</option>-->
</select>
</td>				
</tr>
<tr></tr>
<td colspan="3" valign="top" class="e_azul">
<div align="right">
<input name="Submit" type="submit" class="input_verde" value="Enviar" onClick="CloseRefreshWindow()"> 	
&nbsp; 
<input name="Reset" type="reset" class="input_verde" value="ReestablecerDatos">			  
</div></td>
</tr>
<%
end if
%>
</table>
</FORM>
y este es el código del UPDATE
Código:
<% 
   Response.Buffer = True 
   Dim oConn,strSQL 
   Set oConn = Server.CreateObject("ADODB.Connection") 
   oConn.Open("Driver={Microsoft Visual FoxPro Driver};UID=;PWD=;SourceDB="+server.mappath("miruta")+";SourceType=DBC;Exclusive=No;BackgroundFetch=Sí;Collate=Machine;Null=Sí;Deleted=Sí;")  
   strSQL = "UPDATE base3000!cursos SET nomcur = '" & Request.form("nombre") & "',nhorcur = '" & Request.form("horario") & "',finicur = '" & Request.form("inicio") & "',ffincur = '" & Request.form("fin") & "',horacur = '" & Request.form("horas") & "',reqcur = '" & Replace(Request.form("temario"), "'", "''") & "',tipcur = '" & Request.form("tipo") & "',precur = '" & Request.form("precio") & "',numero = '" & Request.form("numero") & "',notas = '" & Replace(Request.form("notas"), "'", "''") & "',baja = '" & Request.form("estado") & "',activ = '" & Request.form("activo") & "' WHERE numcur = '" & Request.form("id") & "'"
   oConn.Execute(strSQL) 
   oConn.Close 
   set oConn = nothing
   Response.Redirect("relacioncursos.asp")  
%>
  #13 (permalink)  
Antiguo 16/03/2006, 11:57
 
Fecha de Ingreso: enero-2006
Ubicación: Torroles (Costa der Só)
Mensajes: 1.017
Antigüedad: 19 años, 3 meses
Puntos: 7
¿porque no delegas en una funcion todo el tema de filtrado de caracteres?

Código:
function checkText(esto)
   Dim t_esto
   t_esto = esto
   if t_esto<>"" then
       t_esto = replace(t_esto,"'", "''")
       t_esto = replace(t_esto,vbcrlf,"<br />")
       ' Y asi, hasta el infinito y más allá
       ' Incluso puedes usar expresiones regulares... 
   end if
   checkText = t_esto
end function
Otra cosa, busca en google (foxpro provider memo) mas información sobre esto. FoxPro no tiene el proveedor de ODBC totalmente operativo.



Un saludo
__________________
"Tus pecados son el estiércol sobre el que florecerán las flores de tus virtudes" - Gerald Messadié -
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 12:54.