Ir para conteúdo
Fórum Script Brasil
  • 0

Reordenar


Deividy

Pergunta

algum tempo atraz foi abordado um assunto de reordenar o campo de um banco de dados com campos automaticos, acho que é isso

o que ue quero saber é quase isso

breve explicão, tenho um form para documento 1 só que pode ser que surja documento 2 documento 3 eassim por diante

mais ai quero apagar o doc 1

e automaticamente renumerar o 2 passa a ser 1

o 3 passa a ser o 2

alguém pode me ajudar ?

Link para o comentário
Compartilhar em outros sites

22 respostass a esta questão

Posts Recomendados

  • 0

Brother, estamos falando de FSO?

Documentos = arquivos salvos em alguma pasta no servidor?

Link para o comentário
Compartilhar em outros sites

  • 0

Hum..

você quer renomear os dados que sobraram lá? Ou os campos da estrutura da tabela do banco?

Link para o comentário
Compartilhar em outros sites

  • 0

acredito que estamos falando de estrutura

porque os numero que quero alterar não são o id que é auto numerico e sim um numero sequencial que faz parte co cadastro para cada pessoa

tipo eu tenho 4 documento cadastrado

id = 1 cont = 1 identificação = 30

id = 10 cont = 2 identificação = 30

id = 40 cont = 3 identificação = 30

identificação seria o meu numero de registro

id é o automatico gerado para essa tabela que é usado para outras coisas

cont é o campo onde quero alterar

se apagar o 1 eu queria colocar o 2 como um em cont

Link para o comentário
Compartilhar em outros sites

  • 0

Se não me engano, a gente fez ele no 2º Desafio do Forum..

Link para o comentário
Compartilhar em outros sites

  • 0
Link para o comentário
Compartilhar em outros sites

  • 0

eu peguei sua função que o dark posto lá assim nem sei se é a mais facil

eu nunca trabalhai com os camo dessa maneira

Function FProximo_registro(campo,tabela)

sql = "select * from "&tabela&" order by "&campo&""

preciso de um help

eu não seu alguém pode me explicar como seria essa variavel de tabela, eel esta pegando esse campo de onde?

Link para o comentário
Compartilhar em outros sites

  • 0

Olá deividy.

Olha só..

Neste desafio, eu montei aquela função, só pra ver mesmo hehe

Se fosse montar, acho que já usaria outros modos, em que eu peguei mais pratica.

A função:

<%

Function FProximo_registro(tabela,campo)

'Seleciona os dados da tabela, que é enviada como parametro ao chamar a funcao, e ordena pelo campo

sql = "select * from "&tabela&" order by "&campo&""

set rs = conexao.execute(sql)

'testa se a tabela ta vazia, e se tiver, o proximo registro será o primeiro, senao, é feito um loop, pra descobrir qual será o proximo registro.

if rs.eof = true then

FProximo_registro = 1

else

i = 1

rs.MoveFirst

do while not rs.eof

if i <> rs("codigo") then

  FProximo_registro = i

else

  i = i + 1

  FProximo_registro = i

end if

rs.MoveNext

loop

rs.MoveFirst

end if

End Function

'Response.Write FProximo_registro("nomeTabela","nomeCampo")%>

No Response.write, seria um modo simples, de chamar a função, e mostrar o próximo registro na tela.

Para você usar a função, você precisa só chamar ela, assim:

<%variavel_que_guardará_o_valor = FProximo_registro("nome_da_sua_tabela",nome_do_campo_que_quer_ordenar")%>

Tendeu?

Link para o comentário
Compartilhar em outros sites

  • 0

legal entendi estou lendo o tópico que inicio o desafio é bem interesante

mais ai surgiu um problema não é isso que quero, não quero saber o registro que esta faltando e sim quero reordenar os campos

eu sei que ele não terão mais que 10 por iso quero reordenar os campo

1234

se apagar o 2

134

ai reordenar

123

entendeu parece mais facil que isso só não entedi como ainda

se puder me ajudar

Link para o comentário
Compartilhar em outros sites

  • 0

Hum..

isso deve dar um pouco de trabalho, mas vamos ver..

você usa aquela funcao, e descobre qual esta faltando.

então, você pega todos os registros que vem depois daquele lá, e diminui 1.

Assim, você vai refazer..

Isso foi um 'chute' só..

Pois, enquanto escrevia aqui, isso veio na minha cabeça.

Acho que não deixa de ser uma solução.. Mas não sei se faria exatamente o que você quer.

Veja se serve, e tente bolar o codigo.

Caso não consiga, poste aí, que eu vejo se consigo fazer algo. É que to de saída agora.. hehe

Abraços

Link para o comentário
Compartilhar em outros sites

  • 0
não rola !

porque não?

Link para o comentário
Compartilhar em outros sites

  • 0

Brother!

Procure nos tópicos criados por mim.

O 2ºdesafio e um tópico onde foi debatido isso.

o tópico se chama: cadastro de membros.

Q hj em dia eu teria colocado um nome bem melhor...

Se você der uma boa olhada nas discussões destes tópicos, você entenderá como funciona.

Caso desista, e role um dim dim biggrin.gif, eu faço a função pra você wink.gif

Caso contrário, a gente dá uma mãozinha aki.

Abraços!

Link para o comentário
Compartilhar em outros sites

  • 0

Aí, a lógica toda, sem misteríos!

Só pensar.

Você tem uma tabela com a sequencia de valores, assim:

1,2,3,4,5,6,7,8,9

você exclui o 7.

Opções:

- Dae vai querer reordenar logo após ter excluído o registro?

- Prefere que quando um novo registro for adicionado ele preecher o buraco, no caso, o 7 q foi por último excluído?

Link para o comentário
Compartilhar em outros sites

  • 0

no meu caso isso não adinataria!

porque é assim

tenho 3 cadastro com o nome de documento que estão vinculado com uma pessoa

pessoa 1

doc 1 | doc 2 | doc 3

esse doc ele são links para uma página para que a pessoal e outros usuarios tenha acesso a esse doc

só que eu sempre estou dizendo na página que recebe que ele é o doc 1 não posso alterar isso! por outros motivos!

então há idéia é sempre que deletar reordenar!

e tambem esteticamente fica melhor

ex.

se eu apagar doc 2

fica

doc 1 | doc 3

esteticamente não é legal

agora se eu apagar o doc 1

eu não consigo chamar o 2 porque esta configurado para sempre chamar o 1

não sei se deu para entender

por isso o meu problema se resolveria com uma reorganização desse campo

Link para o comentário
Compartilhar em outros sites

  • 0

Bem, podemos começar por partes, no final a gente pode ver se dá pra otimizar o código.

Vamos a lógica! biggrin.gif

- Pegue a estrutura como está em ordem crescente

- Crie um contador dentro de um loop

- Vá atualizando cada registro com o valor do loop.

Ex.:

 '//Pode colocar um WHERE <condicao>, se necessário na t-sql
Dim sql, rs, x
sql = "SELECT doc FROM tabela ORDER BY doc ASC"
Set rs = Server.CreateObject("ADODB.Recordset")
rs.open sql,con,2,3
If NOT rs.eof Then
  While NOT rs.eof
    x = x + 1
    rs("doc") = x
    rs.Update
  rs.movenext
  Wend
end if
rs.Close : set rs = nothing

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,6k
×
×
  • Criar Novo...