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

Funcion substr en access

Estas en el tema de Funcion substr en access en el foro de ASP Clásico en Foros del Web. Hola! ya sé que este no es el foro adecuado pero como tiene que ver con mi página asp y como aquí me siento agusto ...
  #1 (permalink)  
Antiguo 13/04/2005, 02:05
 
Fecha de Ingreso: marzo-2005
Ubicación: Vitoria
Mensajes: 49
Antigüedad: 19 años, 2 meses
Puntos: 0
Funcion substr en access

Hola! ya sé que este no es el foro adecuado pero como tiene que ver con mi página asp y como aquí me siento agusto pos lo posteo. enga va!
Quiero utilizar la funcion sql substr en access y no me deja. Pongo la consulta en modo sql y hago la siguiente consulta:
select substr(checkinglist,instr(checkinglist,'.doc')) from articulos;
me dice que la función substr no está definida en la expresión.
hay alguna funcion parecida al substr que funcione?
Un saludo!
  #2 (permalink)  
Antiguo 13/04/2005, 02:11
Avatar de trasgukabi  
Fecha de Ingreso: septiembre-2004
Mensajes: 2.749
Antigüedad: 19 años, 9 meses
Puntos: 18
pero esa no es la sintaxis de substr, no?
es substr(cadena,posición,numerocaracteresaextraer)

qué es lo que quieres hacer?
  #3 (permalink)  
Antiguo 13/04/2005, 03:04
 
Fecha de Ingreso: marzo-2005
Ubicación: Vitoria
Mensajes: 49
Antigüedad: 19 años, 2 meses
Puntos: 0
si es creo

Si no pones el número de caracteres a extraer te devulelve la cadena hasta el final creo.
La movida que quiero hacer es una update, pero primero hago la consulta por si las moscas. El problema es que hay registros de rutas a archivos que en el campo vienen duplicados (por ejemplo:
checkinglist
//SERVER2K/COMPARTO/Calidad/FICHAS DE RECEPCION/tes-121E.doc//SERVER2K/COMPARTO/Calidad/FICHAS DE RECEPCION/tes-121E.doc)
Y lo que quiero hacer es una update que la cambie a //SERVER2K/COMPARTO/Calidad/FICHAS DE RECEPCION/tes-121E.doc.
Enga trasgukabi un saludo!!
No curres mucho
  #4 (permalink)  
Antiguo 13/04/2005, 03:48
Avatar de trasgukabi  
Fecha de Ingreso: septiembre-2004
Mensajes: 2.749
Antigüedad: 19 años, 9 meses
Puntos: 18
para quien le interese, la solución ha sido preparar un pequeño script en ASP (no se puede hacer funcionar a substr en access?!??!?)
cogiendo todos los registros, comprobando que los datos están duplicados(instr) y con un split, actualizar el registro a uno de los índices del array resultante

seguro que hay una forma más fácil......
  #5 (permalink)  
Antiguo 14/04/2005, 00:53
 
Fecha de Ingreso: marzo-2005
Ubicación: Vitoria
Mensajes: 49
Antigüedad: 19 años, 2 meses
Puntos: 0
Si que debe existir una funcion

Me han dicho en otro foro que existe una función parecida a substr para access, y es la función mid(). Llega tarde ya he actualizado los registros a base de darle duro
  #6 (permalink)  
Antiguo 14/04/2005, 09:39
 
Fecha de Ingreso: marzo-2005
Ubicación: Vitoria
Mensajes: 49
Antigüedad: 19 años, 2 meses
Puntos: 0
Soy un zoquete

Vaya putada. Es una historia muy larga para contar pero he machacado la base de datos que tenía con los registros bien con otra antigua y eso que tenía una copia de seguridad pero he machacado las 2 sin querer . Total que me he puesto a actualizarlas con la funcion mid esa y funciona pero ahora me dice qu ela funcion length que mide los caracteres de una cadena no existe! (cosas de no saber access). Hay alguna función parecida? mi sentencia es esta pero hay que cambiar la funcion lengt:
Update articulos set checkinglist= mid([checkinglist],instr([checkinglist],'.doc')+4)
WHERE 75<(select length(checkinglist) from articulos);

de todas formas no se si tirará bien yo creo que si
  #7 (permalink)  
Antiguo 14/04/2005, 10:22
 
Fecha de Ingreso: marzo-2005
Ubicación: Vitoria
Mensajes: 49
Antigüedad: 19 años, 2 meses
Puntos: 0
Conseguido!!!

Oeoeoeo Ya he logrado hacerlo la update quedaría así:
Update articulos
set checkinglist=mid(checkinglist,instr(checkinglist,' .doc')+4)
where referencia in (select referencia from articulos where len(checkinglist)>75);
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 21:48.