Atualiza as definições globais de uma tabela no cache de definições do DBAccess.
Sintaxe
TCRefresh( < cTable > )
Parâmetros
Nome | Tipo | Descrição | Obrigatório | Referência |
---|---|---|---|---|
cTable | caractere | Indica o nome da tabela para atualizar o cache de definições do DBAccess. | X |
Retorno
Nome | Tipo | Descrição |
---|---|---|
uRet | nil | Esta função sempre retorna nulo. |
Observações
Atenção
A utilização desta função é para fins específicos, em aplicações onde isto realmente é necessário. Chamar a função TCRefresh() desnecessariamente em uma aplicação pode prejudicar a performance da mesma.
O DBAccess mantém um cache de definições de estruturas de tabelas em uso (estruturas de campos, índices e controle de numeração), para as tabelas abertas pelo sistema. Este cache é criado à medida que novas tabelas são abertas, e otimiza a abertura de tabelas da aplicação, uma vez que qualquer alteração estrutural na tabela ou suas definições é feita utilizando demais funções da RDD através do DBAccess, ele mesmo atualiza os caches internos de estruturas.
Caso um programa realize instruções de alteração estruturas ou índices diretamente nas tabelas do banco, mediante a função TCSQLExec() ou procedures por exemplo, e pode ser necessário solicitar ao DBAccess que ele atualize o cache global com as novas definições da tabela. Neste caso, utiliza-se a função TCRefresh().
Internamente, a obtenção das definições de campos, índices e tratamentos adicionais de uma tabela de dados do DBAccess consiste em executar queries montadas dinamicamente para obter do banco de dados as definições das colunas e índices da tabela em questão, depois obter as definições complementares registradas na TOP_FIELD, atualizar o número do último registro físico (R_E_C_N_O_ ) da tabela em memória, para o controle de inserções. Ao executarmos a função TCRefresh(), informando o nome da tabela, o DBAccess vai recriar a definição estrutural desta tabela no cache de estruturas do DBAccess.
Exemplos
USER FUNCTION TEST() TcLink() DBCreate("TABLE_NAME", {{"FIELD_NAME", "C", 10, 0}, ; {"FIELD_AGE", "C", 10, 0}}, "TOPCONN") TCSqlExec("ALTER TABLE TABLE_NAME RENAME COLUMN FIELD_NAME TO FIELD_NEW_NAME") TCRefresh("TABLE_NAME") TcUnlink() RETURN