Árvore de páginas

Recupera o conteúdo de um campo do registro atualmente posicionado no alias selecionado, a partir da sua posição ordinal na estrutura da tabela.

Sintaxe

FieldGet( < nPos > )

Parâmetros

Nome

Tipo

Descrição

Obrigatório

Referência

nPos

numérico

Número da posição ordinal do campo na tabela.

X

 

Retorno

Nome

Tipo

Descrição

xRet

qualquer

Retorna o conteúdo do campo informado no registrual atual do alias aberto.

Observações

  • Caso o número informado em nPos seja menor que 1 ou maior que o número de campos no alias da tabela em questão, a função retorna Nil e exibe uma mensagem de advertência no log do console do AppServer "Warning - FieldGet error - field number NNN does not exist in file AAA", onde NNN é nPos e AAA é o alias atualmente aberto.
  • Caso não haja alias aberto, a função retorna Nil e não exibe mensagem de advertência.
  • A informação retornada depende do tipo do campo na estrutura da tabela. Para verificar o tipo do retorno após a chamada da função, pode ser usada a função ValType. Para verificar o tipo do retorno antes da chamada, deve ser verificada a estrutura da tabela através da função DBStruct.
  • Quando uma query é aberta em um determinado alias, os campos do tipo "D" (Data) e "L" (Lógico) são retornados como "C" (Caractere), pois no SGBD estes campos normalmente são gravados internamente usando o tipo nativo do SGBD char ou varchar. Para que os campos de tipo "D" e "L" sejam retornados adequadamente no alias aberto com a query, é necessário usar a função TCSetField para estes campos, imediatamente após a abertura da query.

Exemplos

O exemplo abaixo utiliza a RDD "TOPCONN", mas a função pode ser utilizada com qualquer uma das RDDs válidas.

user function test1()
  Local nHandle1 := TCLink( "MSSQL/DSN1", "127.0.0.1", 7890 )
  Local cTable1  := "SA1"
  Local cRDD     := "TOPCONN"
  Local cField   := ""
  Local xValue
  
  // Abre a tabela 1 em modo exclusivo para leitura criando uma área de trabalho
  DBUseArea( .T., cRDD, cTable1, (cTable1), .F., .T. )
  
  // Usando FieldGet no alias corrente
  xValue := FieldGet( 1 )
  
  // Usando uma expressão aliasada para recuperar o campo
  xValue := (cTable1)->( FieldGet( 1 ) )
  
  // Recuperar o campo pelo numero sem usar a FieldGet
  cField := FieldName( 1 )   // Obtém o nome do primeiro campo
  xValue := &cField          // Obtém o conteúdo deste campo
  
  // Fecha todas as áreas de trabalho
  DBCloseAll()
  
  // Desconecta
  TCUnlink( nHandle1 )
return

Veja também