Árvore de páginas

Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.
Composition Setup
import.css=/download/attachments/3279126062824/newLayouttecnologia.css

Pagetitle
FieldPut
FieldPut

Função: FieldPut

Permite

...

definir

...

o

...

valor

...

de

...

um

...

campo

...

em

...

uma

...

tabela

...

utilizando

...

a

...

posição

...

ordinal

...

do

...

campo

...

na

...

estrutura

...

da

...

tabela.

Sintaxe

Bloco de código
collapsefalse
FieldPut( <

...

 nPos >, <

...

 xValue > )

Parâmetros

...

Nome

Tipo

Descrição

Obrigatório

Referência

...

nPos

...

numérico

Posição

...

do campo do alias/tabela atuais.

X

 

...

xValue

...

qualquer

Valor atribuito ao campo especificado, esse valor deve ser do mesmo tipo do campo do alias/tabela.

X

 

Retorno

...

Nome

Tipo

...

Descrição

...

xRet

...

qualquer

...

Retorna o valor

...

atribuido, caso o número do campo

...

seja

...

inválido retorna NIL.

Observações

FieldPut()

...

é uma função de banco de dados que atribui o valor de uma expressão a um campo da tabela atual, informado a partir da posição ordinal deste na estrutura da tabela. Através dela, podemos atribuir um valor a um campo utilizando a sua posição na estrutura ao invés do nome do campo. Isto facilita a criação de funções genéricas para serviços de manipulação de dados, entre outras aplicações, permite setar um conteúdo a um campo sem a utilização do operador de macro-execução.

...

Nota
icontrue
titleAtenção

...

Da mesma forma que uma atribuição direta, o registro atualmente posicionado deve estar bloqueado (LOCK)

...

para permitir a atribuição do novo valor.

...

Nota
icontrue
titleAtenção

O tipo do segundo parâmetro informado para a

...

função (xValorAtt)

...

deve corresponder ao tipo do campo da base de dados, caso contrário a aplicação será finalizada com a ocorência de erro

...

"Expected

...

<type> expression on fieldput", onde <type>

...

indica o tipo esperado de acordo com o campo:

...

boolean para tipo lógico, date para tipo data, numeric para tipo numérico e string para tipos caractere e/ou memo.

...

Comportamento/Compatibilidade

Caso o tipo do campo na base de dados

...

seja data, e o parâmetro informado seja uma string (caractere), a função espera receber uma string contendo uma data no formato AAAAMMDD (ano com 4 dígitos, seguido do mês e dia, ambos com 2 dígitos), e neste caso,

...

será realizada a atribuição da data correspondente na base de dados.

...

Caso a string não corresponda a uma data válida, a aplicação será interrompida com uma mensagem de ocorrência de formato inesperado, diferenciada para cada RDD.

Por exemplo , a

...

ocorrência "TopConn - Error - field value size is not 8 - on SetField -"

...

será disparada caso tente ser feita uma atribuição a um campo do tipo "data" na base de dados, quando seja informado como parâmetro uma string que não tenha 8 bytes em seu conteúdo. Vale ressaltar que este comportamento foi mantido por compatibilidade com versões anteriores ao

...

ERP Microsiga Protheus, e por questões de boas práticas de programação,

...

é recomendado que seja respeitada a premissa de fornecer à função um argumento compatível com o tipo do campo na base de dados.

Exemplos

// Definir valor de campo utilizando operação de macro-execução
// Primeiro obtém o nome do campo, depois faz a atribuição com macro.
cFName := FIELD(nField)
TMP->&cFname := xFieldVal
// Usando FieldPut().
// Já tem o número do campo e o conteúdo, chama a função direto.
TMP->(FieldPut(nField,xFieldVal))
Advanced Protheus 6.09 , Advanced Protheus 7.10 , Microsiga Protheus 8.11 , Protheus 10 , TOTVS Application Server 10 , ByYou Application Server

...

Bloco de código
languagecpp
themeEclipse
linenumberstrue
collapsefalse
STATIC FUNCTION CreateTable()
  DBCreate('T1', {{"FIELD_NAME", "C", 10, 0}, ;
                  {"FIELD_TYPE"   , "C", 10, 0}}, 'TOPCONN')
RETURN

FUNCTION Example()
  Local cT1 := "T1"
  
  TCLink()
  
  CreateTable()

  DBUseArea(.F., 'TOPCONN', cT1, (cT1), .F., .F.)
  
  (cT1)->(DBAppend())
  // atribui o valor "João" para o campo FIELD_NAME
  (cT1)->(FieldPut(1, "João"))
 
  // TODO: your code here
  
  DBCloseArea()
  
  TCUnlink()
RETURN

Veja também