Fórum Preciso fazer uma consulta SQL mais sem passar por parametro #365479
25/10/2008
0
Pessoal, não estou conseguindo retornar nada nesta consulta SQL
E por parametros eu não posso passar pq esta tabela já vem filtrando outros dados e se eu incluir mais um parametro ele não traz os resultados que eu necessito.
var
texto: string;
begin
{:Primeiro passo os dados para serem filtrados no edit com mais de um nome e com espaços
serve para filtrar tipo assim ADR SERV, JOAO DE S.... etc}
if Trim(edtBusca.text) = ´´ then
Exit;
texto := AnsiUpperCase(StringReplace(TrimRight(edtBusca.text),´ ´,´¬ ´,[rfReplaceAll]))+´¬´;
{:Aqui faço novamente o select agora passando por parametros}
{:Obs Este select já esta cadastrado do DM com o parametro para o CDS reconheçer o parametro "ASSOCIADO"}
with ibEmpresas do
begin
Close;
CommandText := ´select distinct(a.cdempresa), ´+
´ a.nmempresa, ´+
´ b.idusuario, ´+
´ b.marcarbox ´+
´ from empresa a ´+
´ left join permissoesuser b ON (a.cdempresa = b.idempresa) ´+
´ where ´+
´ b.idusuario = a.idusuario and ´+
´ upper(a.nmempresa) like ´+QuotedSTR(AnsiUpperCase(Texto))+
´ order by nmempresa ´;
//Params[0].AsString := AnsiUpperCase(Texto);
Open;
if IsEmpty then
MessageDlg(´Não existe dados para esta pesquisa´, mtInformation, [mbOK], 0);
Abort;
end; E por parametros eu não posso passar pq esta tabela já vem filtrando outros dados e se eu incluir mais um parametro ele não traz os resultados que eu necessito.
Adriano_servitec
Curtir tópico
+ 0
Responder
Posts
25/10/2008
Adriano_servitec
Consegui resolver desta forma aqui
with ibEmpresas do begin ibEmpresas.Filtered := False; if (edtBusca.Text <> ´´) then begin ibEmpresas.Filter := ´nmEmpresa=´ +QuotedStr(AnsiUpperCase(edtBusca.Text + ´*´)); ibEmpresas.FilterOptions:=[foCaseInsensitive]; ibEmpresas.Filtered:=true; end else if ibEmpresas.IsEmpty then MessageDlg(´Não existe dados para esta pesquisa´, mtInformation, [mbOK], 0); Abort; end;
Responder
Gostei + 0
27/10/2008
Adriano_servitec
Alias nem precisa desta linha aqui neste código, é que estava no outro do SQL, mais se tiver algum que trata a meam mensagem gostaria de saber qual colocar ai no lugar desta ai.
Outra duvida é que estou usando no onChange do edit, e gostaria de saber como retorno todos os dados novamente quando deixar o edit limpo.
E também se possivel saber como fazer uma consulta dom mais de uma letra no dbgrid com espaços entre elas, como fiz em SQL.
Desculpe tantas perguntas, mais sempre usei SQL em vez de filter.
Grato, adriano
else if ibEmpresas.IsEmpty then MessageDlg(´Não existe dados para esta pesquisa´, mtInformation, [mbOK], 0); Abort;
Outra duvida é que estou usando no onChange do edit, e gostaria de saber como retorno todos os dados novamente quando deixar o edit limpo.
E também se possivel saber como fazer uma consulta dom mais de uma letra no dbgrid com espaços entre elas, como fiz em SQL.
Desculpe tantas perguntas, mais sempre usei SQL em vez de filter.
Grato, adriano
Responder
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)