Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > SQL
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

 
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 29-08-2005
Avatar de sakuragi
sakuragi sakuragi is offline
Miembro
 
Registrado: feb 2004
Ubicación: root
Posts: 1.435
Poder: 22
sakuragi Va por buen camino
Question Pasar consulta de FireBird a MS SQL server 2000

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;//Edit
     Codigo:='';//DECLARADA PRIVATE
     cadena:=TStringList.Create;//DECLARADA PRIVATE
       Query1.Close;
       with Query1.SQL do begin
         Clear;
         Add('select Codemp, Nombre, apellidos');//+column );
         Add('from empleados');//+tabla);
       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;{ else key:=  #0;}
   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
__________________
OpenSuse OpenOffice.org icomputo
Responder Con Cita
 



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro


La franja horaria es GMT +2. Ahora son las 21:08:41.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi