hola que tal
encontre una funcion por aqui e los foros
pero viene en fireBird
no eh podido pasar una sentencia a ms sql.
este el codigo en FIREBIRD
Código SQL
[-]
select codemp,nombre,apellidos
from empleados
where (rtrim(nombre) ||'' ''|| rtrim(apellidos)) containing :data
:date es de
parambyname('data'+inttostr(n)).asstring:=cadena[n];
esto lo saque de la una consulta que se parese al winamp.
"containing" esta funcion de firebird no se como haser en MS sql para que funcione igual
bueno les pongo el codigo de toda la consulta tipo winamp hecha por
vtdeleon
Código Delphi
[-]
procedure Tfrmbuscar.FormCreate(Sender: TObject);
begin
vbusca.Clear; Codigo:=''; cadena:=TStringList.Create; Query1.Close;
with Query1.SQL do begin
Clear;
Add('select Codemp, Nombre, apellidos'); Add('from empleados'); end;
Query1.Open;
end;
procedure Tfrmbuscar.vbuscaKeyUp(Sender: TObject; var Key: Word;
Shift: TShiftState);
var
n:integer;
begin
if (Length(trim(vbusca.Text))>0) then
if key in [VkKeyScanA('A')..VkKeyScan('Z'), VkKeyScanA('0')..VkKeyScan('9'),
VK_BACK, vk_space, vk_delete] then begin
cadena.CommaText:=vbusca.Text;
with Query1 do begin
Close;
if cadena.Count<>nkey then begin
condi:=' (rtrim(nombre) ||'' ''|| rtrim(apellidos)) containing :data'+'0';
for n:= 1 to cadena.Count-1 do begin
condi:=condi +' and (rtrim(nombre) ||'' ''|| rtrim(apellidos)) containing :data'+inttostr(n);
end;
if SQL.Count>2 then
sql.Delete(2);
sql.Insert(2,'where '+condi);
end;
for n:=0 to ParamCount-1 do begin
ParamByName('data'+inttostr(n)).AsString:=cadena[n];
end;
nkey:=n;
if not Prepared then
Prepare;
Open;
end;
end;
end;
ya le he estado intentando hasrlo funcionar con ms sql pero me ha sido en bano
eh modificado mucho pero creo que el principal problem esta en
Código Delphi
[-]
condi:=' (rtrim(nombre) ||'' ''|| rtrim(apellidos)) containing :data'+'0'
si me equivoco espero me corrijan
lo e puesto asi
Código Delphi
[-]
condi:=' (rtrim(nombre)+'' ''+rtrim(apellidos));
me marca erro de parentecis =S
cual quier ayuda sera muy bien agradecida
gracias
saludos