Type Mismatch
Alguém poderia me ajudar?
Estou tentando filtrar meu relátório em Rave com Query.
Estou passando parâmetros com o seguinte código:
Query1.PArambyname(´Dataini´).Asdate := DataInicial.Date;
Query1.PArambyname(´Datafim´).Asdate := Datafinal.Date;
Query1.Active:= true;
Query1.Open;
No query os parâmetros estão como ftDate e o código está:
SELECT COUNT(DISTINCT (data_chamado))
FROM chamados
WHERE data_chamado Like :Dataini and data_chamado Like :Datafim
Só que quando executo aparece a mensagem Type Mismatch. Alguém sabe como resolver isto?
Estou tentando filtrar meu relátório em Rave com Query.
Estou passando parâmetros com o seguinte código:
Query1.PArambyname(´Dataini´).Asdate := DataInicial.Date;
Query1.PArambyname(´Datafim´).Asdate := Datafinal.Date;
Query1.Active:= true;
Query1.Open;
No query os parâmetros estão como ftDate e o código está:
SELECT COUNT(DISTINCT (data_chamado))
FROM chamados
WHERE data_chamado Like :Dataini and data_chamado Like :Datafim
Só que quando executo aparece a mensagem Type Mismatch. Alguém sabe como resolver isto?
Lambretaveia
Curtidas 0
Respostas
Paulo
25/04/2008
Voce deve estar passando um tipo por variável ou parâmetro. diferente daquele suportado pelo DataType do banco. É muito comum eu passar um date e o banco só aceita datetime, por exemplo. Dê uma olhada no tipo aceito pelo banco ou que está vindo da aplicação para ele.
GOSTEI 0
Lambretaveia
25/04/2008
Ok Obrigado pela ajuda.
Eu mudei o formato do banco de data para string e funcionou.
Só que não está filtrando ainda, o relatorio sai todos os registros impressos porque será?
Eu mudei o formato do banco de data para string e funcionou.
Só que não está filtrando ainda, o relatorio sai todos os registros impressos porque será?
GOSTEI 0
Joaoshi
25/04/2008
Colega, tente assim:
SELECT COUNT(DISTINCT (data_chamado))
FROM chamados
WHERE data_chamado [b:27a61d3cdc]Between[/b:27a61d3cdc] :Dataini and :Datafim
Espero ter ajudado.
SELECT COUNT(DISTINCT (data_chamado))
FROM chamados
WHERE data_chamado [b:27a61d3cdc]Between[/b:27a61d3cdc] :Dataini and :Datafim
Espero ter ajudado.
GOSTEI 0
Lambretaveia
25/04/2008
Obrigado,
Tentei dessa forma executou normalmente sem erros mas ainda não filtra
Está imprimindo tudo.
Estou usando o RvQueryConnection conectado ao query será que não estou fazendo a conexão correta?
Tentei dessa forma executou normalmente sem erros mas ainda não filtra
Está imprimindo tudo.
Estou usando o RvQueryConnection conectado ao query será que não estou fazendo a conexão correta?
GOSTEI 0
Lambretaveia
25/04/2008
Ah... esqueci, meu código do botão imprimir está assim:
query1.close;
Query1.Active:= true;
Query1.PArambyname(´Dataini´).Asstring := datetostr(DataInicial.Date);
Query1.PArambyname(´Datafim´).Asstring := datetostr(Datafinal.Date);
Query1.Open;
RvQueryConnection1.Query.Active := true;
Form1.RvProject1.close;
Form1.RvProject1.ExecuteReport(´Report1´);
Form1.RvProject1.Open;
Query1.Active:= false;
RvQueryConnection1.Query.Active := false;
FrmDataChamados.Close;
tabelas.tb_chamados.close;
query1.close;
Query1.Active:= true;
Query1.PArambyname(´Dataini´).Asstring := datetostr(DataInicial.Date);
Query1.PArambyname(´Datafim´).Asstring := datetostr(Datafinal.Date);
Query1.Open;
RvQueryConnection1.Query.Active := true;
Form1.RvProject1.close;
Form1.RvProject1.ExecuteReport(´Report1´);
Form1.RvProject1.Open;
Query1.Active:= false;
RvQueryConnection1.Query.Active := false;
FrmDataChamados.Close;
tabelas.tb_chamados.close;
GOSTEI 0
Paulo
25/04/2008
Posso estar erado, mas se seu campo é uma string, não poderá filtrar uma data. Acho que vc deve usar o padrão do banco para datas e não tirar o tipo data e colocar string. Use o DateTime, a maioria dos bancos aceita esse DataType e passe pelo seu parametro um DateTime ao invés de um Date.
GOSTEI 0
Lambretaveia
25/04/2008
Ok Paulo Obrigado novamente, fiz da forma como falou. Coloquei o banco como data e passei os parâmetros como datetime. Nenhum erro, aceitou tranquilamente. Só que os filtros não funcionam, ainda está imprimindo tudo no Rave.
Instalei a versão 5.1 demo do Rave para descartar a possibilidade de algum Bug do Rave, mas não adiantou. Não tenho mais idéia do que possa estar ocorrendo...
Instalei a versão 5.1 demo do Rave para descartar a possibilidade de algum Bug do Rave, mas não adiantou. Não tenho mais idéia do que possa estar ocorrendo...
GOSTEI 0
Paulo
25/04/2008
Poste a query toda aí para te ajudarmos, não o botão, mas a query.
GOSTEI 0
Lambretaveia
25/04/2008
Ok, A query está assim:
SELECT COUNT(DISTINCT (data_chamado))
FROM chamados
WHERE data_chamado Between :Dataini and :Datafim
Onde dataini e datafim são dois parâmetros tipo datetime Data_chamado é o campo da tabela Chamados
Databasename do query está conectado ao BDE e o Datasource está conectado ao Ds_chamados. Parece que as conexões estão todas ok. Ah tenho tambem um RvQueryconection conectado ao Query...
SELECT COUNT(DISTINCT (data_chamado))
FROM chamados
WHERE data_chamado Between :Dataini and :Datafim
Onde dataini e datafim são dois parâmetros tipo datetime Data_chamado é o campo da tabela Chamados
Databasename do query está conectado ao BDE e o Datasource está conectado ao Ds_chamados. Parece que as conexões estão todas ok. Ah tenho tambem um RvQueryconection conectado ao Query...
GOSTEI 0
Paulo
25/04/2008
Fiz aqui comigo exatamente como está sua query e funcionou, passando para o datatype data_chamado um Date e nos parâmetros também um Date. Não achei nenhum problema. Usei o banco Firebird.
GOSTEI 0
Lambretaveia
25/04/2008
Que estranho, no meu não funciona, eu estou usando paradox.
Talvez o problema esteja no Rave, eu estou usando um datacycle para gerar os relatórios...
Talvez o problema esteja no Rave, eu estou usando um datacycle para gerar os relatórios...
GOSTEI 0
Lambretaveia
25/04/2008
Pessoal ainda não consegui resolver o problema dos filtros, se alguem tiver mais alguma sugestão eu agradeço...
GOSTEI 0
Emerson Nascimento
25/04/2008
query1.close; --> fecha a query
Query1.Active:= true; --> ABRE a query
Query1.PArambyname(´Dataini´).Asstring := datetostr(DataInicial.Date);
Query1.PArambyname(´Datafim´).Asstring := datetostr(Datafinal.Date);
Query1.Open; --> ABRE a query (já estava aberta!!!)
RvQueryConnection1.Query.Active := true; --> é a mesma query?!?!?!
Form1.RvProject1.close;
Form1.RvProject1.ExecuteReport(´Report1´);
Form1.RvProject1.Open;
Query1.Active:= false;
RvQueryConnection1.Query.Active := false;
FrmDataChamados.Close;
tabelas.tb_chamados.close;
deveria ser:
Query1.Close;
Query1.Parambyname(´Dataini´).AsDate := DataInicial.Date;
Query1.Parambyname(´Datafim´).AsDate := Datafinal.Date;
Query1.Open;
como não conheço impressão em RAVE, não sei o que significa essa linha:
RvQueryConnection1.Query.Active := true;
GOSTEI 0
Lambretaveia
25/04/2008
Obrigado,
Tentei fazer da forma como colocou mas não funcionou ainda
a linha RvQueryConnection1.Query.Active := true; estou tentando fazer a conexão do componente do Rave que está conectado ao query, mas nem assim funciona.
Estou usando Delphi 7.0 Com Rave 5.0 BD Paradox 7
Tentei fazer da forma como colocou mas não funcionou ainda
a linha RvQueryConnection1.Query.Active := true; estou tentando fazer a conexão do componente do Rave que está conectado ao query, mas nem assim funciona.
Estou usando Delphi 7.0 Com Rave 5.0 BD Paradox 7
GOSTEI 0