Ir para conteúdo
Fórum Script Brasil
  • 0

Duvida Urgente


Guest - Juniorboll -

Pergunta

Guest - Juniorboll -

Ai fiz um programa com alias e table, so q na hr de consultar eu preciso de procurar pelo nome do fornecedor e entre uma data inicial e final, alguém poderia me ajudar como eu faria isso em delphi por favor???

Link para o comentário
Compartilhar em outros sites

18 respostass a esta questão

Posts Recomendados

  • 0
Guest Luiz Araujo

Alo JuniorBoll

você prim. deve preparar a tabela para receber todos estes dados, no form

e claro vai estar os edits on sera colocado as datas e nome, deve incluir um

componente Query, para pesquisa, no botão pesquisar você deve dar os comandos

de mudança deste query para pesquisa.

seria mais ou menos assim (vou tentar lembrar, qualquer diferença escrevo

depois)

begin

Query1.Close;

Query1.SQL.Clear;

Query1.SQL.Add('Select * From "C:\Onde esta o DB\arquivo.DB"');

Query1.SQL.Add('As arquivo.DB');

Query1.SQL.Add('Where (Nome="#39+Edit1.Text+#39") and (Data >= "

#39+Edit2.Text+#39") and (Data <= "#39+Edit3.Text+#39")');

Query1.Prepare;

Query1.Open;

end;

Espero que resolva

um abraço Luiz

Link para o comentário
Compartilhar em outros sites

  • 0

Alo JuniorBoll

Vou fazer alterações

begin

Query1.Close;

Query1.SQL.Clear;

Query1.SQL.Add('Select * From "C:\Onde esta o DB\arquivo.DB"');

Query1.SQL.Add('As arquivo');

Query1.SQL.Add('Where (Nome='#39+Edit1.Text+#39') and (Data >= '

#39+Edit2.Text+#39') and (Data <= '#39+Edit3.Text+#39')');

Query1.Prepare;

Query1.Open;

end;

Note que fiz alterações nas aspas dos edits e tirei o .DB em .Add('As...

Abraços Luiz dry.gif

Link para o comentário
Compartilhar em outros sites

  • 0

Fala Junior,

Se estiver usando TTable, tente definir índices para os campos e usar a propriedade Filter da tabela. Dá uma olhada no Help dessa parte de filtragem de tabelas no Delphi, tá muito bem explicadinho.

Caso estiver usando uma TQuery, clique com o botão direito neste componente e tente usar o SQLBuilder. Caso você tenha alguma experiência com Access, não será muito difícil usá-lo, bem prático.

Abs[]!

Snake.

Ps.: Se eu escrevi algo errado, por favor me corrijam.

Link para o comentário
Compartilhar em outros sites

  • 0

Luiz como eu vo chamar um outro form num ficaria assim não

begin

form2.Query1.Close;

form2.Query1.SQL.Clear;

form2.Query1.SQL.Add('Select * From "C:\Onde esta o DB\arquivo.DB"');

form2.Query1.SQL.Add('As arquivo');

form2.Query1.SQL.Add('Where (Nome='#39+Edit1.Text+#39') and (Data >= '

#39+Edit2.Text+#39') and (Data <= '#39+Edit3.Text+#39')');

form2.Query1.Prepare;form2.

form2.Query1.Open;

end;

mas ai se eu faço isso eu num consigo fazer funcionar, onde eu devo colocar esse codigo?

Link para o comentário
Compartilhar em outros sites

  • 0

Olá junior,

num sei se entendi, mas você quer rodor essa Query e abrir o form? é isso?

se for, faz assim:

begin

form2 := Tform2.Create(Self);

form2.Query1.Close;

form2.Query1.SQL.Clear;

form2.Query1.SQL.Add('Select * From "C:\Onde esta o DB\arquivo.DB"');

form2.Query1.SQL.Add('As arquivo');

form2.Query1.SQL.Add('Where Nome = '+#39+Edit1.Text+#39+' and Data between '+#39+Edit2.Text+#39+' and '+#39+Edit3.Text+#39+'');

form2.Query1.Open;

form2.ShowModal;

form2.Free;

end;

o seu código tinha alguns erros

nessa linha aqui o q significa o #39?

#39 é o código ASCII para aspas, poderia ser assim: 'Where Nome = '+''''+Edit1.Text+''''+' and...

Abs. Progr'amador. wink.gif

Link para o comentário
Compartilhar em outros sites

  • 0
use between ao invés de usar <= >=;

where data between '00/00/00' and '00/00/00'

Mas como eu vou usar o between com o edit?

invés deu por a data igual você pos é so eu cologar

where data between 'edit1.text' and edit2.text

O fato de se usar a função between não impede de usar edit!

o exemplo que lhe passei funciona.

desculpe mas não estou lhe entendendo. blink.gif

Abs. Progr'amador.

Link para o comentário
Compartilhar em outros sites

  • 0

Olá Junior para fazer as minhas consultas entre datas eu utilizo a seguinte rotina:

        DmDados.Alunos.Close;
        DmDados.Alunos.SQL.Clear;
        DmDados.Alunos.SQL.Add('Select * From Alunos');
        DmDados.Alunos.SQL.Add('Where DataNasc between :Inicial and :Final');
        DmDados.Alunos.Parameters.ParamByName('Inicial').Value := StrToDate(EdtInicial.Text);
        DmDados.Alunos.Parameters.ParamByName('Final').Value := StrToDate(EdtFinal.text);
        DmDados.Alunos.SQL.Add('Order By Codigo');
        DmDados.Alunos.Open;

Lembrando que DmDados é o local onde se encontra a minha query, Alunos é a minha tabela no banco de dados, DataNasc é o campo onde estou efetuando a consulta e INICIAl e FINAL são parametros que recebem os valores para as pesquisas.

A rotina que o Progr'amador passou tb funciona

Alexandre

Aki funciona beleza.

Link para o comentário
Compartilhar em outros sites

  • 0

Então, Tenta assim:

Query1.SQL.Add('Where Nome = '+#39+ Edit1.Text +#39+' and Data between Format('+#39+Edit2.Text+#39+',''dd/mm/yyyy'') and Format('+#39+Edit3.Text+#39+',''dd/mm/yyyy'')');

Obs: onde você ver duas aspas (''), são duas aspas simples, NÂO é aspas duplas NÂO.

Abs. Progr'amador.

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,4k
×
×
  • Criar Novo...