Consistir retorno de [SqlProc]
Bom dia!
Tenho o seguinte ClassMethod()
ClassMethod Insere(ID As %BigInt, ...) As %Status [ SqlProc ]
{
; Executa o insert
&()
I 'SQLCODE S ID=%ROWID
I SQLCODE Q $$$ERROR($$$GeneralError,SQLCODE)
Q $$$OK
}
Qual seria uma boa prática para capturar o retorno %Status, na camada de aplicação C# .NET ?
Comments
Boa tarde, Paulo! Tudo bem?
Poderia detalhar um pouco melhor como você está chamando essa proc, por favor?
Boa Tarde,
Segue exemplo de método de chamada:
public static void Inclui(string NumeroPedido, string Descricao)
{
try
{
string sSql = "? = call ldPedido_Insere(?,?)";
using (OdbcCommand insCommand = conexao.getOdbcCommand(sSql))
{
var ret = insCommand.Parameters.Add("Retorno", OdbcType.VarChar, 2000);
ret.Direction = ParameterDirection.ReturnValue;
insCommand.Parameters.Add("ID", OdbcType.BigInt).Direction = ParameterDirection.Output;
insCommand.Parameters.Add("Descricao", OdbcType.VarChar, 2000).Value = Descricao;
insCommand.Prepare();
insCommand.ExecuteNonQuery();
if (ret.Value != null && ret.Value.ToString() != "1")
{
throw new Exception(ret.Value.ToString());
}
NumeroPedido = insCommand.Parameters["ID"].Value.ToString();
}
}
catch (Exception exc)
{
throw new Exception(exc.Message);
}
}
Bom dia, Paulo!
Essa documentação detalha as melhores práticas de como retornar cada tipo de objeto a partir de chamadas de funções do IRIS, neste ponto do link especificamente trata do retorno de Status code, usando a função ClassMethodStatusCode() .
Deixe-me saber se isso esclarece sua dúvida.
Boa tarde, Heloisa!
Obrigado, pode me ajudar bastante.
Porém, gostaria de saber como tratar/capturar o retorno %Status, na camada de aplicação no C#. NET, se alguém tem uma prática diferente.