SQL - Problemas en comparación de cadenas

 
Vista:

Problemas en comparación de cadenas

Publicado por Elizabeth (1 intervención) el 11/02/2005 23:36:00
Hola,

Mi aplicación (VB6) realiza una búsqueda en una base de datos Access 2000, sobre un campo memo, en la cual el usuario ingresa las palabras a buscar, separándolas con el signo + (luego las separo con split en una matríz)

Por ej. se busca: visual+basic devuelve todos los registros en los cuales dichas palabras se encuentren presentes.

El problema surge si ingresa: basic+visual, ya que no devuelve ningún registro.

La intención es que, independientemente del orden en que las escriba, deben devolverme los mismos registros.

Aquí escribo el código que utilizo para la consulta:

ConsBuscaTxt = "Select PANCM, DC, DESC from NCMest WHERE DESC Like '"
For i = 0 To UBound(PAoTEX)
ConsBuscaTxt = ConsBuscaTxt & "* " & PAoTEX(i) & "*"
If i = UBound(PAoTEX) Then
ConsBuscaTxt = ConsBuscaTxt & "' ORDER BY PANCM"
End If
Next i

Si alguien tiene idea de como puedo solucionarlo, le pido que me conteste.

Desde ya, gracias

Elizabeth
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Problemas en comparación de cadenas

Publicado por Edgar (19 intervenciones) el 14/02/2005 12:26:47
Hola

La sentencia deberia tener un and o un or entre las distintas palabras, es decir.. tu sentencia sql deberia lucir algo asi

SELECT PANCM, DC, DESC FROM NCMest WHERE DESC LIKE *Visual* AND DESC LIKE *Basic"

o asi

SELECT PANCM, DC, DESC FROM NCMest WHERE DESC LIKE *Visual* OR DESC LIKE *Basic"

Dependiendo si el resultado debe conseguir estrictamente las palabras o si con la aparición de una de ellas es suficiente.

El codigo que muestras, crearia una sentencia algo asi
SELECT PANCM, DC, DESC FROM NCMest WHERE DESC LIKE *Visual**Basic*, por eso el resultado que te da... estas dando un orden en la aparición de las palabras

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar