Cita:
Empezado por ARPE
Hola, me temo que es cuestión de comillas y cuentan por ahí que es más eficiente "starting with" que "like xxx%".
La consulta quedaría algo así:
IBuscar.SQL.Add('SELECT IDENTIFICADOR, NOMBRE1, NOMBRE2, APELLIDO1, APELLIDO2, NOMCOMERCIAL FROM NOMBRE WHERE NOMBRE1 LIKE ''' + edit1.text + '%'' ORDER BY NOMBRE2');
Todo son comillas simples, pero cuentan que es mejor esta
IBuscar.SQL.Add('SELECT IDENTIFICADOR, NOMBRE1, NOMBRE2, APELLIDO1, APELLIDO2, NOMCOMERCIAL FROM NOMBRE WHERE NOMBRE1 starting with ''' + edit1.text + ''' ORDER BY NOMBRE2');
y lo malo como el usuario te escriba L'Andreu
saludos.
|
No sería mejor pasar el nombre por parámetros? No sé como funcionan estos componentes que usáis, pero en los IBDAC sería algo como:
Código:
IBuscar.SQL.Add('SELECT IDENTIFICADOR, NOMBRE1, NOMBRE2, APELLIDO1, APELLIDO2, NOMCOMERCIAL FROM NOMBRE WHERE NOMBRE1 starting with '':NOMBRE'' ORDER BY NOMBRE2');
IBuscar.ParamByName('NOMBRE').AsString:=edit1.text;
Así nos ahorramos los problemas de escribir L'Andreu y cosas similares...
Ah, observar que :NOMBRE no está entre comillas, está entre apostrofes... Las comillas producen el error que comentaba antes servicomp (el -206 de "Column not found")