Class: DBCache

@nginstack/engine/lib/database/DBCache~ DBCache


new DBCache()

Representa o cache local.

Extends

Members


dbDate :Date

Obtém a data local correspondente a data do banco de dados. Este valor ficará em cache e será calculado com base na data atual e da última vez que este valor foi obtido do banco de dados

Type:
  • Date

dbName :string

Obtém o nome da base de dados da qual este objeto faz cache.

Type:
  • string

dbType :string

Obtém o tipo da base de dados da qual este objeto faz cache

Type:
  • string

dbUTCDate :Date

Obtém a data UTC do banco de dados. Este valor ficará em cache e será calculado com base na data atual e da última vez que este valor foi obtido do banco de dados. Caso haja alteração do horário local este valor deve levar até 10 minutos para ser atualizado.

Type:
  • Date

host :string

Obtém o endereço da base de dados da qual este objeto faz cache

Type:
  • string

initializedSuccessfully :boolean

Indica se o cache local foi inicializado com sucesso, ou seja, se todas as tabelas foram carregadas em cache.

Type:
  • boolean

lastSynchronizedVersion :number

Informa a última versão que foi sincronizada ao cache local.

Type:
  • number

lobCompressionAlgorithm :string

Algoritmo de compressão utilizado nos campos do tipo "memo". Valores possíveis: 'zstd' e 'zlib'.

Type:
  • string

Methods


copyTableStructure(tableName, ds)

Copia a definição de campos da tabela informada para o DataSet. Este método recebe um DataSet ao invés de retornar um, pois o DataSet é temporário e deve ser criado por um IdoDatabase temporário, provavelmente pela classe TiDatabase

Parameters:
Name Type Description
tableName string

Nome da tabela que terá a definição de campos copiada

ds DataSet

DataSet que receberá a definição de campos.


fieldExists(tableName, fieldName)

Verifica se campo existe em uma tabela do sistema.

Parameters:
Name Type Description
tableName string

Nome da tabela onde será pesquisado o campo informado.

fieldName string

Nome do campo que será buscado em tableName.

Returns:

True se o campo existir na tabela informada.

Type
boolean

findKey(key)

Localiza uma chave no cache local. Se a chave existir, será retornado o nome da tabela e o rowId do registro em um objeto. Tais propriedades são acessíveis através dos campos:

  • tableName
  • rowId.
Parameters:
Name Type Description
key number

Chave do registro

Returns:

} Objeto contendo informações sobre a chave encontrada ou null caso a chave não faça parte do cache local.

Type
Object
Example
var object = dbCache.findKey(-1899931725) // retorna object
object.tableName  //retorna ivfs
object.rowId      // retorna o bookmark

getClass(key)

Obtém a classe de um registro do cache local. Se a chave não for localizada será gerado um erro.

Parameters:
Name Type Description
key number

Chave do registro.

Returns:

Chave da classe do registro.

Type
number

getClassFieldName(tableName)

Obtém o nome do campo utilizado para armazenar a classe dos registros na tabela informada.

Parameters:
Name Type Description
tableName string

Nome da tabela.

Returns:

Nome do campo classe.

Type
string

getFieldValue(key, fieldName, refreshIfNotFound)

Pega o valor do campo de um registro.

Parameters:
Name Type Description
key number

Chave do registro

fieldName string

Nome do campo que será retornado

refreshIfNotFound boolean
Returns:

Valor do campo.

Type
number | boolean | string | null

getKeyFieldName(tableName)

Obtém o nome do campo utilizado para armazenar a chave dos registros na tabela informada.

Parameters:
Name Type Description
tableName string

Nome da tabela.

Returns:

Nome do campo chave.

Type
string

getTable(tableName)

Cria um DataSet da tabela informada. As alterações neste DataSet irão alterar o dbCacheEngine e todas as outras tabelas abertas

Parameters:
Name Type Description
tableName string

