// Carregar os arquivos de indices na memoria. private void carregarIndices() { Metadados meta = GerenciadorMemoria.getInstance().recuperarMetadados(arqTabela.nome); foreach (KeyValuePair <string, string[]> item in meta.getIndexes()) { arqsIndices.Add(item.Key, new ArquivoIndice(item.Key)); } }
// Insere o registro nos indices. public void insertIndices(RegistroTabela registro, long posicao, string tabela) { if (arqsIndices.Count > 0) { // Percorre indices. RegistroIndice registroIndice; Metadados meta = GerenciadorMemoria.getInstance().recuperarMetadados(tabela); foreach (KeyValuePair <string, string[]> item in meta.getIndexes()) { // Monta indice. registroIndice = new RegistroIndice(); for (int i = 0; i < item.Value.Length; i++) { DadoIndice dadoIndice = new DadoIndice(meta.getDados()[item.Value[i]].getTipoDado(), registro.dados[meta.getNomesColunas().IndexOf(item.Value[i])].valor); registroIndice.dados.Add(dadoIndice); } // Insere no indice. insertIndice(item.Key, registroIndice, posicao); } } }