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

Auto Numeração


korvo

Pergunta

14 respostass a esta questão

Posts Recomendados

  • 0

que tipo de validação você esta falando?

As brechas do campo autonumeração, que foi abordado em outros tópicos, é a seguinte:

- você tem uma tabela, no banco, com um campo de autonumeração.

- você cria um formulario, que cadastre registros na tabela.

- A cada novo registro, o campo de autonumeração é incrementado em 1.

- E se você tiver 50 registros.

- A estrutura será: 1,2,3,4,5,6,... (no campo autonumeração).

- Se você apagar toda a linha 2, por exemplo. (usando o DELETE).

- Sua estrutura ficará: 1,3,4,5,6... (sem o numero 2, que é ali a brecha)

Entendeu do que estavamos falando naquele tópico (que o guto criou)?

abraços

Link para o comentário
Compartilhar em outros sites

  • 0

java script mesmo. fica melhor pra mim, porque o usuário não ta afim de fica voltando toda vez pra corrigi alguma coisa.

eu tenho já o código aki.

eu acho q com uma validação antes, vai evitar o problema de brechas no bd.

Afinal, qual o q ocasiona brechas no bd? algum campo requerido no meu bd que o usuário não informou no cadastro?

Link para o comentário
Compartilhar em outros sites

  • 0
cara to perdido no q você ta falando, não entendi nadica de nada, pode ser um pouco mais claro?? blink.gif

Você perdido? Não mesmo!

Olha o korvo.. hehehe, esse sim tá viajando, perdido..

Brincadeira!!!

Aí korvo, nem eskenta, aki todo mundo se ama wink.gif

Assim, o que causa a tal brecha no BD na qual falamos é assim:

digamos q nosso bd tem 3 registros, ou seja, existem 3 pessoas cadastras.

Você, o Victor e Eu, correto.

Sendo que você foi o segundo a se cadastrar; O vitor foi o último e eu o primeiro.

Então, eu tenho o ID = 1

Você o ID = 2

o Victor o ID = 3

Logo temos uma contagem de 1 à 3.

Assim: 1, 2 e 3.

Dae você sentia-se perdido (hehe) no nosso site, e resolveu remover seu cadastro, cancelou-o.

Então eu como admin fui lá e apaguei o seu registro.

então agora o nosso BD tem apenas dois registros.

Então, ele se encontra assim agora:

1 e 3

Nota-se que falta o ID de nº igual a 2.

O que parece ser uma falha na contagem, dae isso é que chamei de "brecha" no BD.

Sacou?

Dae nakele tópico estamos discutindo em como fazer o repreenchimento deste ID, ou seja, para que o próximo cara que for se cadastrar, ao invés de ocupar o ID = 4, ele ocupar o da brecha, então receber o ID = 2, sacou maninho?

Essa função eu já fiz e tenho no pc, só quero ajudar a galera a saber fazer isso e tudo mais.

Mas no mais o pessoal pelo jeito já sabe fazer.

Dae o nosso amigo URSÃO, brother, citou em fazer algo diferente.

De não precisar esperar o próximo visitante a se cadastrar pra preencher a "brecha", mas sim, quando o cara remover o seu cadastro, autoticamente fazer a re-indexação da tabela, ou seja, remontar a ordem dos ID's sem deixar uma falha na contagem.

Vamos fazer um novo exemplo.

Temos um banco de dados com 100 registros, ou seja, 100 pessoas cadastradas.

O cara com o ID = 50 resolve remover o seu cadastro, então ficamos com uma brecha no ID de nº50.

De 1 a 100, falta o 50 então.

Dae na hora que isso acontecer, transformarmos o ID 51 em 50, e o 52 em 51, 53 em 52 e assim por diante, sacou?

É isso a tal brecha no BD.

Quanto a sua dúvida.

Faça uma validação em javascript e depois em asp no seu formulário.

Pois o javascript só proteje no cliente, e caso o cliente não tenha suporte a javascript ou edite seu código, você estará vulnerável.

