Á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
FieldBlock
FieldBlock

Função: FieldBlock

Retorna

...

um

...

bloco

...

de

...

código

...

para

...

um

...

determinado

...

campo

...

da

...

tabela

...

corrente.

Sintaxe

Bloco de código
collapsefalse
FieldBlock( <

...

 cField > )

Parâmetros

...

Nome

Tipo

Descrição

Obrigatório

Referência

...

cField

...

caractere

Indica o nome do campo que será retornado o bloco de código.

X

 

Retorno

Nome

...

Tipo

...

Descrição

bRet

...

bloco de código

Retorna o bloco de código para o campo especificado

...

no alias atual.

Observações

Essa função é utilizada para retornar um bloco de código executável com o campo especificado.

Quando o bloco de código resultante é executado sem parâmetro, recupera o valor armazenado no campo. Mas, quando executado com um valor,

...

define esse valor no determinado campo.

Portanto, o bloco de código retornado é similar a:

Bloco de código
linenumbersfalse
collapsefalse
&( "{ | Valor |

...

 IIf( Valor ==

...

 Nil, Campo, Campo := Valor ) }" )

Sendo:

Campo =

...

Parâmetro da função FieldBlock

...


Valor = Valor executado no bloco de código

Caso haja erro na criação do bloco de código, o programa será encerrado com ocorrência de erro recuperável "CodeBlock definition error" e retornará Nil.

Caso o nome informado não exista no alias aberto, o bloco de código será criado, mas ocorrerá erro na execução do mesmo.

Exemplos

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

Bloco de código
languagecpp
themeEclipse
linenumberstrue
collapsefalse
user function test1()
  Local nHandle1 := TCLink( "MSSQL/

...

DSN1", "127.0.0.1", 7890 )
  Local cTable1  := "MYTABLE"
  Local cRDD     := "TOPCONN"
  Local aStruct  := {}
  Local aBlocks  := {}
  Local aValues  := {}
  Local nI       := 0
  Local nLen     := 0
  Local xValue
  
  // Cria a tabela
  DBCreate( cTable1, { { "CPOC", "C", 10, 0 }, ;
                       { "CPON", "N",  3, 0 }, ;
                       { "CPOD", "D",  8, 0 }, ;
                       { "CPOL", "L",  1, 0 }, ;
                       { "CPOM", "M", 20*1024, 0 } }, cRDD )
  
  // Abre a tabela 1 em modo exclusivo criando uma área de trabalho
  DBUseArea( .T., cRDD, cTable1, (cTable1), .F., .F. )
  
  // Pega a estrutura da tabela
  aStruct := DBStruct()
  nLen    := Len( aStruct )
  
  // Pega um codeblock para cada campo do tabela passando o nome do campo
  for nI := 1 to nLen
    AAdd( aBlocks, FieldBlock( aStruct[nI][1] ) )
  next nI
  
  // Define os valores do registro
  AAdd( aValues, { "AAA", 123, Date(), .T., Replicate( "B", 20*1024 ) } )
  
  // Insere um registro
  DBAppend( .F. )
  
  // Faz o Eval do bloco de código informando o valor
  // Isso irá fazer a atribuição do valor ao campo
  for nI := 1 to nLen
    Eval( aBlocks[nI], aValues[nI] )
  next nI
  
  DBCommit()
  
  // Vai para o primeiro registro
  DBGoTop()
  
  // Exibe o conteúdo de cada campo do registro
  for nI := 1 to nLen
    conout( Eval( aBlocks[nI] ) )
  next nI
  
  // Fecha a área de trabalho
  DBCloseArea()
  
  // Apaga a tabela no SGBD
  TCDelFile( cTable1 )
  
  // Desconecta
  TCUnlink( nHandle1 )
return

Veja também

Advanced Protheus 6.09 , Advanced Protheus 7.10 , Microsiga Protheus 8.11 , Protheus 10 , TOTVS Application Server 10 , ByYou Application Server

 

...