Histórico da Página
Composition Setup |
---|
import.css=/download/attachments/3279126062824/newLayouttecnologia.css |
Portuguese |
Pagetitle | ||||
---|---|---|---|---|
|
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 | ||
---|---|---|
| ||
FieldPut( <nCampo> nPos >, <xValorAtt> ) --> xValor 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 | ||||||
---|---|---|---|---|---|---|
| Importante||||||
Da mesma forma que uma atribuição direta, o registro atualmente posicionado deve estar bloqueado (LOCK) parapara permitir a atribuição do novo valor. |
Nota | ||||
---|---|---|---|---|
| ||||
O tipo O tipodo segundo parâmetro informado para a funçãofunção (xValorAtt) devedeve 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<type> expression on fieldput", onde <type> indicaindica 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))
...
Bloco de código | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
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
|