Páginas filhas
  • LastRec

Retorna o número do último registro inserido na tabela atual.

Sintaxe

LastRec()

Retorno

Nome

Tipo

Descrição

nRet

numérico

Retorna o número do último registro inserido na tabela atual.

Observações

  • Caso não haja área de trabalho aberta, o programa será encerrado com ocorrência de erro recuperável "Work area not in use".
  • Se houver alguma ação pendente (inserção, atualização ou remoção de registros), as ações serão efetuadas. Caso haja erro nessa atualização, o programa será encerrado com ocorrência de erro recuperável "Commit error: (RecCount/LastRec)".
  • Em caso de erro ou de criação da tabela, o retorno da função é 0 (zero).
  • LastRec substitui as funções RecCount e RecC, as quais se tornaram obsoletas.
  • LastRec retorna o valor do último registro inserido para uma tabela mesmo que haja troca da conexão ativa (no caso de mais de uma conexão com o mesmo SGBD na mesma thread).

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 nHandle2 := -1
  Local cTable := "MYTABLE"
  Local cRDD := "TOPCONN"
  Local nI := 0
  
  // Abre a tabela em modo exclusivo
  DBUseArea( .T., cRDD, cTable, (cTable), .F., .F. )
  
  // Insere 3 registros em uma tabela vazia
  for nI := 1 to 3
    DBAppend( .F. )
    
    (cTable)->MYFIELD := nI
    
    DBCommit()
  next nI
  
  conout( LastRec() ) // Exibe: 3
  
  // Vai para o primeiro registro
  DBGoTop()
  
  // Marca todos os registros para exclusão
  while !eof()
    DBDelete()
    DBSkip()
  enddo
  
  // Apaga todos os registros marcados para exclusão
  __DBPack()
  
  conout( LastRec() ) // Exibe: 3
  
  // Fecha a área de trabalho
  DBCloseArea()
  
  // Abre uma outra conexão com o SGBD
  nHandle2 := TCLink( "MSSQL/DSN1", "127.0.0.1", 7890 )
  
  // Abre a tabela em modo exclusivo
  DBUseArea( .T., cRDD, cTable, (cTable), .F., .F. )
  
  conout( LastRec() ) // Exibe: 3
  
  // Fecha a área de trabalho
  DBCloseArea()
  
  // Desconecta do SGBD
  TCUnlink( nHandle2 )
  TCUnlink( nHandle1 )
return

  • Sem rótulos