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) DBUseArea(.T., "TOPCONN", cTmpID, cTmpID, .F., .F.)
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) DBUseArea(.T., "TOPCONN", cTmpID, cTmpID, .T., .F.)
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.
Visão Geral
Import HTML Content
Conteúdo das Ferramentas
Tarefas