Nome da tabela a ser obtida

Returns:
Type
DataSet

getTableClass(tableName)

Obtém a chave da classe que definiu a tabela.

Parameters:
Name Type Description
tableName string

Nome da tabela

Returns:

Chave da classe que definiu a tabela.

Type
number

getTableNameDefinedByClass(classKey)

Obtém o nome da tabela definida pela classe de dados sem levar em consideração a herança de classes.

Somente será retornado um nome de tabela se a classe informada for aquela que definiu a tabela pela primeira vez em uma hierarquia de classes. Utilize o método module:@nginstack/engine/lib/database/Classes~Classes#getTableName para obter o nome da tabela associada a uma classe de dados considerando a herança de classes.

Parameters:
Name Type Description
classKey number | DBKey

Chave da classe a ser verificada.

See:
Returns:

Nome da tabela associada definida pela classe de dados.

Type
string

getTableNames()

Retorna a lista de nomes das tabelas do Cache Local

Returns:

lista dos nomes das tabelas

Type
Array

getVersionFieldName(tableName)

Obtém o nome do campo utilizado para armazenar a classe dos registros na tabela informada.

Parameters:
Name Type Description
tableName string

Nome da tabela.

Returns:

Nome do campo classe.

Type
string

hasTable(tableName)

Determina se uma tabela existe no cache local.

Parameters:
Name Type Description
tableName string

Nome da tabela

Returns:

True se a tabela existir

Type
boolean

isCachedTable(tableName)

Determina se os registros da tabela informada estão no cache ou se o mesmo possui apenas uma estrutura vazia da mesma.

Parameters:
Name Type Description
tableName string

Nome da tabela

Returns:

True, caso os registros da tabela estejam no cache

Type
boolean

isFromCache(ds)

Indica se o DataSet informado foi gerado a partir do cache local.

Parameters:
Name Type Description
ds DataSet

O DataSet cuja origem se deseja determinar.

Returns:

Indica se a origem do DataSet é o cache local.

Type
boolean

newTableStructure(tableName)

Devolve uma nova instância de um DataSet temporário com a estrutura da tabela informada.

Parameters:
Name Type Description
tableName string

Nome da tabela para a qual se deseja um dataset montado com sua estrutura.

Returns:

Retorna o dataset com a estrutura da tabela informada.

Type
DataSet

recordFieldExists(key, fieldName)

Verifica se o registro, determinado pela sua chave, possui um dado campo. Este método só funciona para registros presentes no cache local.

Parameters:
Name Type Description
key number

Chave do registro o qual se quer testar.

fieldName string

Nome do campo que será buscado em key.

Returns:

Indica se o campo existe.

Type
boolean

refresh( [wait] [, timeout])

Sincroniza o cache local com o banco de dados.

Parameters:
Name Type Argument Default Description
wait boolean <optional>
false

Se for true indicará que o método irá aguardar a finalização do sincronismo do cache local ou o timeout para executar o próximo comando.

timeout number <optional>
30000

Tempo em milissegundos que o método irá esperar antes de prosseguir a execução. Para um timeout infinito utilize -1.

Returns:

Retorna true se o cache local for sincronizado com sucesso dentro do tempo indicado por timeout ou se o parâmetro waitforfalse`.

Type
boolean
Example
const dbCache = require('@nginstack/engine/context/dbCache');
dbCache.refresh(true);

tableContainsKey(tableName, key)

Indica se uma chave está contida na tabela informada.

Parameters:
Name Type Description
tableName string

A tabela a ser verificada se contém key.

key number

A chave a ser pesquisada.

Returns:

True se a tabela informada contiver a chave.

Type
boolean

tryGetClass(key)

Tenta obter a classe de um registro do cache local, se o registro não for encontrado o retorno será nulo.

Parameters:
Name Type Description
key number

Chave do registro.

Returns:

Chave da classe do registro.

Type
number