Escolar Documentos
Profissional Documentos
Cultura Documentos
Função criada com propósito de permitir busca incremental em mais de um campo em banco de dados com Delphi.
Apresentação / Declaração function SentencaBuscaIncremental(var aListaCampos, aComplWhere, aOrderBy: string; const aCampo, aOR_AND, aLimitador, aTexto: string):
TStringList;
aListaCampos --> listagem dos campos a serem exibidos no select do SQL, normalmente indo até instrução "FROM [TABELA]" nos casos simples, ou finalizando nos "JOINs"
em casos mais complexos. Uma definição mais simples seria tudo antes do "where".
aComplWhere --> Complemento do where principal, podendo englobar a instrução "Group by" nos casos necessários.
aCampo --> campo ou lista de campos, separados por vírgula (,), nos quais os critérios da busca serão aplicados.
aLimitador --> conjunto de caracteres que informam o limite entre os termos de busca.
aTexto --> cadeia de carecteres contendo os termos de busca.( separados pelo "delimitador" ou não)
s : TStringList;
begin
DMCadastros.Query_Pessoas.Close;
DMCadastros.Query_Pessoas.SQL.Clear;
DMCadastros.Query_Pessoas.ParamByName('limit').AsInteger := 100;
DMCadastros.Query_Pessoas.Open; ...
select * from pessoas where ((pessoas.nomerazao like '%no%') and (pessoas.nomerazao like '%t%') and (pessoas.nomerazao like '%au%') ) and
(pessoas.ativo = :ativo) union select * from pessoas where ((pessoas.fantasia like '%no%') and (pessoas.fantasia like '%t%') and (pessoas.fantasia like
'%au%') ) and (pessoas.ativo = :ativo) union select * from pessoas where ((pessoas.cnpj like '%no%') and (pessoas.cnpj like '%t%') and (pessoas.cnpj
like '%au%') ) and (pessoas.ativo = :ativo) order by nomerazao limit :limit .