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 ti
mestamp 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
: