Ir para conteúdo

POWERED BY:

Arquivado

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

claudemircruz

Uso correto de sessão

Recommended Posts

Olá pessoal!!!

 

imagine a seguinte situação. tenho três tabelas relacionadas, quando incluo dados na primeira ele gera um novo ID, e preciso deste ID para incluir dados nas outras duas. Como faço para obter este ID.

 

Sei que tenho que usar sessão, só não sei como.

 

meu global.asa está assim:

 

<script LANGUAGE=VBSCRIPT RUNAT=SERVER>Sub Application_OnStart   Application("totaldeusuarios") = 0   Application("datainicial") = now   Application("usuariosonline") = 0End SubSub Application_OnEndEnd SubSub Session_OnStart   Session.TimeOut = 20   Application.Lock   Application("totaldeusuarios") = Application("totaldeusuarios") + 1   Application("usuariosonline") = Application("usuariosonline") + 1   Application.UnlockEnd SubSub Session_OnEnd   Application.Lock   Application("usuariosonline") = Application("usuariosonline") - 1   Application.UnlockEnd Sub</SCRIPT>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Este novo ID que gera é automatico, tipo autonumeracao?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Se for voce pode pegar este Id selecionando-o usando dados de cadastro<%set rsId = Server.CreateObject("ADODB.Recordset")rsId.ActiveConnection = conexaorsId.Source = "SELECT Id FROM NOMETABELA WHERE CAMPOINSERIDO = " & VALORINSERIDOrsId.CursorType = adOpenForwardOnlyrsId.CursorLocation = adUseServerrsId.LockType = adLockPessimisticrsId.Open()WHILE rsId.EOF rsId.Close() rsId.Source = "SELECT Id FROM NOMETABELA WHERE CAMPOINSERIDO = " & VALORINSERIDO rsId.Open() WENDId = rsId("Id")%>

Compartilhar este post


Link para o post
Compartilhar em outros sites

MarioufpaO campo é do tipo autoincremento.....isto q você fez acima é loucura....Gostaria de saber como fazer com o uso de sessões.imagine que 10 pessoas vão acessar ao mesmo tempo, como saberia o ID gerado para cada um....

Compartilhar este post


Link para o post
Compartilhar em outros sites

a forma mais segura q conheço dessa função eh usando procedure do sql ou oracle.. pq nela, é possível pedir de volta a chave primária gerada ao registro adicionado... mas qto a forma explicada pelo marioufpa, é muito utilizada... eh soh você tomar cuidado e tratar esses campos com variáveis para evitar isso q você falou de multiplos acessos... tipo assim... se você fizer um SELECT depois do INSERT, buscando por IDSESSION do solicitante da inserção, ip e data/hora a probabilidade te você ter 2 com o mesmo registro eh quase nula....falow

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá pessoal, bom dia....Resolvi o meu problema da seguinte maneira.No INSERT inclui o Session.SessionID em um campo. ( não sabia da existencia deste comando ) Ai Em Seguida consulto o registro com este Session.SessionID e pego o ID necessário para fazer o relacionamento com outras tabelas.Valeu a ajuda ....

Compartilhar este post


Link para o post
Compartilhar em outros sites

soh toma cuidado de usar somente SESSIONID, ok... os servidores naum geram esses ID como se fossem uma chave primária.. nunca se repete.... pode ocorrer, de o servidor ser reiniciado e ele começar a fornecer sessionid já fonecido anteriormente, ok... falow

Compartilhar este post


Link para o post
Compartilhar em outros sites

ok...NÃO USO O SSESSIONID COMO CHAVE PRIMÁRIA.....ELA É AUTOINCREMENTO....USO O SESSION ID SÓ PARA VER O ID GERADOvaleu....

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.