Inquiridor
Stored Procedure

Pergunta
-
Amigos, preciso de ajuda de voces,
no codigo abaixo estou passando parametros pra uma stored procedure, se a clausula Where for mal sucedida, preciso recuperar o erro.
Ex: se o usuario digitar um codigo onde eu passo como prametros uma string chamada Cod_GrupoUsuId, se esse
codigo de gurpo não existir preciso recupera o erro da clausula where, pra mostra ao usuário que o codigo passado não existe no banco de dados cadastrado como Grupo de usuário..
public
void ModGrupoUsuarios(string Cod_GrupoUsuId, string NomeGrupo, string Nivel, string Permissao){
DbCommand Com = Data.GetStoredProcCommand("SPModGruposUsuarios");Data.AddInParameter(Com,
"Cod_GrupoUsuId", DbType.String, Cod_GrupoUsuId);Data.AddInParameter(Com,
"NomeGrupo", DbType.String, NomeGrupo);Data.AddInParameter(Com,
"Nivel", DbType.String, Nivel);Data.AddInParameter(Com,
"Permissao", DbType.String, Permissao);Data.ExecuteNonQuery(Com);
obrigado pela ajuda.
Wagner
Todas as Respostas
-
Olá Wagner..
eu não entendi como recuperar o erro... o que vc pode fazer é colocar o executenonquery dentro de um try/catch
e ele vai mostrar o erro da sp.. igual a mensagem que iria apareger no query analyser
try
Data.ExecuteNonQuery(Com);
catch ex as exception
msgbox(ex.message)
end try
veja se isso já não te ajuda
[]s
-
Wagner,
Eu faria esse tratamento de erro na SP...
Veja o exemplo abaixo
DECLARE @TemGrupo Int
SELECT @TemGrupo = Count(0) FROM SUA_TABELA WHERE Codigo = @Cod_GrupoUsuId
IF @TemGrupo > 0
Begin
AQUI ENTRAM SUAS INSTRUÇÕES
End
ELSE
Raiserror('Não foi possível continuar pois não existe nenhum grupo de usuários cadastrado com o código informado',16,2)
P.S.: Vale lembrar que essa solução funciona perfeitamente se vc colocar as instruções do seu método ModGrupoUsuarios dentro de um bloco TRY / CATCH (Exception ERR).
A mensagem que você colocar na SP será recebida na variável Exception "ERR" q vc declarar.
Espero ter ajudado.
-