Árvore de páginas

Retorna um array com a(s) View(s) associada(s) a tabela.

Sintaxe

TCHasView( < cTable > )

Parâmetros

Nome

Tipo

Descrição

Obrigatório

Referência

cTable

caractere

Nome da tabela que será avaliada.

X


Retorno

Nome

Tipo

Descrição

aViews

vetor

Array com a lista de Views associadas a tabela.

Observações

  • O uso da função TCHasView é recomendo para avaliar se a tabela tem view associada a ela, permitindo que o desenvolvedor delete a View antes de fazer o delete de uma tabela usando a TCDelFile.
  • Recomenda-se sempre utilizar a TCCanOpen para verificar se a tabela que será avaliada existe.
  • Caso ocorra erro no processo de avaliação e/ou deleção da tabela/view, utilize a função TCSQLError para verificar a mensagem de erro retornada pela aplicação.

Exemplos de retorno:

Conteúdo

Detalhes

Array vazio

Um array vazio, pode significar:

  • Não há view associada a tabela.
  • A tabela informada via parâmetro não existe.

Array com conteúdo

Nome(s) da(s) view(s) associada(s) a tabela.

Exemplos

user function exemplo

  local cT1  := "T1"
  local cView:= ""
  local cRDD := "TOPCONN"
  local i


  TCLink()
  clearEnv(cT1)

  // criação da tabela base para a view
  DBCreate(cT1, {{"FIELD_NAME", "C", 10, 0}, ;
                  {"FIELD_TYPE", "C", 10, 0}}, cRDD)

  // criação da view VIEW1 associada a tabela T1
  for i := 1 to 3
    cView := "VIEW"+cValToChar(i)
    if TCViewOne(cView, "T1") == .F.
      UserException("TCViewOne - CREATE VIEW FAIL")
    endif
  next

  conout('Views associadas a tabela T1: ')
  varInfo("",TCHasView("T1"))

  clearEnv(cT1)
  TCUnLink()

return


static function clearEnv(cT1)

  local i

  TCLink()

  if TCCanOpen(cT1)
    aViews := TCHasView(cT1)
  else
    conout(TCSQLError())
    return
  endif

  if ( len(aViews) > 0 )
    for i:= 1 to len(aViews)
      TCDelFile(aViews[i])
    next
  endif

  if TCCanOpen(cT1)
    if (!TCDelFile(cT1))
      conout("FAIL TO DELETE TABLE: " + cT1)
      conout(TCSQLError()) //apresenta a mensagem de erro do SGBD
    endif
  endif

  TCUnLink()

return

Veja também

  • Sem rótulos