Árvore de páginas

Você está vendo a versão antiga da página. Ver a versão atual.

Comparar com o atual Ver Histórico da Página

« Anterior Versão 4 Próxima »

Tabelas Temporárias Tradicionais


No exemplo abaixo, eu crio uma tabela temporária tradicional no banco de dados, e uso no AdvPL o identificador temporário para o meu processo com o nome de "_TMP1", e obtenho o nome real da tabela temporária para ser possível executar queries ou instruções SQL diretamente na tabela, e abro a tabela em modo ISAM para inserção / alteração / consulta de dados.

cTmpID := '_TMP1'
dbcreate(cTmpID,aStru,"TOPCONN")
cTmpName := tcconfig("GETTEMPNAME="+cTmpID)
conout("Nome Real no SGDB : "+cTmpName)
USE (cTmpID) ALIAS TMP EXCLUSIVE NEW VIA "TOPCONN" // DbUSeArea(...) 


Tabela temporária compartilhada

No exemplo abaixo, a criação da tabela temporária compartilhada DEVE usar o identificador FIXO "%SHTMP%", e obter o nome da tabela para a abertura logo após a criação da tabela. 

cTmpID := '%SHTMP%'	
dbcreate(cTmpID,aStru,"TOPCONN")
cTmpName := tcconfig("GETTEMPNAME="+cTmpID)
conout("Nome real no SGDB : "+cTmpName)
USE (cTmpName) ALIAS TMP SHARED NEW VIA "TOPCONN" // DbUseArea(...)


A sequência é praticamente a mesma, com as seguinte diferenças : 

  • A tabela temporária compartilhada usa um identificador de nome fixo para a criação 
  • A abertura da tabela em modo ISAM ( USE / DBUseArea ) deve usar o nome REAL da tabela no banco, obtido após a criação da tabela.
  • Para a tabela temporária compartilhada ser usada por outros processos, eles precisam saber / receber o nome real da tabela, que somente o processo que criou a tabela consegue determinar após a criação. 




  • Sem rótulos