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

comparar dos cadenas de texto

Estas en el tema de comparar dos cadenas de texto en el foro de ASP Clásico en Foros del Web. Buenas tengo una duda necesito comparar un valor de una variable de session con un campo de una base de datos. variable de session = ...
  #1 (permalink)  
Antiguo 04/05/2011, 06:19
 
Fecha de Ingreso: abril-2002
Mensajes: 68
Antigüedad: 22 años
Puntos: 0
comparar dos cadenas de texto

Buenas tengo una duda necesito comparar un valor de una variable de session con un campo de una base de datos.

variable de session = a,b,c
campo de bd = c,i,f

necesito que me muestre todos los registros donde alguna palabra de la cadena de texto sea igual a alguna palabra del campo de la base de datos

he probado con esto

SELECT *
FROM campo
WHERE nombre de campo LIKE %variable de session%

pero solo funciona si en la variable de session solo hay una palabra , no funciona si hay más de una.

no se si me explico, si no es asi agradeceria que preguntarais ...

un abrazo y muchas gracias
__________________
Lordztein
  #2 (permalink)  
Antiguo 04/05/2011, 09:08
 
Fecha de Ingreso: abril-2002
Mensajes: 68
Antigüedad: 22 años
Puntos: 0
Respuesta: comparar dos cadenas de texto

Voy a intentar dar más datos :

base de datos :

Id de archivo / nombre / grupos con permisos
1 / tarari / A, C, I

campo de formulario de ingreso a la aplicación donde genero los grupos que estoy inscrito como usuario : grupo = A,B donde genero una variable de session donde mando A, B

necesito un recordset que cuando coincidan alguna de las palabras me enseñe el archivo.

en el ejemplo coinciden los grupos A.

creo que voy de mal en peor al explicarlo ....
__________________
Lordztein
  #3 (permalink)  
Antiguo 04/05/2011, 09:22
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, 2 meses
Puntos: 535
Respuesta: comparar dos cadenas de texto

creo que lo que te conviene es crear otras 3 tablas:

- una llamada grupos donde haya un registro (y un id_grupo) para cada grupo
- otra que relacione los usuarios con los grupos a los que pertenece cada uno
- y una última que relacione los archivos con los grupos de usuarios que pueden acceder a éste.
__________________
...___...
  #4 (permalink)  
Antiguo 04/05/2011, 09:26
 
Fecha de Ingreso: abril-2002
Mensajes: 68
Antigüedad: 22 años
Puntos: 0
Respuesta: comparar dos cadenas de texto

Gracias, el problema que el campo de sesion lo recojo de una variable de formulario que me mandan desde una aplicación con lotus notes a la cual no tengo acceso.

por eso necesito comparar dos cadenas de texto y enseñar el archivo si coincide en alguna palabra.

Por cierto hay más de 200 grupos y pueden pertenecer a muchos grupos a la vez.
__________________
Lordztein
  #5 (permalink)  
Antiguo 04/05/2011, 09:54
Avatar de Myakire
Colaborador
 
Fecha de Ingreso: enero-2002
Ubicación: Centro de la república
Mensajes: 8.849
Antigüedad: 22 años, 3 meses
Puntos: 146
Respuesta: comparar dos cadenas de texto

Cita:
SELECT *
FROM campo
WHERE nombre de campo LIKE %variable de session%

pero solo funciona si en la variable de session solo hay una palabra , no funciona si hay más de una.
Parte la cadena en palabras (split) y concatena varias consultas (una por palabra) uniéndolas con el operador UNION , así generas el recordSet único que necesitas

Saludos
  #6 (permalink)  
Antiguo 04/05/2011, 09:57
 
Fecha de Ingreso: abril-2002
Mensajes: 68
Antigüedad: 22 años
Puntos: 0
Respuesta: comparar dos cadenas de texto

Voy a buscar como hacerlo ... me podrias paras un ejemplo de Split ??

de todas formas muchas gracias por la respuesta ... voy a intentarlo
__________________
Lordztein
  #7 (permalink)  
Antiguo 06/05/2011, 05:24
 
Fecha de Ingreso: abril-2002
Mensajes: 68
Antigüedad: 22 años
Puntos: 0
Respuesta: comparar dos cadenas de texto

Buenas mo encuentro la forma de utilizar split auqi ( lo siento ) lo he intentado.
puedes ayudarme ?


Código:
SELECT ttvsql.videos.Id, ttvsql.videos.imagen, ttvsql.videos.canales, ttvsql.videos.votaciones, ttvsql.videos.nombre, ttvsql.videos.valoracion, ttvsql.videos.descripcion, ttvsql.videos.visitas, ttvsql.videos.video, ttvsql.videos.metatitulo, ttvsql.videos.metakey, ttvsql.videos.metades, ttvsql.videos.fecha, ttvsql.videos.comentarios, ttvsql.videos.camino,ttvsql.videos.tipovideo, ttvsql.canales.nombrecanal, ttvsql.videos.grupos FROM ttvsql.videos  INNER JOIN ttvsql.canales ON ttvsql.videos.canales = ttvsql.canales.id ORDER BY ttvsql.videos.Id DESC
la cadena de texto que me mandan desde un formulario seria ejemplo: grupos
y su contenido podria ser grupo1, grupo2, grupo3

y en la base de datos el campo ttvsql.grupos tendria como contenido :
grupo1, grupo5, grupo6

esto es para poder listar unos videos simpre que coincida uno de los grupos como minimo.

gracias
__________________
Lordztein
  #8 (permalink)  
Antiguo 06/05/2011, 09:17
Avatar de Myakire
Colaborador
 
Fecha de Ingreso: enero-2002
Ubicación: Centro de la república
Mensajes: 8.849
Antigüedad: 22 años, 3 meses
Puntos: 146
Respuesta: comparar dos cadenas de texto

Bueno, lo que te decía era con algo como esto:

vecPalabras = split(request("Palabras"),",")
vSQL = ""
for i=0 to ubound(vecPalabras)
vSQL = vSQL & "select bla bla bla Where Palabra = '" & vecPalabras(i) & "' UNION "
Next
vSQL = LEFT(vSQL, LEN(vSQL)-5) 'Para quitar el último UNION

y listo, pero con lo que pones ahora de
Cita:
esto es para poder listar unos videos simpre que coincida uno de los grupos como minimo.
Creo que tienes con un simple:

vSQL = "select bla bla bla Where Palabra in (" & request("Palabras") & ")"

No te lo podría asegurar por que no analicé a fondo, pero ve si te sirve o si me estoy yendo para otro lado

Saludos

Etiquetas: cadenas
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 02:11.