Ir al contenido



Foto

[RESUELTO] Accent Insensitive no access?


  • Por favor identifícate para responder
30 respuestas en este tema

#1 adriano_servitec

adriano_servitec

    Advanced Member

  • Miembros
  • PipPipPip
  • 91 mensajes
  • LocationCuritiba-Pr - Brasil

Escrito 06 enero 2011 - 04:51

Amigos del foro, exists Accent Insensitive no Access?

Gracias.



  • 0

#2 Rolphy Reyes

Rolphy Reyes

    Advanced Member

  • Moderadores
  • PipPipPip
  • 2.091 mensajes
  • LocationRepública Dominicana

Escrito 06 enero 2011 - 06:30

Saludos.

No entiendo nada lo que andas buscando.

Alguna función Acento Incentivos para Delphi o alguna BD?
  • 0

#3 adriano_servitec

adriano_servitec

    Advanced Member

  • Miembros
  • PipPipPip
  • 91 mensajes
  • LocationCuritiba-Pr - Brasil

Escrito 06 enero 2011 - 06:37

Saludos.

No entiendo nada lo que andas buscando.

Alguna función Acento Incentivos para Delphi o alguna BD?

Si busco acento Incencitive no MS-ACCESS

Deves ignorar acentos en filter, exists uma manera?


Lo sentimos que he publicado en el foro error.
  • 0

#4 Caral

Caral

    Advanced Member

  • Administrador
  • 4.241 mensajes
  • LocationCosta Rica

Escrito 06 enero 2011 - 07:08

Hola
Que yo sepa no existe pero tampoco se necesita.
Saludos
  • 0

#5 adriano_servitec

adriano_servitec

    Advanced Member

  • Miembros
  • PipPipPip
  • 91 mensajes
  • LocationCuritiba-Pr - Brasil

Escrito 06 enero 2011 - 07:14

Hola
Que yo sepa no existe pero tampoco se necesita.
Saludos

necesito que el sistema de filtro para ignorar las palabras con acentos.

Ex: PARANÁ --> No ACCESS no filter o Á, i necesito que filter o Á tambien.

SÃO PAULO --> No ACCESS no filter Ã, i necesito que filter tambien.

Gracias.
  • 0

#6 fredycc

fredycc

    Advanced Member

  • Moderadores
  • PipPipPip
  • 874 mensajes
  • LocationOaxaca, México

Escrito 06 enero 2011 - 09:27

Creo q te convendría usar la función soundex, para buscar por la fonética de la palabara, pero hasta donde sé hay q hacer adaptaciones propios del idioma q uses, ms sql server y oracle hasta donde investige te pueden ayudar.

Saludos
  • 0

#7 fredycc

fredycc

    Advanced Member

  • Moderadores
  • PipPipPip
  • 874 mensajes
  • LocationOaxaca, México

Escrito 06 enero 2011 - 09:34

Encontré un código interesante en el siguiente link, posibles adaptaciones habría q hacerle para que funcione como se quiere: http://www.delphi300...cle.asp?ID=1607



