Ver Mensaje Individual
  #9  
Antiguo 14-09-2010
mcs mcs is offline
Miembro
 
Registrado: may 2007
Ubicación: Girona
Posts: 229
Reputación: 20
mcs Va por buen camino
Cita:
Empezado por ARPE Ver Mensaje
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")
Responder Con Cita