consulta con like
hola gente como estan, bien
mi problema es el siguiente estoy usando una base de datos en acces conectado con adoconnection y estoy usando un ado query para filtrar el contenido osea que solo apareca los datos que el usuario quiere. por ejempo, del campo nombre los registros que contenga "maria" tengo un combobox por donde expesifico el campo donde de va a buscar y un edit donde se pondra el dato a buscar y dice k hay problema en la sysntaxis en 'nombres' like '%maria%' , prove esta sentencia en una base de datos en sql server y funciono. este es nu codigo que estoy haciendo mal salu2. |
En Access el comodín a utilizar es el asterisco * y no el porcentaje %.
Un Saludo. |
Cita:
Ok Gracias |
falta operador??
bueno ahora me da otro error
despues de corregir lo de los % me seguia dando error de syntaxis y vi que ne el mensaje de error me ponia unas comillas de mas entonces retire el quotedstr() y el mensaje siguiente es falta operador en 'NOMBRES like *Maria*' en la expresion SELECT * FROM TESIS WHERE NOMBRES LIKE *MARIA* que me faltaria por mas que he intentado no le encuentro nada Código Delphi [-]procedure TForm1.Button1Click(Sender: TObject); VAR consulta: string; begin consulta:= 'SELECt * FROM tesis WHERE ' + combobox1.text+' LIKE '+ '*'+edit1.Text+'*'; datamodule2.ADOQuery1.Close; datamodule2.ADOQuery1.SQL.Add(consulta); datamodule2.ADOQuery1.Open; end; |
Cita:
Por otro lado, lo que comenta Marcos es válido para consultas hechas desde el mismo Acces, pero según acabo de probar, si la consulta es desde Delphi con un ADOQuery, se usan %, como en otras bases. // Saludos |
Cita:
el mensaje de error es falta operador en Nombres like *maria* y por otra parte cuando coloco el % me da error de syntaxis, :confused: salu2 |
En Access se utiliza como comodines los mismos caracteres que en ms-dos el asterisco (*) para un conjunto de caracteres y la interrogación (?) para un caracter, en Oracle p. ej. es porcentaje (%) para un conjunto de caracteres y guión bajo (_) para un caracter, esa es la diferencia.
|
Hola ramphi, como te dice Roman desde Access si funciona con * pero desde delphi tienes que hacerlo con %, por lo que veo tu error estaba en el campo que le pasas como parametro ya que no tiene que ser con comillas.
Cita:
Saluditos |
Cita:
pues corregi eso y me dice que hoy error en syntaxis y cuando quito los dos quotedstr() me da error de "falta operador" salu2 |
|
no me da error pero no pasa nada
Cita:
bueno de esta forma no me da error pero no pasa nada, en la dbgird siguen los mismo datos y le agrego un refresh y nada, hay algo mas que agregar??
|
Pues la verdad, deberías ver algún resultado o ver el grid vacio. Pregunta obligada: ¿seguro que el dbgrid está asociado al mismo adoquery? (un error tonto es muy común en estos casos)
en la base de datos, "maria" estará escrita en mayúsculas ¿verdad?, y sin tilde ¿siii? para las mayúsculas puedes usar:
Saludos |
Hola, yo siempre lo hice comilla simple y me ha funcionado acabo de hacer la prueba con comilla doble y también funciona. A parte de lo que te dice el amigo Lepe debes quitar el QuotedStr de tu campo.
Saluditos |
Resuelto
gracias ya pude resolver el problema, habia una mala conexion con el query y las comillas del campo, :p
salu2 |
La franja horaria es GMT +2. Ahora son las 07:13:45. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi