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

(Resolvido) Select com query da paleta bde


Guest --Carlos --

Pergunta

Guest --Carlos --

Boa noite pessoal, preciso da ajuda de vocês.

não sou muito adepto ao paradox mas estou tendo que trabalhar com ele

with query do

begin

sql.clear;

sql.add('Select * from tb_clientes where data da emissão between PARAMETRO1 AND Parametro2 ');

parameters.parambyname('PARAMETRO1').value := datetostr(now);

parameters.parambyname('PARAMETRO2').value := datetostr(now);

open;

end;

eu não consigo fazer uma consulta simples assim no paradox, esta me dando erros, se eu retiro os parametros ele passa sem erro.

se eu tento concatenar com aspas ao invés de parametros dá erro.

gostaria da ajuda dos amigos já habituados nesta ferramenta.

grato desde já

saudações

Link para o comentário
Compartilhar em outros sites

8 respostass a esta questão

Posts Recomendados

  • 0

Ola,

Esse campo "data da emissão" é do tipo data (DateTime) mesmo?

faz assim:

with query do
begin
   Close;
   SQL.Clear;
   SQL.Add('Select * from tb_clientes where data da emissão between :PARAMETRO1 AND :PARAMETRO2 ');
   ParamByName('PARAMETRO1').AsDateTime := now;
   ParamByName('PARAMETRO2').AsDateTime := now;
   Open;
end;

PS: procure não usar espaços nem acentos no nome de campo, tipo: data_da_emissao ou até mesmo: data_emissao, no meu caso eu gosto mesmo é assim: dt_emissao, dtEmissao

Abs. Progr'amador.

Editado por Progr'amador
Link para o comentário
Compartilhar em outros sites

  • 0
Guest --Carlos --

Bom dia Progr'amador

Eu acho que o erro é justamente este campo com caracter especial "data da emissão"

acontece que não fui eu quem fiz esta tabela, e não posso alterar o nome dela, porque existe um outro software que utiliza esta tabela também..

cara..

no lugar deste parametro eu já coloquei variavel...tipo string...tipo datetime... formatei 'yyyy/mm/dd' ....'mm/dd/yyyy'...entre outros..

já concatenei direto a data dentro do select sem os parametros...

existe registros, mas ele me retorna 0....e quando não retorna zero...tipo faço um between q tem q retornar um registro ele retorna 2000 e poucos registros...

Cara não sei como alguém consegue trabalhar com este banco...e com nome de campos assim..

mas eu preciso...risos..

tentei também tirar o between e colocar na clausula where <= data ou >= data2...

por se tratar de um campo da tabela que tem caracter especial...a forma que eu o chamo no select é esta mesma ?

procedure TForm1.Button1Click(Sender: TObject);
var
   teste : integer;
   data1, data2 : tDateTime;
begin
      data1 := strTodate('01/01/2000');
      data2 := strTodate('01/01/2009');
      ShortDateFormat := 'mm/dd/yyyy';
      Query1.sql.Clear;
      Query1.sql.Add('Select * from dbvendas where "data da emissão" >= '''+datetostr(data1)+''' and "data da emissão" <= '''+datetostr(data2)+''' ');
      Query1.Open;
      teste := Query1.recordcount;
   showmessage(inttostr(teste));
end;

cara isto não vai nem com reza brava...

obrigado aos amigos dispostos a ajudar.

Link para o comentário
Compartilhar em outros sites

  • 0
cara isto não vai nem com reza brava...

Carlos, Tenta desta forma.

with Query1 do
begin
    Close;
    Sql.Clear;
    Sql.Add('Select * from Tabela');
    sql.Add('Where DataNascimento between :A and :B');
    params[0].AsDate:= StrToDAte(Edit1.Text);
    Params[1].AsDate:= date;
    open;
end;

para os Parametros tem estar em forma de DATA.

Link para o comentário
Compartilhar em outros sites

  • 0
Guest --Carlos --

Tentei desta forma também...

se eu coloco os parametros como asDate me retorna erro Type Mismatch

se coloco como string não me retorna nada

executei este select

select * from dbvendas where "data da emissão" = '12/03/2008'

na ferramenta que vem junto com o delphi...CLIENT....SQL EXPLORER

existem dois registros no entanto não retorna nenhum registro.

tentei = na clausula where, tentei like, tentei between, < > <= >= ele nunca me retorna nada..

se dou um select * from dbvendas ele me retorna os dois registros presentes na base.

alguém sabe o que pode estar ocorrendo ?

obrigado...abraços

Link para o comentário
Compartilhar em outros sites

  • 0
executei este select

select * from dbvendas where "data da emissão" = '12/03/2008'

na ferramenta que vem junto com o delphi...CLIENT....SQL EXPLORER

existem dois registros no entanto não retorna nenhum registro.

um exemplo correto seria

SELECT Data."Data da emissão"

FROM "DATA.db" Data

WHERE Data."Data da emissão" BETWEEN '03/12/2008' AND '03/13/2008'

no seu caso

SELECT dbvendas ."Data da emissão"

FROM "dbvendas .db" dbvendas

WHERE dbvendas ."Data da emissão" BETWEEN '03/12/2008' AND '03/13/2008'

ou ainda

SELECT "Data da emissão"

FROM dbvendas

WHERE "Data da emissão" BETWEEN '03/12/2008' AND '03/13/2008'

SELECT Data da emissão

FROM dbvendas

WHERE Data da emissão BETWEEN '03/12/2008' AND '03/13/2008'

abraço

Link para o comentário
Compartilhar em outros sites

  • 0
Tentei desta forma também...

se eu coloco os parametros como asDate me retorna erro Type Mismatch

se coloco como string não me retorna nada

Carlos , eu testei essa forma com uma tabela em PARADOX e deu certo

CODE
with Query1 do
begin
    Close;
    Sql.Clear;
    Sql.Add('Select * from Tabela');
    sql.Add('Where DataNascimento between :A and :B');
    params[0].AsDate:= StrToDAte(Edit1.Text);
    Params[1].AsDate:= date;
    open;
end;

tú verificou se o tipo do campo da tabela estar como "Date"?

Link para o comentário
Compartilhar em outros sites

  • 0
Guest --Carlos --

sim no paradox a tabela esta identificada como "D" de data...

mas nesse exemplo seu...a data esta legal...esta assim "DataNascimeto"

tente um campo desses "Data do Nascimentó"

o ascento no ó é intencional...

apenas para ver como o paradox responde a isso..

acredito mesmo q o erro esta no nome desse campo...mas eu não posso alterar.

obrigado..

abraços

Link para o comentário
Compartilhar em outros sites

  • 0
Guest --carlos --

Jhona...

amigo, você é o cara...

obrigado de coração...

o negócio funcionou perfeitamente..

obrigado também aos amigos do script brasil q se prontificaram em ajudar

grato a todos

abraços

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,2k
    • Posts
      651,9k
×
×
  • Criar Novo...