Prezados,
Estou com a seguinte situação:
Eu tenho um formulário que está em grid view, tem um campo do qual eu preciso fazer uma validação, onde o valor dele não pode ser igual ao campo dos registros anteriores, ou seja, este não pode repetir.
Preciso que simplesmente esse valor não apareça no select ou que se aparecer possa dar uma mensagem para colocar outro valor.
É possível?
Obrigado,
Não sei se é o que quer mas fazer um SQL SELECT DISTINCT não resolve?
Não porque eu fiz um SQL no select do campo para retornar somente as viaturas que estão cadastradas em um formulário e que formulário grid view as viaturas que já foram “escolhidas” não apareçam no select. Porém estão aparecendo ainda todas, eu não consigo por exemplo, fazer com que este meu select ignore a viatura que já foi escolhida neste formulário grid view.
Por exemplo, tenho a viatura 24,56,50 e 70 cadastradas no formulário de viaturas, eu tenho uma viatura já escolhida neste formulário grid view que se chama despachos, quando eu foi fazer um novo registro no formulário despachos aparecem todos as viaturas 24,56,50 e 70 em vez de aparecer somente as 56,50 e 70, porque a 24 já tinha sida escolhida no registro da grid anterior.
Fiz meu SQL assim.
Select distinct viaturas.vtr_numero
From viaturas, despacho_ocorrencias
Where viaturas.parado_manutencao=‘NÃO’ and viaturas.parado_utilizacao=‘NÃO’ and despacho_ocorrencias.fechar_despacho!=“1”
obs: este “1” é um flag despacho fechado.
Se todos estão listados na grid acredito que para alterar a pesquisa e não recuperar o que alterou na linha anterior vai ter ou que atualizar a grid para refazer a pesquisa e o sql capturar (ou não) as novas informações ou usar ajax (não sei como no SC, ainda estou engatinhando)
**imaginando que ao entrar liste todas e altere a linha, e na próxima linha ainda mantem o sql original, para mudar a pesquisa só atualizando.
Faz um teste, altere uma e abra a grid de novo, veja se some a viatura que ficou ocupada na alteração, se sumir vai ter que atualizar ou ajax
Consegue resolver via SQL do campo select
Select distinct viaturas.vtr_numero
From viaturas
Where NOT EXISTS(SELECT * FROM despacho_ocorrencias WHERE despacho_ocorrencias.vtr_atendimento = viaturas.vtr_numero and despacho_ocorrencias.fechar_despacho!=‘1’) and
viaturas.parado_manutencao=‘NÃO’ and viaturas.parado_utilizacao=‘NÃO’
Só que o problema agora quando eu vou editar um registro da grid view o campo viatura muda o valor, ou seja, ele executa a query eu queria que ao "editar " não executasse, só executasse uma query quando for inserir um novo registro.