|
Postada em 30/06/2004 08:54 hs
Olá Pessoal Tenho uma tabela chamada Funcionarios e existe nela estes campos: "Ordem" e "Nome", dentre outros. O campo ordem recebe valores do tipo int, e serve para ordenar a lista de funcionarios. Sendo assim, caso o usario queira reordenar por ordem alfabetica a lista clicando no botao no form "Reordenar por ordem alfabetica", o programa tem que executar uma Query que faça o mesmo, ou seja fazer um update nos registros, no campo ordem, reordenando por ordem alfabetica, ou seja: Se minha tabela contiver NOME ORDEM Almir 3 Jorge 1 Ricardo 5 Carlos 2 Henrique 4 Apos o Update, tem que ficar assim: NOME ORDEM Almir 1 Jorge 4 Ricardo 5 Carlos 2 Henrique 3 Alguem sabe como eu posso fazer isso? Muito Obrigado. Márcio
|
|
|
|
|
Postada em 30/06/2004 13:56 hs
Vc quer saber como fazer as Querys ou como fazer o projeto pra que isso aconteca? Se for as Querys eh facil: Order por nome em ordem Crescente - Select ordem,nome From funcionarios order by nome ASC Ordem por nome decrescente - Select ordem,nome From fucionarios order by nome DESC Faca a mesma coisa somente trocando o nome dos campos no order By .... Valeu
|
|
|
Márcio
|
SANTO ANDRÉ SP - BRASIL
|
|
ENUNCIADA !
|
|
|
Postada em 30/06/2004 14:11 hs
Isso beleza. Agora preciso fazer o update no campo ORDEM com essa ordem crescente... Assim, o primeiro registro do select, tenho que fazer um update Set Ordem = 1, no segundo registro desse select, tenho que fazer um update Set Ordem=2 ...etc...
|
|
|
|
Postada em 30/06/2004 14:49 hs
Depois um loop jogando o numero de ordem... Dim i i = 1 tabela.moveL.a.s.t tabela.moveF.i.r.s.t while Not tabela.Eof strSQL="Update fucionarios set ordem=" & i conexao.execute strQSL tabela.movenext i = i + 1 wend conexao.close set conexao = nothing Acho que pode ajudar ![Emoções](http://www.vbweb.com.br/images/em_wink.gif) t+ - Eriston
|
|
|
Márcio
|
SANTO ANDRÉ SP - BRASIL
|
|
ENUNCIADA !
|
|
|
Postada em 30/06/2004 14:54 hs
Entao Eriston, Mas preciso fazer isso Dentro de uma stored Procedure, voce sabe como posso fazer??
|
|
|
|
Postada em 30/06/2004 15:15 hs
Nesse caso ficaria +/- assim: CREATE PROCEDURE dowhile() BEGIN DECLARE i INT DEFAULT 1; WHILE i =< (nº de registro encontrados) DO SET ordem = i; (proximo registro); END WHILE; END Não conheço os demais comandos, + acho que seria isso... T+ - Eriston
|
|
|