[Resolvido] update em campo único
Pessoal,
Estou trabalhando num site e me deparei com um erro muito esquisito.
Preciso atualizar um campo no banco que não pode receber registro duplicado.
O que fiz foi o seguinte:
Set objConexao1 = Server.CreateObject("ADODB.Connection")
objConexao1.Open Application("sConexao")
strSQL1="SELECT * FROM usuarios WHERE apelido_url='" & txtApelido1 & "'"
Set objRs1 = objConexao1.Execute(strSQL1)
dim cont, cod_u, controle
controle="ok"
txtmensagem=""
cont = 0
Do while not objRs1.eof
cont = cont + 1
cod_u = objRs1("cod_usuario")
objRs1.movenext
Loop
if cont=1 then
if cStr(cod_u) = cStr(txtCod1) then
controle = "ok"
txtmensagem=""
else
txtmensagem = "Existe um usuário cadastrado com esse apelido"
controle=""
end if
else
txtmensagem = "Existe um usuário cadastrado com esse apelido"
controle=""
end if
if cont=0 then
controle="ok"
txtmensagem="Apelido alterado com sucesso"
end if
objConexao1.close
set objConexao1 = nothing
set objRS1= nothing
Em suma: dei um select no banco procurando pelo apelido. Depois contei a quantidade de registros.
Se for 1, pode ser da própria pessoa ou de outra. Se for da própria pessoa (comparo o código do select com o código do usuário atual) ele atualiza. Se não for, não atualiza.
O problema é que ele funciona certinho se não existe o apelido e se o apelido é da própria pessoa. Se for de outra pessoa, o update é executado, dando o erro de usuário duplicado.
O update só executa se controle ="ok"
Alguma idéia? Só falta isso para o cadastro funcionar!
Valeu!
Discussão (5)
Carregando comentários...