예제 #1
0
        // 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));
            }
        }
예제 #2
0
        // 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);
                }
            }
        }