Tenho uma aplicação em Java que acessa uma tabela em Paradox(uso aquele programa do Delphi), mas o problema é o seguinte: exemplo: gravei 10 funcionários na tabela, então é gravado 1 , 2 , 4 ,3, 5…, ou seja , tem momento que é gravado os campos do código fora de ordem e minha aplicação precisa que se mantenha a ordem. Tem algo que possa fazer pra manter gravando sempre na ordem?
Outro problema é quando excluo algum código da tabela, o código sai e fica um espaço.Ex: excluo o código 3, entaum vai ficar 1,2,4,5…
Gostaria de saber se tem como eu atualizar de modo que o código 4 passe a ser o 3, o código 5 passe a ser o 4 etc?
Pessoal se alguém puder me ajudar, pq estou precisando mesmo,
se eu lembro bem, o paradox trabalha com sql, certo?
então na sua aplicação é só vc organizar os dados no select…
ex:
select * from suaTabela where... order by suaTabelaID;
resumindo, toda vez que efetua o select ele ordena pelo id, aí é só exibir os dados normalmente.
agora, quanto a excluir e atualizar os codigo, naum é considerada uma boa técnica de programação, pois vc estará trocando o valor da chave-primária, mas se vc tiver certeza que quer isso é possível.
por exemplo, vc excluiu seu id 3, agora vc faz um select em todos os dados onde for maior que 3, e ae vc cria um metodo de reorganização.
Imagine se você tiver mais de 100 registros na tabela daí você exclui o de número 5. Você vai querer transformar os códigos dos registros seguintes em “código - 1” ficaria inviável, quanto tempo o software demoraria para poder reorganizar tudo isso pra você.
Sou a favor de fazer o que nosso amigo citou anteriormente.
Para JavaPlayer : Acho que o paradox naum tem isso que vc falou…
Concordo com vocês, vou ter que mudar a maioria das coisas, gostaria da opinião de vocês do que fazer:
1º Todos os campos na minha tabela são caracter, acho que é melhor mudar pros tipos respectivos né(código = inteiro etc)?
2º Na hora de cadastrar eu vou deixar o usuário colocar o código que ele quiser, aí vamos supor que ele cadastre o 2, o 4 e o 6, na hora em que ele clicar no botaum novo vou colocar pra aparecer o 7(seria pra aparecer o 3) no campo do código, mas o 3 e o 5 ficarão vazios, por isso existiu a idéia de organizar(mudar os códigos vazios), sabem o que posso fazer pra que essa nova maneira dê certo ?Porque vai ficar tudo embolado, mas entendendo que é melhor dessa maneira, só não sei como lhe dar com esses problemas.
Preciso fazer uma estrutura de dados organizada e simples, concordo que do jeito que está agora, está organizado, mas complexo.
O paradox suporta select’s sim, desde que estes select’s sejam colocados na programação, porque no banco isso não funciona.
1º - Acho que sim… você pode mudar todos os tipos de campos para os seus respectivos tipos.
2º - Você pode criar uma rotina pra poder percorrer a tabela verificando os códigos existentes na tabela e gerando os códigos seguintes aos não existentes. Tipo:
int i = 1;
enquanto (i == procuracodigo(codigo_da_tabela))
i++;
return i;
Algo desse tipo, porque daí quando se deletar algum código lá no meio da tabela por exemplo o código 5. Quando for ser inserido mais um novo registro na tabela a rotina vai chegar a um ponto em procurar pelo código 5 na tabela e não vai encontrar, daí então será inserido um novo código 5 na tabela.
Quando você precisar visualizar a tabela organizada você faz um select.
Bom eu não cheguei a ter experiência com mais de 450 registros na tabela, mas posso te garantir que pelo menos até 450 não foi lento não, pelo contrário, foi até bem rápido.