Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

AspAL

sobre conexão, set e where

Recommended Posts

Negócio é o seguinte galera... o kra vai adiconar um registro no banco, e o código verifica se o kra já adicionou aquele registro anteriormente.

 

Se o kra já tiver adiconado, então esse registro não poderá ser incluso novamente.

 

Eu consegui fazer essa verificação e esse bloqueio, o problema é que só funciona se o cara já possuir um registro! Se não possuir registro nenhum no código, e for a primeira vez q o kara vai adionar algo, então o código dá erro.

 

Pq na lógica, o código primeiro teria de verificar se o registro já existe, e se não existir, ele deveria adiconá-lo. Mas não acontece isso. Alguém me ajuda por favor? O código é esse (vou comentá-lo):

 

<%

DIM CONEXAO, RSTABELA, ID, ID_CURSO, ID_COMPARA, SQL

SET CONEXAO = SERVER.CREATEOBJECT("ADODB.CONNECTION")

CONEXAO.OPEN "PROVIDER = MICROSOFT.JET.OLEDB.4.0;DATA SOURCE=" & SERVER.MAPPATH("registros.mdb")

 

' Aqui ele seta o primeiro registro de acordo com o ID do cara.

SET RSTABELA = CONEXAO.EXECUTE("SELECT * FROM escolha WHERE ID_ALUNO=" & SESSION("user_id"))

 

 

ID = SESSION("user_id")

 

'Aqui eu estou atribuindo à essa variável, o valor novo que o cara quer adicionar

ID_CURSO = SESSION("ID_CURSO")

 

 

' Aqui começa a verificação se o registro já existe

RSTABELA.MOVEFIRST()

WHILE NOT RSTABELA.EOF

 

 

' Aqui eu atribui à essa variável o valor que tiver no campo ID_CURSO.

ID_COMPARA = RSTABELA("id_curso")

 

' Compara se o registro que o cara quer adicionar, já tem no banco

IF (ID_COMPARA=ID_CURSO) THEN

RESPONSE.REDIRECT "ERRO.ASP"

END IF

 

' Move pra o próximo registro

RSTABELA.MOVENEXT()

WEND

 

'Se ele verificar todos os registros do cara, e nenhum for igual ao novo que ele quer incluir, então ele inclui o novo registro

SQL = "INSERT INTO escolha (id_aluno,id_curso) VALUES ('"&id&"','"&id_curso&"')"

On error Resume Next

 

'Talvez o erro esteja aqui, mas eu n tenho certeza

Set RSTABELA = CONEXAO.Execute(SQL)

CONEXAO.close

 

Set RSTABELA = Nothing

Set CONEXAO = Nothing

 

if err = 0 Then

response.redirect "sucesso.asp"

end if

 

%>

 

Alguém ajuda

Compartilhar este post


Link para o post
Compartilhar em outros sites

você precisa de um :IF RSTABELA.EOF then (e insere o registro)else (mensagem avisando q já existe registro dele)end IF

Compartilhar este post


Link para o post
Compartilhar em outros sites

Mantendo seu código, quando você faz seu:

 IF (ID_COMPARA=ID_CURSO) THEN
RESPONSE.REDIRECT "ERRO.ASP"
END IF

Poderia na verdade fazer:

 IF (ID_COMPARA=ID_CURSO) THEN
Existe = True
END IF

E no final você verifica se essa variável "Existe" é diferente de True, se for você Insere o novo registro.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.