Consultar datos con dbgrid

Estoy haciendo una consulta con dbgrid y le pongo el nombre o parte de él y me arroja bien los datos, pero al parecer es sensible a mayúsculas y minúsculas y por tanto no me muestra todos los registros...
¿Me pueden dar un tip para que me muestre todas las consultas?
Aquí pongo el código de la sentencia sql
var consulta : String;
begin
 consulta := 'SELECT Codigo, Titulo, Autor, Existencia, Area FROM libros.DB WHERE Titulo LIKE ''';
consulta := consulta + '%';
consulta := consulta + EDIT1.Text;
consulta := consulta + '%';
consulta:=consulta +'''';
consulta:=consulta + ' ORDER BY Titulo';
QUERY1.SQL.Clear;
QUERY1.SQL.ADD(consulta);
QUERY1.Active := TRUE;
QUERY1.Open;
end;
var consulta : String;begin consulta := 'SELECT Codigo, Titulo, Autor, Existencia, Area FROM libros.DB WHERE Titulo LIKE ''';consulta := consulta + '%';consulta := consulta + EDIT1.Text;consulta := consulta + '%';consulta:=consulta +'''';consulta:=consulta + ' ORDER BY Titulo';QUERY1.SQL.Clear;QUERY1.SQL.ADD(consulta);QUERY1.Active := TRUE;QUERY1.Open;end;

1 respuesta

Respuesta
1
La forma de hacerlo dependerá de la tecnología SQL que utilices... por ejemplo, esto funcionaría en MS SQL:
consulta := 'SELECT Codigo, Titulo, Autor, Existencia, Area FROM libros.DB WHERE Upper(Titulo) LIKE ''%' + UpperCase(Edit1.text) + '%'' ORDER BY Titulo';
Oye gracias por tu tiempo, pero me aparece un error con los %% o algo así...
Estoy programando en delphi 7 y estoy usando paradox...
Ojalá que me puedas ayudar...
Gracias.
No soy experto en bases de datos, pero yo diría que Paradox no dispone de tecnología SQL... Es decir, es una "base de datos de escritorio"... se instala en el propio PC o en un PC que pertenezca a una red local, y no funciona "como un servidor" (quizás me equivoco). En cuanto al carácter "%" quizás PARADOX (si realmente utiliza SQL) utilice otro en vez de ese, como por ejemplo "*". Por otra parte, fíjate que a la izquierda del primer % y a la derecha del segundo aparecen 2 comillas simples (''), no una doble ("). También ayudaría que indicaras el texto exacto del error que se produce...
Oye gracias por tu tiempo, de verdad...
Ya intenté con otro carácter en vez de % y cheque lo de las comillias simples y sigue igual
El mensaje de error es:
"invalid use of keyboard
token: upper (titulo)"
El problema está en el modificador "Upper". Quizás no permita utilizarlo directamente en la condición, pero si en el grupo de campos:
consulta := 'SELECT Codigo, Upper(Titulo), Autor, Existencia, Area FROM libros.DB WHERE Titulo LIKE ''%' + UpperCase(Edit1.text) + '%'' ORDER BY Titulo';
Leyendo sobre Paradox, parece que el texto entre comillas utiliza comillas dobles (lo contrario de lo habitual), es decir, en vez de poner dos comillas simples ('') debes poner solo una doble (")...
consulta := 'SELECT Codigo, Upper(Titulo), Autor, Existencia, Area FROM libros.DB WHERE Titulo LIKE "%' + UpperCase(Edit1.text) + '%" ORDER BY Titulo';
Le doy que busque por ejemplo libros de álgebra y me da el siguiente error:
"invalid use of keyboard 
token: %algebra%"
Ahora "Upper" ya no da problema, lo que lo da es la cadena entre comillas. Prueba así:
consulta := 'SELECT Codigo, Upper(Titulo), Autor, Existencia, Area FROM libros.DB WHERE Titulo LIKE ' + QuotedStr('%' + UpperCase(Edit1.text) + '%') + ' ORDER BY Titulo';
Exactamente el mismo mensaje de error
Oye, hoy lunes me levanté con la cabeza más fría y pude acomodar el programa con el código que me mandaste... la verdad era error mío... me disculpo contigo por el tiempo que invertiste y te agradezco muchísimo amigo...
Gracias...

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas