Ver la Versión Completa : SQL query desde un boton
Supermagayin
13-11-2003, 02:55:25
Hola. Tengo un Edit, un Query y un Boton. quiero utilizar la funcion de busqueda "like" con el contenido de este edit.
Todo esto para realizar una busqueda activada con el boton.
esto se me ocurre, pero ya no se como va la sintaxis.
Query1.SQL.Add('SELECT Nombre');
Query1.SQL.Add('FROM "tablanombre"');
Query1.SQL.Add('where nombre like ?????cadena edit???? ');
Query1.Active:=true;
Alguien Podria echarme una mano....gracias!!!
Ruben_Cu
13-11-2003, 05:56:29
Hola Supermagayin, prueba así:
sql.Add('where usuario like '+''''+edit1.text+'''');
Saludos
roman
13-11-2003, 06:13:07
Nada más añadir a lo que te dice Ruben_cu que en algunas bases de datos hay que agregar comodines si deseas que la búsqueda sea parcial, por ejemplo, en Paradox:
Query1.SQL.Add('where nombre like "%' + Edit.Text + '%"');
// Saludos
sitrico
17-11-2003, 20:36:01
Tenía el mismo problema, pero ¿ es posible que la búsqueda no sea sensitiva a las mayúsculas? (loCaseInsensitive)
Citando un ejemplo:
Software = software = SoftWare
Gracias.
roman
17-11-2003, 20:54:19
Convirtiendo ambas cadenas a mayúsculas. La mayoría de las bases de datos dispondrán de una función para convertir a mayúsculas. Por ejemplo, en Paradox:
'where upper(nombre) like "%' + UpperCase(Edit.Text) + '%"'
usando el upper de paradox y el uppercase de delphi para la cedena que viene del Edit, o bien
where upper(nombre) like upper("%' + Edit.Text + '%")'
usando el upper de paradox en ambas cadenas.
// Saludos
roman
17-11-2003, 21:09:42
Por cierto, para no confundirse con las comillas quizá convenga usar parámetros:
...
Query1.SQL.Add(
'where upper(nombre) like upper(:nombre)'
);
...
Query1.ParamByName('nombre').AsString := '%' + Edit1.Text + '%';
// Saludos
vBulletin v3.6.8, Derechos ©2000-2024, Jelsoft Enterprises Ltd.