Select Firebird Duvida

27/03/2017

0

Boa Noite pessoal, preciso fazer esse select com uma procedure..

where (est.status = 'A') and
(est.id_Estoque =:valor or
ident.id_Identificador = :valor or
est.Descricao like :valor or
estProd.cod_Barra like :valor or
estProd.Referencia like :valor or
estProd.Desc_cmpl like :valor)

campo idEstoque e IdIdentificador são integer, então quando insiro um valor na variável integer para pesquisar perfeito, mas quando insiro uma string com intuito de pesquisar na descrição ele me retorna o erro, pois não consegue comparar a string com o campo idEstoque ou IdIdentificador..

Desde já muito Obrigado.
Antonelly Silva

Antonelly Silva

Responder

Posts

28/03/2017

Mateus Ribeiro

Bom dia! Qual erro é retornado? Um print ajudaria.
Responder

28/03/2017

Luiz Santos

Antonelly.
O que você está tentando fazer não vai funcionar.

O que você precisa fazer é um controle na hora de montar sua string SQL.
Ficaria mais ou menos assim:


strSQL = "SELECT * FROM TABELA";

if valor = int then
   strSQL =  strSQL + "WHERE est.id_Estoque =:valor";
else
   strSQL =  strSQL + "WHERE est.Descricao like :valor";
End If



Só acho que não da para usar a mesma variável tanto para um dado int quanto um dado char

Grande abraço
Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar