Painel | ||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||||||||||
Descrição Classe para criação e manipulação de tabelas temporárias no BD | ||||||||||||||||||
Compatível Países: | Todos | |||||||||||||||||
Sistemas Operacionais: | Todos | |||||||||||||||||
Compatível às Bases de Dados: | Todos | |||||||||||||||||
Nível de Acesso: | Nível 1 (Acesso Clientes) | |||||||||||||||||
Idiomas: | Português, Inglês, Espanhol | |||||||||||||||||
Versão/Release | 12.1.5 |
Nota | ||
---|---|---|
| ||
TOTVS|DBAccess 4.2 Server com build igual ou superior à 20141119 (Mar 12 2015). |
Aviso | ||
---|---|---|
| ||
Devido as características do TempDB, uma tabela temporária só é visível para a thread que realizou a sua criação, não sendo possível compartilhar a mesma tabela entre vários processos. |
Painel | ||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||||||||||
Sintaxe FWTemporaryTable():New( [<cAlias>], [<aFields>] )-> Objeto FWTemporaryTable Descrição Método para instanciar a classe Parâmetros
|
Painel | ||
---|---|---|
| ||
Sintaxe FWTemporaryTable():Create() Descrição Método responsável pela criação da tabela |
Painel | ||
---|---|---|
| ||
Sintaxe FWTemporaryTable():Delete() Descrição Método responsável por efetuar a exclusão da tabela, e fechar o alias Retorno Retorna um Logical conforme a deleção da tabela ter sido efetuada corretamente (a partir da LIB versão 20193101) |
Painel | ||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||||||||||
Sintaxe FWTemporaryTable():AddIndex( <cIndexName>, <aFields> ) Descrição Adiciona um índice na tabela. Parâmetros
|
Painel | ||
---|---|---|
| ||
Sintaxe FWTemporaryTable():GetRealName() -> cRealName Descrição Retorna o nome com o qual a tabela foi criada no BD. |
Painel | ||
---|---|---|
| ||
Sintaxe FWTemporaryTable():GetTableNameForTCFunctions() -> cTableName Descrição Retorna o nome da tabela para ser usado em funções do DBAccess, como (disponível a partir da LIB versão 20210517) |
Painel | ||
---|---|---|
| ||
Sintaxe FWTemporaryTable():GetTableNameForQuery() -> cRealName Descrição Retorna o nome da tabela para ser usado no caso de querys, é o mesmo (disponível a partir da LIB versão 20210517) |
Painel | ||
---|---|---|
| ||
Sintaxe FWTemporaryTable():GetAlias( ) -> cAlias Descrição Retorna o alias utilizado pelo arquivo. |
Painel | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||||
Sintaxe FWTemporaryTable():SetFields( <aFields> ) Descrição Define os campos da estrutura.
|
Painel | |||||
---|---|---|---|---|---|
| |||||
Sintaxe FWTemporaryTable():Zap() Descrição Limpa todos os registros da tabela temporária. Caso seja gerado algum erro no momento do zap o sistema é abortado.
|
Painel | |||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| |||||||||||||
Sintaxe FWTemporaryTable():SetClobMemo(lClob) Descrição Informa a classe como serão criados os campos memo, se informado como .T., os campos serão criados no padrão CLOB, caso contrário os campos serão criados no padrão BLOB, que é a maneira padrão que o Protheus trabalha. Parâmetros
|
Bloco de código | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||||
#include 'protheus.ch' User Function ExFWTemporaryTable() Local aFields := {} Local oTempTable Local nI Local cAlias := "MEUALIAS" Local cQuery //------------------- //Criação do objeto //------------------- oTempTable := FWTemporaryTable():New( cAlias ) //-------------------------- //Monta os campos da tabela //-------------------------- aadd(aFields,{"DESCR","C",30,0}) aadd(aFields,{"CONTR","N",3,1}) aadd(aFields,{"ALIAS","C",3,0}) oTemptable:SetFields( aFields ) oTempTable:AddIndex("01", {"DESCR"} ) oTempTable:AddIndex("02", {"CONTR", "ALIAS"} ) //------------------ //Criação da tabela //------------------ oTempTable:Create() //------------------------------------ //Executa query para leitura da tabela //------------------------------------ cQuery := "select * from "+ oTempTable:GetRealName() MPSysOpenQuery( cQuery, 'QRYTMP' ) DbSelectArea('QRYTMP') while !eof() for nI := 1 to fcount() varinfo(fieldname(nI),fieldget(ni)) next dbskip() Enddo //--------------------------------- //Exclui a tabela //--------------------------------- oTempTable:Delete() return |