Como verificar se uma coluna existe na DataWindow

Como verificar se uma coluna existe na DataWindow

Overview

Descubra de forma simples e eficaz se uma coluna específica existe ou não na sua DataWindow do PowerBuilder, conferindo um passo-a-passo detalhado e uma função pronta para te auxiliar. Se você já se pegou na dúvida ou simplesmente quer tornar seu código mais robusto, esse post é para você!

Caso você não tenha certeza se uma coluna existe ou não na DataWindow, uma das formas que você pode descobrir é utilizando o procedimento abaixo.

O processo é bem simples:

//Verificando se 1 coluna existe...

//Variáveis
string ls_test, ls_column, ls_result
ls_column = 'report_copies'


//Check the column.id property.
// Describe returns the number of the column if the column exists.
// Describe returns an exclamation point (!) if the column doesn't exist.

//Verifica se a coluna existe...
ls_test = dw_1.Describe(ls_column+'.id')

If ls_test = '!' then
    //Coluna não existe. Describe retornou "!"
    ls_result = ls_column + ' (id='+ ls_test + ') ' + ': Coluna não existe.'
else
    //Coluna existe! Describe retornou o Id da coluna.
    ls_result = ls_column + ' (id='+ ls_test + ') ' + ': Coluna existe.'
end if

//Mostra o resultado...
MessageBox('Teste de coluna', ls_result)

*Update 21/11/2017*: Atendendo a sugestão do Armando, criei uma função (f_col_exist(dw, colname)) que você pode importar para a sua target e utilizar.
Ela retorna true se encontrar a coluna e false se não encontrar. Para utilizar, você deve informar dois argumentos:

  • [datawindow] adw: A datawindow que será pesquisada
  • [string] as_colname: String com o nome da coluna que você está procurando.

Você pode baixar a função no nosso github!

Dúvidas sobre o artigo? Sugestões? Precisa de ajuda com outra funcionalidade do PowerBuilder? Deixe um comentário.