• A Confluence está sendo executada atualmente com todos os plugins que não são do sistema desabilitados. Pode haver perda de algumas funcionalidades

Árvore de páginas

Cria uma view para multiplas tabelas, sendo possível, mapear somente os campos que são relevantes a regra de negócio.

Sintaxe

TCViewMulti( < cView >, < cTable >, < cStruct > )

Parâmetros

Nome

Tipo

Descrição

Obrigatório

Referência

cView

caractere

Nome da view a ser criada.

X


cTable

caractere

Nome da tabela master da view.

X


cStruct

caractere

Estrutura da view a ser criada, que consiste de uma lista de valores separados por virgula, onde é necessário informar a tabela e o campo da tabela que será mapeada na view, veja o exemplo abaixo.

X


Retorno

Nome

Tipo

Descrição

lRet

lógico

Retorna .T. se a view foi criada, caso contrário, retorna .F. e o motivo do erro pode ser verificado com a função TCSQLError.

Observações

Possíveis causas de falha:

  • Já existe uma tabela ou view no SGBD, com o nome informado em cView;
  • A tabela informada em cTable não existe no SGBD;
  • A tabela informada em cTable é uma view ou tabela temporária;
  • A tabela informada em cTable, já está relacionada como tabela auxiliar de outra view;
  • Alguma tabela informada em cStruct, já está relacionada como tabela master de outra view;
  • Alguma tabela informada em cStruct, já está relacionada como tabela auxiliar de outra view, que tem uma tabela master diferente;
  • Alguma tabela e/ou campo informado em cStruct, não existe fisicamente no SGBD;
  • Foram especificados um ou mais campos repetidos em cStruct.

Exemplos

STATIC FUNCTION CreateTable()
  TCDelFile("VIEW1")
  TCDelFile("VIEW2")
  TCDelFile("T1")
  TCDelFile("T2")
  
  DBCreate("T1", {{"FIELD_NAME", "C", 10, 0}, ;
                  {"FIELD_TYPE", "C", 10, 0}}, "TOPCONN")

  DBCreate("T2", {{"FIELD_NAME", "C", 10, 0}, ;
                  {"FIELD_TYPE", "C", 10, 0}, ;
                  {"FIELD_ID"  , "N", 3, 0}}, "TOPCONN")
RETURN

FUNCTION u_TCViewMulti()
  TCLink()
  
  CreateTable()
  
  IIF(TCViewMulti("VIEW1", "T1", "T1,FIELD_NAME,T2,FIELD_TYPE,T2,FIELD_ID"), CONOUT('TRUE'), CONOUT('FALSE')) // retorna .T., ou seja, criou a view VIEW1
  IIF(TCViewMulti("VIEW1", "T1", "T1,FIELD_NAME,T2,FIELD_TYPE,T2,FIELD_ID"), CONOUT('TRUE'), CONOUT('FALSE')) // retorna .F., pois, VIEW1 já foi criada acima
  IIF(TCViewMulti("VIEW2", "VIEW1", "T1,FIELD_NAME,T2,FIELD_ID"), CONOUT('TRUE'), CONOUT('FALSE'))            // retorna .F., pois, não é possível criar uma view a partir de outra view
  IIF(TCViewMulti("VIEW2", "T2", "T1,FIELD_NAME,T2,FIELD_TYPE,T2,FIELD_ID"), CONOUT('TRUE'), CONOUT('FALSE')) // retorna .F., pois, T2 é uma tabela auxiliar da VIEW1
  IIF(TCViewMulti("VIEW2", "T1", "T1,FIELD_NAME,T2,FIELD_VALUE"), CONOUT('TRUE'), CONOUT('FALSE'))            // retorna .F., pois, o campo FIELD_VALUE não existe na tabela T2
  IIF(TCViewMulti("VIEW2", "T3", "T1,FIELD_NAME,T2,FIELD_TYPE,T2,FIELD_ID"), CONOUT('TRUE'), CONOUT('FALSE')) // retorna .F., pois, a tabela T3 não existe no SGBD
  IIF(TCViewMulti("VIEW2", "T1", "T1,FIELD_NAME,T2,FIELD_NAME"), CONOUT('TRUE'), CONOUT('FALSE'))             // retorna .F., pois, o campo FIELD_NAME está duplicado
  
  TCUnlink()
RETURN

Abrangência

Esta função está disponível no Application Server - build 7.00.131227A, com data de geração superior a 09/08/2016 e depende de um DBAccess com build superior a 20160402.

Veja também

  • Sem rótulos