Malta tenho uma tabela de socios, e cada socio tem um nrº de socio… Preciso que de vez em quando o utilizador possa ordenar esses numeros, ou seja, tapar os “buracos” feitos quando um sócio é eliminado.
por exemplo
Socio a tem nº 1
Socio b tem nº 2
Socio c tem nº 3
Socio d tem nº 4
Socio e tem nº 5
é eliminado o sócio b e d e tem de ficar assim:
Socio a tem nº 1
Socio c tem nº 2
Socio e tem nº 3
Amigo, acredito que esteja usando um banco de dados certo?
Se sim, é melhor realizar essa ordenação na instrução sql. Se precisar de ajuda com essa instrução poste, que verifico.
balrog
vc nao esta procurando reordenar nada, o que vc quer eh alterar o id/numero do socio, o que eh uma pessima pratica !! em outras palavras esta procurando sarna pra se cocar, se o numero dado ao socio foi X quando foi cadastrado, este deve permanecer o identificador do socio !!
nel
castroluis:
Malta tenho uma tabela de socios, e cada socio tem um nrº de socio… Preciso que de vez em quando o utilizador possa ordenar esses numeros, ou seja, tapar os “buracos” feitos quando um sócio é eliminado.
por exemplo
Socio a tem nº 1
Socio b tem nº 2
Socio c tem nº 3
Socio d tem nº 4
Socio e tem nº 5
é eliminado o sócio b e d e tem de ficar assim:
Socio a tem nº 1
Socio c tem nº 2
Socio e tem nº 3
Alguem me pode dar uma dica sobre como fazer?
Você tem duas alternativas:
1 - Ordenar na tua consulta (order by)
2 - Ordenar via código
Particularmente, prefiro deixar no SQL, todavia, se quiser via código, é só usar um Comparator.
E
entanglement
balrog:
vc nao esta procurando reordenar nada, o que vc quer eh alterar o id/numero do socio, o que eh uma pessima pratica !! em outras palavras esta procurando sarna pra se cocar, se o numero dado ao socio foi X quando foi cadastrado, este deve permanecer o identificador do socio !!
1 (a menos que seu clube tenha exatamente 10 sócios :twisted: )
C
castroluis
É assim, cada Sócio tem Id_Socio e Nr_Socio, estou a usar BD oracle, eu pensei criar um ciclo ordenado que vai fazer um update na BD, Numa unica conexão ficando assim:
update socio set nr_socio = 1 where nr_socio = 1;
update socio set nr_socio = 2 where nr_socio = 3;
update socio set nr_socio = 3 where nr_socio = 4;
update socio set nr_socio = 4 where nr_socio = 7;
update socio set nr_socio = 5 where nr_socio = 8
isto depois do seguinte select a BD
select * from socio order by nr_socio
Que acham? Alguem tem ideia melhor?
ViniGodoy
Tópico movido para o fórum de persistência. Por favor, leia com atenção a lista de fóruns antes de postar, nem tudo é Java Básico.
C
castroluis
Peço desculpa…
PreparedStatement stmt1 = conexao.prepareStatement(sqlInstrucao);
//executa o codigo sql
stmt1.execute(sqlInstrucao);
stmt1.close();
Estou a executar assim o sql…
Mas a instrução é composta por várias instruções, ou seja, “update socio set nr_socio = 1 where nr_socio = 1;update socio set nr_socio = 2 where nr_socio = 3;update socio set nr_socio = 3 where nr_socio = 5;” por exemplo…
Como fazer? Dá erro “java.sql.SQLException: ORA-00911: invalid character”