Tempo aproximado para leitura: 00:01:00 min
Dúvida
É possível criar uma tabela que seja compartilhada entre Threads?
Ambiente
Cross Segmentos - Backoffice (Linha Protheus) – ADVPL – a partir da versão 12.1.2210
Solução
Para essa necessidade existe a classe totvs.framework.database.temporary.SharedTable no qual permite criar uma tabela temporária compartilhada entre as threads.
Essa classe assemelha-se com a FWTemporaryTable, mas com o diferencial de permitir que outras threads possam ver e trabalhar na tabela criada.
Exemplo
#INCLUDE 'PROTHEUS.CH'
#INCLUDE "FWLIBVERSION.CH"
#INCLUDE "TOPCONN.CH"
#INCLUDE "TBICONN.CH"
User Function ExFWTemporaryTable()
Local aFields := {}
Local oTempTable1
Local cAlias := "ATESTE"
oTempTable1 := totvs.framework.database.temporary.SharedTable():New( cAlias )
aadd(aFields,{"DESCR","C",30,0})
aadd(aFields,{"CONTR","N",3,1})
aadd(aFields,{"ALIAS","C",3,0})
oTemptable1:SetFields( aFields )
oTempTable1:Create()
conout(oTempTable1:GetRealName())
Return
Saiba mais
totvs.framework.database.temporary.SharedTable
0 Comentários