none
Duvida de como retornar uma String para uma aplicação RRS feed

  • 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
    quarta-feira, 5 de maio de 2010 18:19

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]
    quarta-feira, 5 de maio de 2010 19:16
  • teria um exemplo ?
    Rafael Fernandes D Orazio
    quarta-feira, 5 de maio de 2010 19:31
  • 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
    quarta-feira, 5 de maio de 2010 21:48
  • 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

    quinta-feira, 6 de maio de 2010 01:01
  • 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]
    quinta-feira, 6 de maio de 2010 18:08