PDA

Ver la Versión Completa : Un LIKE que no me gusta


gorsan
27-01-2008, 11:33:08
Hola forereros. De nuevo recurro a ustedes para plantearles una cuestion. Se trata de lo siguiente:
Vaya por delante que uso IBX6 y Delphi7.
Sobre un formulario tengo dos controles un Edit y un ComboBox. Se trata de hacer busquedas blandas sobre un determinado campo de una tabla que se haya encapsulada en un IBDataSet. En el control combo tengo los nombres de todos los campos de la tabla. En el control Edit es donde se iran introduciendo los caracteres alfanumericos para la busqueda blanda en funcion de el nombre del campo que haya elegido el usuario. El codigo esta escrito asi:

procedure TDMPersonas.Buscar(Campo, Texto : string);
begin
With IBPersonas do
try
DisableControls;
Close ;
SelectSQL.Clear;
SelectSQL.Add(FOriginalSQL);
if Texto = '' then
begin
Open;
Exit;
end;
SelectSQL.Add('WHERE '+Campo+' LIKE "'+Texto+ '%"' );
SelectSQL.Add('ORDER BY '+Campo);
Open ;
finally
EnableControls;
end;
end;


¿Porque falla esta consulta? Si introduzco, por ejemplo, G
Da error code -206 column unknown G%'

Muchas gracias por vuestras futuras respuestas.

basti
27-01-2008, 12:49:42
Las expresiones de texto deberían ir entre comillas simples:

SelectSQL.Add('WHERE '+Campo+' LIKE '+ QuotedStr(Texto+ '%') );
SelectSQL.Add('ORDER BY '+Campo);

gorsan
27-01-2008, 21:24:18
Ok. Ahora si va la consulta. Gracias.