Select Firebird Duvida

SQL

Delphi

Firebird

27/03/2017

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

Curtidas 0

Respostas

Mateus Ribeiro

Mateus Ribeiro

27/03/2017

Bom dia! Qual erro é retornado? Um print ajudaria.
GOSTEI 0
Luiz Santos

Luiz Santos

27/03/2017

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
GOSTEI 0
POSTAR