uso del comodín '%' en una consulta SQL
Estoy lanzando una consulta a una base de datos alojada en un SQL Server 2000 a traves de un AdoQuery
dm.tblMusica.Active := false; ordensql := 'SELECT ObrasMusica.*, Autores.Nombre AS Nombre FROM ObrasMusica INNER JOIN Autores ON ObrasMusica.IdAutor = Autores.IdAutor Where Titulo LIKE :VCriterio'; dm.tblMusica.SQL.text := ordensql; dm.tblMusica.Parameters.ParamByName('VCriterio').Value := txtcriterio.Text + '%'; dm.tblMusica.Active := true; La busqueda la realiza según el criterio escrito en un edit (txtcriterio) y asociado al evento Textchange El analizador de consultas de SQL Server me da el resultado esperado, por ejemplo, todos los títulos que empiecen por la P, sustituyendo :VCriterio por 'p%', pero lanzada la consulta desde Delphi 6, el comodín '%' se comporta como '_', es decir, solo se comporta como comodin con un sólo carácter, en vez de 'todo lo que vaya detrás', que es lo que pretendo. ¿alguna idea? |
Has probado a utilizar el asterisco *
Un Saludo. |
Gracias por responder.
Sí, ya probé el asterisco, y con el no devuelve ningún resultado. Saludos |
Solucionado
he logrado solucionar el problema excluyendo el parámetro en la consulta (por a alguien le pasara lo mismo)
ordensql := 'SELECT ObrasMusica.*, Autores.Nombre AS Nombre FROM ObrasMusica INNER JOIN Autores ON ObrasMusica.IdAutor = Autores.IdAutor Where Titulo LIKE ' + chr(39) + txtcriterio.Text + '%' + chr(39); Aun así, construyo otras consultas más complicadas que esta pasando parámetros y el comodín no me da ningún problema. Sigo intrigrado porqué con esta sí. |
La franja horaria es GMT +2. Ahora son las 10:53:53. |
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