PDA

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