Escrito por

Pergunta Paulo Mauri · Maio 22

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 ?

Product version: IRIS 2024.1

Comments

Heloisa Paiva · Maio 22

Boa tarde, Paulo! Tudo bem?

Poderia detalhar um pouco melhor como você está chamando essa proc, por favor?

0
Paulo Mauri  Maio 23 to Heloisa Paiva

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);
     }
 }

0
Heloisa Paiva  Maio 26 to Paulo Mauri

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.

0
Paulo Mauri  Maio 26 to Heloisa Paiva

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.

0