Ir para conteúdo

POWERED BY:

Arquivado

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

onedev

[Resolvido] Como salvar um cadastro e em seguida acessa-lo imedia

Recommended Posts

Pessoal,

 

minha dúvida é a seguinte: Em um cadastro de cliente eu preciso que logo após salvar os dados do novo cadastro na mesma tela mostrar os dados em um cadastro para alteração. Qual o melhor metodo/ideia para solucionar isso?

 

Estou fazendo da seguinte forma, eu salvo o cadastro e na página seguinte eu faço uma leitura do ultimo registro cadastrado.

(SELECT * FROM clientes ORDER BY DESC LIMIT(1))

 

O problema dessa idéia é que se no intervalo desse cadastro algum outro registro for criado o sistema pode acabar mostrando o cadastro errado. Existe uma forma por exemplo de quando um cadastro for salvo ao mesmo tempo exibir o ID que foi gerado para gravar esse cadastro? pois assim após a gravação eu mando exibir o cadastro por esse id.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Utilize os mesmos dados que foram cadastrados no INSERT nesse SELECT.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Para recuperar o ultimo valor inserido de um campo autonumeração utilize as opções abaixo dependendo de seu banco de dados.

 

SQL Server você tem a opção de usar IDENT_CURRENT ou @@IDENTITY

------------------------

SELECT IDENT_CURRENT('Table_Name')

------------------------

IDENT_CURRENT retorna o último valor de identidade gerado para uma tabela específica em qualquer sessão e escopo.

@@IDENTITY retorna o último valor de identidade gerado para qualquer tabela na sessão atual, em todos os escopos.

 

MySQL

--------------------------

SELECT LAST_INSERT_ID()

--------------------------

 

O Banco de dados se encarrega de criar uma sessão para cada cliente de maneira que não ocorra problemas com conexões simultaneas.

Compartilhar este post


Link para o post
Compartilhar em outros sites

olha este exemplo, onde antes de incluir é feita uma selecao para ver se os dados ja existem, no seu caso você só invert

 

<% 'incluir_action.asp => fazer a inclusao no BD, antes fazendo uma verificaçao
   'no BD através de SQL Select if not rs.eof then
   'redireciono para incluir_form.asp?msgeof=1 else
   'incluo no bd atraves da SQL Insert e redireciono para adiministraçao.asp?msg=1
   'e lá receberá um mensagem de sucesso
   
   Option explicit
   'declaro as var
   dim varlogin, varemail, varsenha, conexao, conDBQ, constring, rsselect, SQLselect, rsinsert, SQLinsert
   'recupero todos os dados
   varlogin=trim(request.form("login"))
   varsenha=trim(request.form("senha"))
   varemail=trim(request.form("email"))
   'crio a conexao
   %>
   <!--#include file="conn/conexao1.asp"-->
   <% 'abrir a conexao
   call abreconexao
   'crio o rsselect para verificar se os dados jah estaun cadastrados
   set rsselect=server.createobject("ADODB.Recordset")
   'crio o SQLselect
   SQLselect="SELECT login FROM login WHERE login='"&varlogin&"'"
   rsselect.open SQLselect,conexao,1,3
   if not rsselect.eof then
   		response.redirect("incluir_form_treina.asp?msgeof=1")
		set rsselect=nothing
   else	
   		'crio o rsinsert para inseiri os dados no bd
   		 set rsinsert=server.createobject("ADODB.Recordset")
		'crio o SQLinsert pra incluir no bd
		SQLinsert="INSERT INTO login(login,senha,email) values('"&varlogin&"','"&varsenha&"','"&varemail&"')"
		rsinsert.open SQLinsert,conexao,1,3
		response.redirect("administracao_treina.asp?msg=1")
		set rsinsert=nothing
	end if 
	call fechaconexao %>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pessoal,

 

obrigado pela ajuda. resolvi o problema, o código ficou assim:

 

Set rs1 = Server.CreateObject("ADODB.Recordset")
rs1.Open "SELECT LAST_INSERT_ID()", Conexao
  mensagem = "Número do cadastro: " & rs1(0)
rs1.Close

esse código fica logo depois do codigo que salva o novo cadastro.

Compartilhar este post


Link para o post
Compartilhar em outros sites

beleza...

kker coisa posta ae...

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.