[PowerBuilder] Referência para os valores do SQLCode

Quem tem a sorte de trabalhar com PowerBuilder está constantemente verificando o valor da propriedade SQLCode. Neste post estão as referências para os valores que ele pode conter.

Após a utilização de algum comando de banco, o SQLCode sempre estará com um dos valores abaixo:

Valor Descrição
Comando (statement) executado com sucesso.
-1 Indica que um erro ou exceção ocorreu. Utilize a propriedade SqlErrText para ver a mensagem de erro.
100 O comando (statement) funcionou, mas não foram encontrados resultados. Este valor aparece apenas para update, delete ou insert.

Vale lembrar que o PowerBuilder possui valores padrões para as variáveis, ou seja, se algo de errado ocorrer, mas ele não receber um retorno do banco de dados, o SQLCode estará com o valor zero (que é o padrão do PB para variáveis numéricas).

Ok, isso pode ter ficado confuso… um exemplo:

No fonte acima, eu criei uma Datawindow, apontei ela para usar o SQLCA (função SetTrans) e já executei um Retrieve, mas não define o dataobject, ou seja, o SQLCA não sabe o que tem que fazer, então ele não faz nada e continua com os seus valores padrões. Isso quer dizer que a verificação de erro (SQLCA.SQLCode = 0) vai resultar em um falso positivo.

O objeto transaction ainda possui a propriedade SQLDBCode, que assim como o SqlErrText, são dependentes do SGBD utilizado e possuem os valores informados pelo banco da dados. Em versões mais antigas do PB, estas propriedades não eram populadas quando uma função da datawindow resultava em erro.  Se você ainda estiver utilizando alguma versão anterior a 8… você provavelmente tem problemas maiores. 🙂

 

 

The following two tabs change content below.
Breno RdV
Ex-Psicólogo, com quase uma década de experiência em Recursos Humanos e Gestão de Pessoas, atual desenvolvedor e Analista de Sistemas, trabalhando com PowerBuilder, C#, PowerShell e expandindo horizontes para Python, Xamarin, PHP, Angular e (por que não?) Unity.

Comments

comments

Posted in Dev, PowerBuilder and tagged , , , , .