none
ATUALIZAÇÃO DE CHAVE PRIMARIA que tem relacionamento com outra tabela RRS feed

  • Pergunta

  •  

    Olá

    tendo as tabelas LOGRADOURO(Cep,nome,bairroCodigo,ts)

                               e

                              ENDERECO(enderecoCodigo,numero,complemento,Cep,ts)

    onde o atribudo em BOLD é PK e os sublinhados FOREIGN KEY

    para efetuar uma alteração do CEP na tabela LOGRADOURO, recebo na storeProcedure os argumentos:

     

    ALTER PROCEDURE [dbo].[vddasp_updLogradouro]

    (

    @cep char(8),

    @cepNew char(8),

    @nome varchar(50),

    @ts timestamp,

    @ltsnew timestamp OUTPUT,

    @retErroNum int OUTPUT,

    @retErroMsg nvarchar(255) OUTPUT

    )

    AS

    BEGIN TRY

           SET @retErroNum = 0

           UPDATE logradouro

          SET        cep = @cepNew,

                       nome = @nome

          WHERE (cep = @cep)

                       AND

                     ((@Ts IS NULL) or

                     (ts = @ts))

         IF @@ROWCOUNT <> 0

            SELECT @cep = cep,

                          @nome = nome,

                          @tsnew = ts,

            FROM logradouro

            WHERE cep = @cep

    END TRY

    BEGIN CATCH

         SELECT ERROR_NUMBER() as erroNumero,

         ERROR_MESSAGE() as erroMensagem

         PRINT ERROR_NUMBER()

         PRINT ERROR_MESSAGE()

         SET @retErroNum = ERROR_NUMBER()

         SET @retErroMsg = ERROR_MESSAGE()

    END CATCH

     

    A dúvida ocorre na configuração do parametro no dataAdapter para informar o parametro @Cep e @cepNew. O que tentei fazer da seguinte forma:

     

    Dim cepOld As New SqlParameter("@cep", SqlDbType.Char, 8, "cep")

    cepOld.Direction = ParameterDirection.InputOutput

    cepOld.SourceVersion = DataRowVersion.Original

    adp.parameters.add(cepOld)

    Dim cepNew As New SqlParameter("@cepNew", SqlDbType.Char, 8, "cep")

    cepNew.Direction = ParameterDirection.Input

    cepNew.version = DataRowVersion.Current

    adp.parameters.add(cepNew)

     

    recebo a mensagem de que o parametro já está definido na coleção de parametros.

    O que poderia estar errado?

    takeo

     

     

     

    :

     

     

     

     

    terça-feira, 30 de dezembro de 2008 18:12

Respostas

  • Olá Takeo,

     

    Não seria o caso de tentar o seguinte:

     

    Dim cepNew As New SqlParameter("@cepNew", SqlDbType.Char, 8, "cepNew")

     

    Ao invés de

     

    Dim cepNew As New SqlParameter("@cepNew", SqlDbType.Char, 8, "cep")

     

    [ ]s,

     

    Gustavo

    terça-feira, 30 de dezembro de 2008 18:20

Todas as Respostas

  • Olá Takeo,

     

    Não seria o caso de tentar o seguinte:

     

    Dim cepNew As New SqlParameter("@cepNew", SqlDbType.Char, 8, "cepNew")

     

    Ao invés de

     

    Dim cepNew As New SqlParameter("@cepNew", SqlDbType.Char, 8, "cep")

     

    [ ]s,

     

    Gustavo

    terça-feira, 30 de dezembro de 2008 18:20
  • Oi Gustavo

    valeu pela dica, descobri que no projeto estava passando o mesmo nome da definição do parametro. Um erro de falta de atenção da minha parte.

    valeu

    takeo

    quarta-feira, 31 de dezembro de 2008 15:39