delphi
  1. {******************************************************}
  2. {* Description: Implementation of Soundex function    *}
  3. {******************************************************}
  4. {* Last Modified : 12-Nov-2000                        *}
  5. {* Author        : Paramjeet Singh Reen              *}
  6. {* eMail        : Paramjeet.Reen@EudoraMail.com      *}
  7. {******************************************************}
  8. {* This program is based on the algorithm that I had  *}
  9. {* found in a magazine. I do not gurantee the fitness *}
  10. {* of this program. Please use it at your own risk.  *}
  11. {******************************************************}
  12. {* Category :Freeware.                                *}
  13. {******************************************************}
  14.  
  15. unit Soundx;
  16.  
  17. interface
  18.  
  19. type
  20.   SoundexStr = String[4];
  21.  
  22. //Returns the Soundex code for the specified string.
  23. function Soundex(const InpStr :ShortString):SoundexStr;
  24.  
  25. implementation
  26.  
  27. const
  28.   Alphs :array['A'..'Z'] of Char = ('0','1','2','3','0','1','2','0','0','2','2',
  29.                                     '4','5','5','0','1','2','6','2','3','0','1',
  30.                                     '0','2','0','2');
  31.  
  32. function Soundex(const InpStr :ShortString) :SoundexStr;
  33. var
  34.   vStr :ShortString;
  35.   vCh1 :Char;
  36.   i    :Word;
  37.  
  38. begin
  39.   //Store the given InpStr in local variable in uppercase
  40.   vStr := '';
  41.   for i := 1 to Length(InpStr) do vStr := vStr + UpCase(InpStr[i]);
  42.  
  43.   //Replace all occurances of "PH" with "F"
  44.   i := Pos('PH',vStr);
  45.   while(i > 0) do
  46.   begin
  47.     Delete(vStr,i,2);
  48.     Insert('F',vStr,i);
  49.     i := Pos('PH',vStr);
  50.   end;
  51.  
  52.   //Replace all occurances of "CHR" with "CR"
  53.   i := Pos('CHR',vStr);
  54.   while(i > 0) do
  55.   begin
  56.     Delete(vStr,i,3);
  57.     Insert('CR',vStr,i);
  58.     i := Pos('CHR',vStr);
  59.   end;
  60.  
  61.   //Replace all occurances of "Z" with "S"
  62.   for i := 1 to Length(vStr) do
  63.     if(vStr[i] = 'Z')
  64.       then vStr[i] := 'S';
  65.  
  66.   //Replace all occurances of "X" with "KS"
  67.   i := Pos('X',vStr);
  68.   while(i > 0) do
  69.   begin
  70.     Delete(vStr,i,1);
  71.     Insert('KS',vStr,i);
  72.     i := Pos('X',vStr);
  73.   end;
  74.  
  75.   //Remove all adjacent duplicates
  76.   i := 2;
  77.   while(i <= Length(vStr))do
  78.     if(vStr[i] = vStr[i-1])
  79.       then Delete(vStr,i,1)
  80.       else Inc(i);
  81.  
  82.   //Starting from 2nd char, remove all chars mapped to &#39;0&#39; in Alphs table
  83.   i := 2;
  84.   while(i <= Length(vStr))do
  85.     if(Alphs[vStr[i]] = &#39;0&#39;)
  86.       then Delete(vStr,i,1)
  87.       else Inc(i);
  88.  
  89.   //Assemble Soundex string from Alphs table
  90.   vCh1  := vStr[1];
  91.   for i := 1 to Length(vStr) do vStr[i] := Alphs[vStr[i]];
  92.  
  93.   //Remove all adjacent duplicates from assembled Soundex string
  94.   i := 2;
  95.   while(i <= Length(vStr))do
  96.     if(vStr[i] = vStr[i-1])
  97.       then Delete(vStr,i,1)
  98.       else Inc(i);
  99.  
  100.   //Final assembly of Soundex string
  101.   vStr    := vCh1 + Copy(vStr,2,255);
  102.   for:= Length(vStr) to 3 do vStr := vStr + &#39;0&#39;;
  103.   Soundex := vStr;
  104. end;
  105.  
  106. end.



Desconozco del tema pero esta interesante, espero y este orientado a tu cuestionamiento.

La ventaja de este código podría ser: incorporarlo a tu aplicación cliente o bien a un motor de base de datos que te permita definir funciones.

Saludos.
  • 0

#8 cHackAll

cHackAll

    Advanced Member

  • Administrador
  • 598 mensajes

Escrito 06 enero 2011 - 09:49



sql
  1. SELECT * FROM tabla WHERE campo BETWEEN 'palabra' AND 'palabraZ' AND campo LIKE '???????'


  • 0

#9 adriano_servitec

adriano_servitec

    Advanced Member

  • Miembros
  • PipPipPip
  • 91 mensajes
  • LocationCuritiba-Pr - Brasil

Escrito 06 enero 2011 - 11:22

gracias Pessoal...

No entendi esta sintaxe


sql
  1. SELECT * FROM tabla WHERE campo BETWEEN 'palabra' AND 'palabraZ' AND campo LIKE '???????'




  • 0

#10 cHackAll

cHackAll

    Advanced Member

  • Administrador
  • 598 mensajes

Escrito 06 enero 2011 - 11:55

gracias Pessoal...

No entendi esta sintaxe


sql
  1. SELECT * FROM tabla WHERE campo BETWEEN 'palabra' AND 'palabraZ' AND campo LIKE '???????'




Revisa el adjunto.
Saludos
  • 0

#11 Master23

Master23

    Advanced Member

  • Miembro Platino
  • PipPipPip
  • 230 mensajes
  • LocationSanto Domingo

Escrito 06 enero 2011 - 01:10



delphi
  1. select campo from tabla where nombre_del_campo_en_en_donde_buscaras_ej_nombre like  '"'+edit1.text+'"';


eso es si quieres que sean todos los campos que tengan algo parecido o tenga las letras que busca en otra cosa usa este que solo filtra un nombre en especifico.



delphi
  1. select campo from tabla where nombre_del_campo_en_en_donde_buscaras_ej_nombre =  '"'+edit1.text+'"';



el edit puedes cambiarlo por algo estático si es que quieres buscar algo directo o bien si usas un edit para el buscador pones el nombre de ese edit con su propiedad text,espero que te sirva. si no lo que te sugiero es que crees una funcion que sustituya esos caracteres por los normales por ejemplo la función



delphi
  1. procedure TForm1.Button1Click(Sender: TObject); var a:string;
  2. begin a:=StringReplace(edit1.Text, 'ñ', 'n',  [rfReplaceAll, rfIgnoreCase]);     
  3.     edit1.Text := a; showmessage(a);
  4. end;



esta función sustituye las ñ que que escribes en el edit por n, si deseas que seas por otras solo tienes que adaptarla y puedes usarla las veces que sea necesario.
  • 0

#12 adriano_servitec

adriano_servitec

    Advanced Member

  • Miembros
  • PipPipPip
  • 91 mensajes
  • LocationCuritiba-Pr - Brasil

Escrito 07 enero 2011 - 08:12

Hola pessoal,
Al ver los códigos de postados ...  intentado hacer assí

delphi
  1. unit Unit1; interface uses
  2.   Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  3.   Dialogs, DB, ADODB, Grids, DBGrids, StdCtrls; type
  4.   TForm1 = class(TForm)
  5.     DBGrid1: TDBGrid;
  6.     DataSource1: TDataSource;
  7.     Button1: TButton;
  8.     ADOConnection1: TADOConnection;
  9.     ADOQuery1: TADOQuery;
  10.     EdiPesquisa: TEdit;
  11.     procedure Button1Click(Sender: TObject);
  12.   private
  13.     { Private declarations }
  14.   public
  15.     { Public declarations }
  16.   end; var
  17.   Form1: TForm1;  implementation {$R *.dfm}
  18. function Tiraacento(Str: string): string;
  19. const
  20.   ComAcento = 'àâêôûãõáéíóúçüÀÂÊÔÛÃÕÁÉÍÓÚÇÜ';
  21.   SemAcento = 'aaeouaoaeioucuAAEOUAOAEIOUCU';
  22. var
  23.   x: Integer;
  24. begin;
  25.   for x := 1 to Length(Str) do
  26.     if Pos(Str[x],ComAcento) <> 0 then
  27.       Str[x] := SemAcento[Pos(Str[x], ComAcento)];
  28.   Result := Str;
  29. end; function ColocaAcento(str: String): String;
  30. const
  31.   ComAcento = 'àâêôûãõáéíóúçüÀÂÊÔÛÃÕÁÉÍÓÚÇÜ';
  32.   SemAcento = 'aaeouaoaeioucuAAEOUAOAEIOUCU';
  33. var
  34.   x: Integer;
  35. begin;
  36.   for x := 1 to Length(Str) do
  37.     if Pos(Str[x],SemAcento) <> 0 then
  38.       Str[x] := ComAcento[Pos(Str[x], SemAcento)];
  39.   Result := Str;
  40. end; procedure TForm1.Button1Click(Sender: TObject);
  41. begin
  42.   ADOQuery1.Close;
  43.   ADOQuery1.SQL.Clear;
  44.   ADOQuery1.SQL.Add('Select * From crdUf WHERE crdUf.descricao LIKE ''%' + Tiraacento(EdiPesquisa.Text) + '%'' OR crdUf.descricao LIKE ''%' + ColocaAcento(EdiPesquisa.Text) + '%'' OR crdUf.descricao LIKE ''%' + EdiPesquisa.Text + '%''');
  45.   ADOQuery1.Open;
  46. end; end. 

Más no funcionó correctamente.  Alguna sugerencia?  Saludos
  • 0

#13 egostar

egostar

    missing my father, I love my mother.

  • Administrador
  • 13.948 mensajes
  • LocationMéxico

Escrito 07 enero 2011 - 08:41

Hola adriano_servitec

¿ Ya revisaste el ejemplo de cHackAll ? A mi me parece que es lo que necesitas.

Salud OS
  • 0

#14 adriano_servitec

adriano_servitec

    Advanced Member

  • Miembros
  • PipPipPip
  • 91 mensajes
  • LocationCuritiba-Pr - Brasil

Escrito 07 enero 2011 - 10:45

Sorry, no conhecia a palabla "Revisa el adjunto" = ANEXO in Brasil.  :embarrassed:

Segue...

Tiene que ver esto en Edit?

Tengo palabras NO MDB

PARÁ
PARANÁ
PARAÍBA
SÃO PAULO
....

I no pued hacer no excemplo.



delphi
  1. procedure TForm1.Button2Click(Sender: TObject);
  2. begin
  3. FillList('SELECT * FROM tabla WHERE (campo BETWEEN ''para'' AND ''paranaZ'') AND (campo LIKE ''_____'')');
  4. end;



No filter assí como fiz.

Saludos
  • 0

#15 cHackAll

cHackAll

    Advanced Member

  • Administrador
  • 598 mensajes

Escrito 07 enero 2011 - 11:59



delphi
  1. procedure TForm1.Edit1Change(Sender: TObject);
  2. var i: Integer; str: string;
  3. begin
  4. str := '';
  5. for i := 1 to Length(Edit1.Text) do str := str + '_';
  6. FillList('SELECT * FROM tabla WHERE (campo BETWEEN ''' + Edit1.Text + ''' AND ''' + Edit1.Text + 'Z'') AND (campo LIKE ''' + str + ''')');
  7. end;


  • 0

#16 adriano_servitec

adriano_servitec

    Advanced Member

  • Miembros
  • PipPipPip
  • 91 mensajes
  • LocationCuritiba-Pr - Brasil

Escrito 07 enero 2011 - 12:16

Perfect amigo... Mutias Gracias...

Result final


delphi
  1. procedure TForm1.EdiPesquisaChange(Sender: TObject);
  2. var
  3. i: Integer;
  4. str: String;
  5. begin
  6.   str := EmptyStr;
  7.   for i := 1 to Length(EdiPesquisa.Text) do
  8.     str := str + '_';
  9.   if EdiPesquisa.Text <> EmptyStr then
  10.   begin
  11.     ADOQuery1.Close;
  12.     ADOQuery1.SQL.Clear;
  13.     ADOQuery1.SQL.Add('Select * From crdUf WHERE (crdUf.descricao BETWEEN :BUSCA_INI AND :BUSCA_FIN) ');
  14.     ADOQuery1.SQL.Add(' AND (crdUf.descricao LIKE :LIMITESPACO) ');
  15.     ADOQuery1.Parameters.ParamByName('BUSCA_INI').Value :=  EdiPesquisa.Text;
  16.     ADOQuery1.Parameters.ParamByName('BUSCA_FIN').Value :=  EdiPesquisa.Text + 'Z';
  17.     ADOQuery1.Parameters.ParamByName('LIMITESPACO').Value := str +'%'; //Acrescentei o CURINGA para tazer todos na list
  18.     ADOQuery1.Open;
  19.   end else
  20.   begin
  21.     ADOQuery1.Close;
  22.     ADOQuery1.SQL.Clear;
  23.     ADOQuery1.SQL.Add('Select * From crdUf ');
  24.     ADOQuery1.Open;
  25.   end;
  26. end;



:smiley:
  • 0

#17 adriano_servitec

adriano_servitec

    Advanced Member

  • Miembros
  • PipPipPip
  • 91 mensajes
  • LocationCuritiba-Pr - Brasil

Escrito 07 enero 2011 - 01:09

extrañamente no filtra adecuadamente estos dos aquí

AMAPÁ
y
AMAZONAS

No Edit escrevo : AMA

return in grid

AMAPÁ

No apareció
AMAZONAS




  • 0

#18 adriano_servitec

adriano_servitec

    Advanced Member

  • Miembros
  • PipPipPip
  • 91 mensajes
  • LocationCuritiba-Pr - Brasil

Escrito 07 enero 2011 - 01:37

Otra duda:

No hay manera de utilizar el comodín de la variable?

Exemplo:


delphi
  1. unit Unit1;
  2. interface
  3. uses
  4.   Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  5.   Dialogs, DB, ADODB, Grids, DBGrids, StdCtrls, Tabs,
  6.   ExtCtrls, ComCtrls, Buttons, XPMan;
  7. type
  8.   TForm1 = class(TForm)
  9.     DBGrid1: TDBGrid;
  10.     DataSource1: TDataSource;
  11.     ADOConnection1: TADOConnection;
  12.     ADOQuery1: TADOQuery;
  13.     pnlFiltro: TPanel;
  14.     lblFiltrar: TLabel;
  15.     bttFiltrar: TButton;
  16.     EdtPesquisa: TEdit;
  17.     pButton: TPanel;
  18.     SpeedButton1: TSpeedButton;
  19.     SpeedButton2: TSpeedButton;
  20.     SpeedButton3: TSpeedButton;
  21.     SpeedButton4: TSpeedButton;
  22.     SpeedButton5: TSpeedButton;
  23.     SpeedButton6: TSpeedButton;
  24.     SpeedButton7: TSpeedButton;
  25.     SpeedButton8: TSpeedButton;
  26.     SpeedButton9: TSpeedButton;
  27.     SpeedButton10: TSpeedButton;
  28.     SpeedButton11: TSpeedButton;
  29.     SpeedButton12: TSpeedButton;
  30.     SpeedButton13: TSpeedButton;
  31.     SpeedButton14: TSpeedButton;
  32.     StatusBar1: TStatusBar;
  33.     procedure EdtPesquisaChange(Sender: TObject);
  34.     procedure bttFiltrarClick(Sender: TObject);
  35.   private
  36.     procedure AccessInsensitive(qQuery: TADOQuery; sEdtPesquisa: TEdit; TipoFilter: Integer);
  37.     { Private declarations }
  38.   public
  39.     { Public declarations }
  40.   end;
  41. var
  42.   Form1: TForm1;
  43. implementation
  44. {$R *.dfm}
  45. procedure TForm1.AccessInsensitive(qQuery: TADOQuery; sEdtPesquisa: TEdit; TipoFilter: Integer);
  46. var
  47. i: Integer;
  48. str: String;
  49. begin
  50.   str := EmptyStr;
  51.   for i := 1 to Length(sEdtPesquisa.Text) do
  52.     str := str + '_';
  53.   if TipoFilter = 0 then // Então o filter é pelo texto no change do Edit (INICIA COM)
  54.   begin
  55.     if sEdtPesquisa.Text <> EmptyStr then
  56.     begin
  57.       qQuery.Close;
  58.       qQuery.SQL.Clear;
  59.       qQuery.SQL.Add('Select * From crdUf WHERE (crdUf.descricao BETWEEN :BUSCA_INI AND :BUSCA_FIN) ');
  60.       qQuery.SQL.Add(' AND (crdUf.descricao LIKE :LIMITESPACO) ');
  61.       qQuery.Parameters.ParamByName('BUSCA_INI').Value :=  EdtPesquisa.Text;
  62.       qQuery.Parameters.ParamByName('BUSCA_FIN').Value :=  EdtPesquisa.Text + 'Z'; // Este Z significa um delimitador de caracteres
  63.                                                                                       // para ser contado 1 char a mais depois do STR
  64.       qQuery.Parameters.ParamByName('LIMITESPACO').Value := str +'%';
  65.       qQuery.Open;
  66.     end else
  67.     begin
  68.       qQuery.Close;
  69.       qQuery.SQL.Clear;
  70.       qQuery.SQL.Add('Select * From crdUf order by descricao ');
  71.       qQuery.Open;
  72.     end;
  73.   end else
  74.   if TipoFilter = 1 then // Então o filter é o texto do Edit pelo button (CONTENDO)
  75.   begin
  76.     if sEdtPesquisa.Text <> EmptyStr then
  77.     begin
  78.       qQuery.Close;
  79.       qQuery.SQL.Clear;
  80.       qQuery.SQL.Add('Select * From crdUf WHERE (crdUf.descricao BETWEEN :BUSCA_INI AND :BUSCA_FIN) ');
  81.       qQuery.SQL.Add(' AND (crdUf.descricao LIKE :LIMITESPACO) ');
  82.       qQuery.Parameters.ParamByName('BUSCA_INI').Value :=  EdtPesquisa.Text;
  83.       qQuery.Parameters.ParamByName('BUSCA_FIN').Value :=  EdtPesquisa.Text + 'Z'; // Este Z significa um delimitador de caracteres
  84.                                                                                       // para ser contado 1 char a mais depois do STR
  85.       qQuery.Parameters.ParamByName('LIMITESPACO').Value := '%'+ str +'%';
  86.       qQuery.Open;
  87.     end else
  88.     begin
  89.       qQuery.Close;
  90.       qQuery.SQL.Clear;
  91.       qQuery.SQL.Add('Select * From crdUf order by descricao ');
  92.       qQuery.Open;
  93.     end;
  94.   end;
  95. end;
  96. procedure TForm1.EdtPesquisaChange(Sender: TObject);
  97. begin
  98.   AccessInsensitive(ADOQuery1,EdtPesquisa,0);
  99. end;
  100. procedure TForm1.bttFiltrarClick(Sender: TObject);
  101. begin
  102.   Tag := 1;
  103.   AccessInsensitive(ADOQuery1,EdtPesquisa,Tag);
  104. end;
  105. end.



Saludos
  • 0

#19 cHackAll

cHackAll

    Advanced Member

  • Administrador
  • 598 mensajes

Escrito 07 enero 2011 - 02:22

Se me ocurre;



delphi
  1. FillList('select * from tabla where ((campo between ''' + Edit1.Text + ''' and ''' + Edit1.Text + 'Z'') and (campo like ''' + str + '%'')) or (campo like ''' + Edit1.Text + '%'')');


  • 0

#20 adriano_servitec

adriano_servitec

    Advanced Member

  • Miembros
  • PipPipPip
  • 91 mensajes
  • LocationCuritiba-Pr - Brasil

Escrito 07 enero 2011 - 07:40

Se me ocurre;



delphi
  1. FillList('select * from tabla where ((campo between ''' + Edit1.Text + ''' and ''' + Edit1.Text + 'Z'') and (campo like ''' + str + '%'')) or (campo like ''' + Edit1.Text + '%'')');



Perfect cHackAll  (y)

Result final


delphi
  1. procedure TForm1.AccessInsensitive(qQuery: TADOQuery; sEdtPesquisa: TEdit; TipoFilter: Integer);
  2. var
  3. i: Integer;
  4. str: String;
  5. begin
  6.   str := EmptyStr;
  7.   for i := 1 to Length(sEdtPesquisa.Text) do
  8.     str := str + '_';
  9.   if TipoFilter = 0 then // Então o filter é pelo texto no change do Edit (INICIA COM)
  10.   begin
  11.     if sEdtPesquisa.Text <> EmptyStr then
  12.     begin
  13.       qQuery.Close;
  14.       qQuery.SQL.Clear;
  15.       qQuery.SQL.Add(' SELECT * from tabla WHERE (campo BETWEEN :BUSCA_INI AND :BUSCA_FIN) ');
  16.       qQuery.SQL.Add(' AND (campo LIKE :LIMITESPACO) ');
  17.       qQuery.SQL.Add('  OR (campo like :ESCRITEDIT)  ');
  18.       qQuery.Parameters.ParamByName('BUSCA_INI').Value :=  EdtPesquisa.Text;
  19.       qQuery.Parameters.ParamByName('BUSCA_FIN').Value :=  EdtPesquisa.Text + 'Z';
  20.       qQuery.Parameters.ParamByName('LIMITESPACO').Value := str +'%';
  21.       qQuery.Parameters.ParamByName('ESCRITEDIT').Value := EdtPesquisa.Text + '%';
  22.       qQuery.Open;
  23.     end else
  24.     begin
  25.       qQuery.Close;
  26.       qQuery.SQL.Clear;
  27.       qQuery.SQL.Add('Select * From tabla order by campo ');
  28.       qQuery.Open;
  29.     end;
  30.   end else
  31.   if TipoFilter = 1 then // Então o filter é o texto do Edit pelo button (CONTENDO)
  32.   begin
  33.     if sEdtPesquisa.Text <> EmptyStr then
  34.     begin
  35.       qQuery.Close;
  36.       qQuery.SQL.Clear;
  37.       qQuery.SQL.Add(' SELECT * from tabla WHERE (campo BETWEEN :BUSCA_INI AND :BUSCA_FIN) ');
  38.       qQuery.SQL.Add(' AND (campo LIKE :LIMITESPACO) ');
  39.       qQuery.SQL.Add('  OR (campo like :ESCRITEDIT)  ');
  40.       qQuery.Parameters.ParamByName('BUSCA_INI').Value :=  EdtPesquisa.Text;
  41.       qQuery.Parameters.ParamByName('BUSCA_FIN').Value :=  EdtPesquisa.Text + 'Z';
  42.       qQuery.Parameters.ParamByName('LIMITESPACO').Value := '%'+ str +'%';
  43.       qQuery.Parameters.ParamByName('ESCRITEDIT').Value := '%'+ EdtPesquisa.Text + '%';
  44.       qQuery.Open;
  45.     end else
  46.     begin
  47.       qQuery.Close;
  48.       qQuery.SQL.Clear;
  49.       qQuery.SQL.Add('select * from tabla order by campo ');
  50.       qQuery.Open;
  51.     end;
  52.   end;
  53. end;



Agora sí estas perfect amigo.

Muchas gracias.
  • 0