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

Busca Sql


Arlon

Pergunta

 DM.QrConsPedidos.Close;
 DM.QrConsPedidos.Sql.Text := 'Select Cod_Cliente2, Data, Hora, Atendente, Total From Pedidos ' +
 'Where Upper(Cod_Cliente2) =:Cod_Cliente2Busca';
 DM.QrConsPedidos.Params[0].AsString := UpperCase(Edit1.Text);
 DM.QrConsPedidos.open;

O código acima é usado para uma filtragem através do campo Cod_Cliente2 q é um campo alfanumérico. Em um outro formulário eu faço uma filtragem bastante parecida com esta, só q através do campo 'Atendente' q tb é um campo alfanumérico.Tenho mais duas consultas: OrdemServico (campo autoincremento) e Data (campo date), só q quando eu digito o número da Ordem de Serviço ou a Data em que o registro foi feito o Delphi me retorna o seguinte erro: Tipe mismatch in expression. Se eu for fazer uma busca por qualquer outro campo ela funciona beleza, agora com esses dois campos, um autoincremento e o outro date, aí dá pau!! Existe alguma impossibilidade de se fazer esse tipo de consulta??

estou usando Paradox, mas acho q o problema é com SQL.

Link para o comentário
Compartilhar em outros sites

5 respostass a esta questão

Posts Recomendados

  • 0

Campo Alfanumerico? Um STRING?

O erro de Tipe mismatch in expression acontece quando os tipos não são compativeis. Por exemplo:

você não pode fazer uma consulta num campo data, filtrando com uma String...

você deveria transformar a string em data (STRtoDATE) para poder fazer a pesquisa...

Mesma coisa vale para um Campo INTEGER(numerico), você tem que transformar o STRING antes com STRtoINT

DM.QrConsPedidos.Close;
DM.QrConsPedidos.Sql.Text := 'Select OrdemServico From Pedidos ' +
'Where Upper(OrdemServico) =:D';
DM.QrConsPedidos.Params[0].AsString := UpperCase(STRtoINT(Edit1.Text));
DM.QrConsPedidos.open;

Link para o comentário
Compartilhar em outros sites

  • 0

realmente...

Como é q eu não tinha percebido isso antes, será q eu sou burro ou desatencioso?? ohmy.gif rsrs

valeu a ajuda maluco tongue.gif

Link para o comentário
Compartilhar em outros sites

  • 0

Pow aí, continua dando aquele erro mesmo eu fazendo isso aqui abaixo. Será q ainda pode ser algum outro tipo de conersão?? Eu já tentei essas aqui abaixo e nenhuma delas deu certo. Em campo alfanumérico eu estou usando: DM.QrConsPedidos.Params[0].AsString := UpperCase(Edit1.Text); e em campo autoincremento (integer, eu acho) e data q conversão devo fazer??

* Data:

- DM.QrConsPedidos.Params[0].AsDateTime := StrToDate(Edit1.Text);

- DM.QrConsPedidos.Params[0].AsDate := StrToDate(Edit1.Text);

*Autoincremento:

- DM.QrConsPedidos.Params[0].ASInteger := StrToInt(Edit1.Text);

já tentei as três acima e nehuma delas deu certo.

Link para o comentário
Compartilhar em outros sites

  • 0

Iabadabaduuuuuuuuuuú!!

Consegui resolver o problema. Era só tirar o UPPER q tá antes do campo que eu quero fazer a busca. Pow imaginem só, colocar data e número em maiúsculo!!?? Estranho né!!?? Mas, é como eu costumo dizer: "vivendo, se estressando, perdendo noites de sono, futebol, televisão, e aprendendo".

Valeu galera. tongue.gif

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