É possível criar uma nova tabela do Storage em tempo de execução?
Solução:
Sim; para isto, existem duas possilidades.
A primeira delas utiliza os métodos Activate e Deactivate, que respectivamente ativam e desativam um objeto quando existe a necessidade de realizar uma configuração prévia (inicialização de propriedades, por exemplo), ou quando se deseja realizar testes nos quais o objeto não pode estar presente e ativo.
A segunda possibilidade utiliza os métodos StartAcquisition e StopAcquisition, que efetuam procedimentos de parada e retomada na geração de dados que vão para o Banco de Dados. O Storage recebe notificações sobre quais tags cadastrados sofreram modificação, e quando isto acontece ele verifica se os registros serão gravados ou não. Quando este método é chamado, a notificação de mudança e a geração de gravações são paralisadas.
A partir desses dois eventos, é possível criar uma nova tabela através da propriedade TableName do Storage, que deverá ser alterada após a execução do método que desativa a comunicação com o banco.
Exemplos:
Application.GetObject(“Storage1”).Deactivate()
Application.GetObject(“Storage1”).TableName = “Tabela”& Minute(now)
Application.GetObject(“Storage1”).Activate()
OU
Application.GetObject(“Storage1”).StopAcquisition()
Application.GetObject(“Storage1”).TableName = “Tabela”& Minute(now)
Application.GetObject(“Storage1”).StartAcquisition()