Então se você fazer a proteção com o asp também, dae tudo ficará beleza. 99,9% protegido!

Link para o comentário
Compartilhar em outros sites

  • 0

entendi tudo agora. o q seria uma boa resposta para o meu poblema é fazer como o URSÃO, de fazer uma re-indexação.

mas o meu problema anterior, das brechas, não foram ocasionadas por eu ter removido o registro. estão acontecendo "sozinhas". eu acho q é porque, como tinha falado antes, do usuário não digitar um campo requerido, fazendo q não seja salvo o registro todo. Será isso o problema de não criar o registro completo e não ser exibido no bd?

Link para o comentário
Compartilhar em outros sites

  • 0

Cara, você tá falando do cara não preencher o campo e dae ficar o campo em branco?

Se for isso, não é uma "brecha"!

Forçe o cara a preencher os campos usando condições

If request("campo") = "" or IsNull(rsquest("campo")) Then
Response.Write "campo inválido, volte e corrija
else
'deixa o cara continuar o processo
End if"

Link para o comentário
Compartilhar em outros sites

  • 0

Não só o campo como todo o registro fica em branco.

no caso, esta validação eu colocaria no "enginer" q vai gravar no bd?

tipo, o meu tem o formulario, e envia com o action=envia.asp

<form action=envia.asp>
aí tem o "enginer" q é o envia.asp
<%

StrName   = replace(Request("Name"),"'","''")
StrEmail  = replace(Request("Email"),"'","''")
StrComment = replace(Request("Comment"),"'","''")

dbfile=Server.MapPath("guestbook.mdb")

Set OBJdbConnection=Server.CreateObject("ADODB.Connection")
OBJdbConnection.Open "driver={Microsoft Access Driver (*.mdb)};dbq="&dbfile

sql_ins="INSERT into Comment (Name, Email, Comment) VALUES " & _
  "('" & StrName & "', '" & StrEmail & "', '" & _
  StrComment & "') "

Set rs1 = Server.CreateObject("ADODB.Recordset")

rs1.Open sql_ins, OBJdbConnection, 3, 3

Response.Redirect("guestbook.asp")

%>

Link para o comentário
Compartilhar em outros sites

  • 0

Não, eu só quero saber onde coloco aquele código do GUTO

If request("campo") = "" or IsNull(rsquest("campo")) Then
Response.Write "campo inválido, volte e corrija
else
'deixa o cara continuar o processo
End if"

no meu código q tá no meu ultimo post.

Link para o comentário
Compartilhar em outros sites

  • 0

<%
StrName   = replace(Request("Name"),"'","''")
StrEmail  = replace(Request("Email"),"'","''")
StrComment = replace(Request("Comment"),"'","''")

If strName = "" or IsNull(strName) or strEmail = "" or IsNull(strEmail) or strComment = "" or IsNull(strComment) Then
Response.Write "campos inválidos... todos os campos tem de ser preenchidos, volte e corrija"
Else
dbfile=Server.MapPath("guestbook.mdb")

Set OBJdbConnection=Server.CreateObject("ADODB.Connection")
OBJdbConnection.Open "driver={Microsoft Access Driver (*.mdb)};dbq="&dbfile

sql_ins="INSERT into Comment (Name, Email, Comment) VALUES " & _
 "('" & StrName & "', '" & StrEmail & "', '" & _
 StrComment & "') "

OBJdbConnection.Execute(sql_ins)

Response.Redirect("guestbook.asp")
End If
%>

Brother, vi que você tem um nível de ASP bem básico, recomendo á você que faça um curso de ASP no site http://www.iPED.com.br e também pegue alguns tutorias e tente aprender.

Tente criar alguns códigos e vá testando.

É a melhor forma de aprender. Lembre-se: "Se você quer bem feito, faça você mesmo"

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,1k
    • Posts
      651,8k
×
×
  • Criar Novo...