Guest --Carlos -- Postado Junho 16, 2008 Denunciar Share Postado Junho 16, 2008 Boa noite pessoal, preciso da ajuda de vocês.não sou muito adepto ao paradox mas estou tendo que trabalhar com elewith query dobegin 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 Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Progr'amador Postado Junho 16, 2008 Denunciar Share Postado Junho 16, 2008 (editado) 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, dtEmissaoAbs. Progr'amador. Editado Junho 16, 2008 por Progr'amador Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Guest --Carlos -- Postado Junho 17, 2008 Denunciar Share Postado Junho 17, 2008 Bom dia Progr'amadorEu 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. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Pirambu! Postado Junho 17, 2008 Denunciar Share Postado Junho 17, 2008 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. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Guest --Carlos -- Postado Junho 18, 2008 Denunciar Share Postado Junho 18, 2008 Tentei desta forma também...se eu coloco os parametros como asDate me retorna erro Type Mismatchse coloco como string não me retorna nadaexecutei este select select * from dbvendas where "data da emissão" = '12/03/2008'na ferramenta que vem junto com o delphi...CLIENT....SQL EXPLORERexistem 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 Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Jhonas Postado Junho 19, 2008 Denunciar Share Postado Junho 19, 2008 executei este select select * from dbvendas where "data da emissão" = '12/03/2008'na ferramenta que vem junto com o delphi...CLIENT....SQL EXPLORERexistem dois registros no entanto não retorna nenhum registro.um exemplo correto seria SELECT Data."Data da emissão"FROM "DATA.db" DataWHERE 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 aindaSELECT "Data da emissão"FROM dbvendas WHERE "Data da emissão" BETWEEN '03/12/2008' AND '03/13/2008' SELECT Data da emissãoFROM dbvendas WHERE Data da emissão BETWEEN '03/12/2008' AND '03/13/2008' abraço Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Pirambu! Postado Junho 19, 2008 Denunciar Share Postado Junho 19, 2008 Tentei desta forma também...se eu coloco os parametros como asDate me retorna erro Type Mismatchse coloco como string não me retorna nadaCarlos , 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"? Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Guest --Carlos -- Postado Junho 19, 2008 Denunciar Share Postado Junho 19, 2008 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 Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Guest --carlos -- Postado Junho 19, 2008 Denunciar Share Postado Junho 19, 2008 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 ajudargrato a todosabraços Citar Link para o comentário Compartilhar em outros sites More sharing options...
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
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.