ActiveDelphi - Índice do Fórum ActiveDelphi
.: O site do programador Delphi! :.
 
 FAQFAQ   PesquisarPesquisar   MembrosMembros   GruposGrupos   RegistrarRegistrar 
 PerfilPerfil   Entrar e ver Mensagens ParticularesEntrar e ver Mensagens Particulares   EntrarEntrar 

firedac 118 - Error evaluating expression. Invalid variant

 
Novo Tópico   Responder Mensagem    ActiveDelphi - Índice do Fórum -> Delphi
Exibir mensagem anterior :: Exibir próxima mensagem  
Autor Mensagem
charlesPereira1
Novato
Novato


Registrado: Terça-Feira, 17 de Dezembro de 2019
Mensagens: 3

MensagemEnviada: Qua Dez 18, 2019 4:17 pm    Assunto: firedac 118 - Error evaluating expression. Invalid variant Responder com Citação

Boa tarde Pessoal, sou novo no canal e gostaria de saber como tratar este erro logo acima no filter que foi desenvolvido.
Este mesmo incialmente foi desenvolvido pelo RXLib, porém foi redesenvolvido no Firedac, gostaria de saber como tratar este erra
firedac 118 - Error evaluating expression. Invalid variant type conversion pois todos os esforços não adiantaram para o Filter no Sql.

vl := '';
// vVetData é uma tratativa de datas que peguei no intervalo de 7 dias da semana
for vI := 0 to 6 do
with qryBoxF do
begin
Filtered := false;
Filter := 'Data = ''+#39+(FormatDateTime('dd/mm/yyyy', vVetData[vI], '00:00:00.000'))+#39;
Filtered := true;

este mesmo código foi desenvolvido dos seguintes modos
Filter := ' Data = ''' + DateToStr(vVetData[vI]) + '''';
Filter := ' Data = ' + QuotedStr(DateToStr(vVetData[vI]) );

Apenas este funcionou pois não trazia o "aspas simples" e sim chaves "{}"

Filter := 'Data = {' + (FormatDateTime('yyyy-mm-dd', vVetData[vI]))+'}';
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
imex
Moderador
Moderador


Registrado: Sexta-Feira, 7 de Janeiro de 2011
Mensagens: 11666

MensagemEnviada: Qua Dez 18, 2019 5:41 pm    Assunto: Responder com Citação

Boa tarde,

Se você quer um filtro para os 7 dias contidos no array, acho que seria melhor utilizar código no evento OnFilterRecord da query, conforme exemplo abaixo:

Código:
var
  vi: integer;
begin
  vi := 0;
  repeat
      Accept := qryBoxF.FieldByName('Data').AsDateTime = vVetData[vi];
      Inc(vi);
  until (Accept) or (vi > High(vVetData);
end;


Espero que ajude

_________________
Assinatura: https://www.imoveisemexposicao.com.br/imoveis-alugar-guarulhos-residencial-apartamento
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
Mostrar os tópicos anteriores:   
Novo Tópico   Responder Mensagem    ActiveDelphi - Índice do Fórum -> Delphi Todos os horários são GMT - 3 Horas
Página 1 de 1

 
Ir para:  
Enviar Mensagens Novas: Proibido.
Responder Tópicos Proibido
Editar Mensagens: Proibido.
Excluir Mensagens: Proibido.
Votar em Enquetes: Proibido.


Powered by phpBB © 2001, 2005 phpBB Group
Traduzido por: Suporte phpBB