Histórico da Página
Painel | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||||
Descrição Classe para criação e manipulação de tabelas temporárias no BDresponsável por construir um track de rotinas
| ||||||||||||
Nota | ||||||||||||
|
Painel | |||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| |||||||||||||||||||||
Sintaxe FWTemporaryTableFWBreadCrumb():New( [<cAlias>]<oOwner>, [<aFields><lForce>] )-> Objeto FWTemporaryTableFWBreadCrumb
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
|
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():InsertSelect( <cTableFrom> , <aFieldsFrom> )
Descrição Efetua carga de todos os campos baseada em um select de outra tabela, utilizando o padrão INSERT INTO SELECT.
|
Painel | ||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||||||||||||||||
Sintaxe FWTemporaryTable():InsertIntoSelect( <aFieldsTo>, <cTableFrom> , <aFieldsFrom> )
Descrição Efetua carga de todos os campos baseada em um select de outra tabela, utilizando o padrão INSERT INTO SELECT.
|
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.
|
Fonte de exemplo: ExFWTemporaryTable.prw
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("indice1", {"DESCR"} ) oTempTable:AddIndex("indice2", {"CONTR", "ALIAS"} ) //------------------ //Criação da tabela //------------------ oTempTable:Create() conout("Executando a cópia dos registros da tabela: " + RetSqlName("CT0") ) //-------------------------------------------------------------------------- //Caso o INSERT INTO SELECT preencha todos os campos, este será um método facilitador //Caso contrário deverá ser chamado o InsertIntoSelect(): // oTempTable:InsertIntoSelect( {"DESCR", "CONTR" } , RetSqlName("CT0") , { "CT0_DESC", "CT0_CONTR" } ) //-------------------------------------------------------------------------- oTempTable:InsertSelect( RetSqlName("CT0") , { "CT0_DESC", "CT0_CONTR", "CT0_ALIAS" } ) //------------------------------------ //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 |