La Web del Programador: Comunidad de Programadores
 
    Pregunta:  3784 - RECORDSET + SQL CON LIKE...
Autor:  Miguel Robredo
Hola.
Quiero hacer una consulta (VBasic 6) contra Oracle 8 a través de ODBC.
Tengo el siguiente código para ello:

busqueda = "Select * " & _
"from tabla " & _
"where campo1 like ´" & txt1.Text & _
Chr(37) & "´ order by campo1"

Set rs = bd.OpenRecordset (busqueda, &_
dbOpenDynaset)

txt1 = rs.Fields("Campo1")
txt2 = rs.Fields("Campo2")
etc...

Todo el tema de Workspace y definiciones está correcto, pero...
Cuando lo ejecuto, me dice que no hay ningún registro activo, error 3021. Sin embargo si le cambio en la select el like por el "=" funciona perfectamente (pasándole toda la cadena claro).
Efectivamente el valor AbsolutePosition del recordset es -1. Deberia funcionar pero no sé por que no funciona... :-m
¿De qué puede ser? ¿Alguna solución?
Gracias.

  Respuesta:  Eric del Valle Hernández
***** Ya probaste poniendo asteriscos *****
busqueda = "Select * from tabla where campo1 like " & Chr(34) & "*" & Trim(txt1.Text) & "*" & Chr(34) & " order by campo1;"
Set rs = bd.OpenRecordset (busqueda, &_
dbOpenDynaset)

txt1 = rs.Fields("Campo1")
txt2 = rs.Fields("Campo2")
etc...

suerte!!

  Respuesta:  Angel Pacheco
Si empleas ADO en lugar de ODBC es mejor. ADO es mas robusto cuando se trata de conexiones Cliente Servidor. Te recomiendo el libro de Jeffrey P. Mc.Manus Bases de Datos con Visual Basic 6 Editorial Prentice Hall, capítulo 10.