Inquiridor
Duvida de como retornar uma String para uma aplicação

Pergunta
-
Eu tenho um cadastro de cliente aonde eu faço da seguinte maneira :
DECLARE @emailRepetido int, @cnpjcpfRepetido int, @iergRepetido int Select @emailRepetido = Count(cli_ema), @cnpjcpfRepetido = Count(cli_cnpj_cpf), @iergRepetido = Count(cli_ie_rg) FROM Cliente where cli_ema = @cli_ema if @emailRepetido = 0 and @cnpjcpfRepetido = 0 and @iergRepetido = 0 BEGIN INSERT INTO ....... set @cli_cod = @@IDENTITY END GO
Eu gostaria de retornar para minha aplicação algo do TIPO CPF já cadastrado. Como eu faço ?
Rafael Fernandes D Orazio
Todas as Respostas
-
Rafael,
Este tipo de tratamento de dados, é mais indicado ser realizado direto na aplicação ao invês de realizar no banco de dados, mas também é possível.
Basta você criar um IF fazendo um select na table que você deseja verificar se o registro existe, caso o Select retorne alguma coisa, então você poderia apresentar a mensagem.
Pedro Antonio Galvão Junior [MVP | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados | SorBR.Net | Professor Universitário] -
-
Rafael, boa noite.
Realmente esse tipo de validação é melhor fazer na aplicação.
mas p/ fins de conhecimento segue um exemplo em sql:
DECLARE @Clientes AS TABLE (Numero INT); INSERT INTO @Clientes (Numero) VALUES (1000); DECLARE @Num_Consulta INT; SET @Num_Consulta = 1000; IF EXISTS (select Numero from @Clientes where Numero = @Num_Consulta) BEGIN SELECT Mensagem = 'Número já cadastrado' END ELSE BEGIN SELECT Mensagem = 'Número não existe na base' END
Se a minha ajuda lhe for útil não esqueça de classificar. Att. Leonardo Marcelino -
Leonardo, terei que verificar Se o E-Mail, CPF ou CNPJ, IE ou RG existem no cadastro, nao seria mais rapido e eficiente uma validação via procedure ?
Pq terei que fazer exists para E-Mail, CPF ou CNPJ, IE ou RG para retornar a msg correta !
Uma duvida, caso declare assim:
DECLARE @msg varchar(200) SET @msg = ''
Esse SET @msg = '' é necessario fazer isso para limpar a variavel @msg ? ou ela é limpada automaticamente quando passar pelo declare de novo ?
Rafael Fernandes D Orazio
-
Rafael,
A variável que você esta declarando será válida e reconhecida somente na sessão a qual ela esta sendo utiliza, isso se esta variável for definida como local(@), se for uma variável global(@@) neste caso ela poderá ser reconhecida por qualquer sessão.
Variável locais são zerados no momento da sua criação, mas é recomendável realizar a eliminação dos valores armazenados nesta variável para evitar maiores dores de cabeça com possíveis informações incorretas.
Pedro Antonio Galvão Junior [MVP | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados | SorBR.Net | Professor Universitário]