Lock Table Usando Asp E Oracle
#1
Posted 08/01/2009, 08:39
Preciso de algum exemplo em ASP caso seja possível.
BEGIN TRANSACTION
LOCK TABLE XXXX IN SHARE MODE
LOOP INSERT
COMMIT
Analista de Sistema Senior
Tel.: + 55 - (21) 3824-4698- Cel: + 55 - (21) 9127-2772
E-Mail: andre.figueiredo@veirano.com.br
Skype: andre.figueiredo.veirano.com.br
#2
Posted 15/01/2009, 08:16
Consegui adaptar Conexao.BeginTrans , com isso posso gerar uma mensagem caso tentam gistrar ao mesmo tempo. Assim tem prioridade o primeiro que der Commit e para o outro vai dar o RollBackTrans nos registros gravados.
Para entender melhor o problema e a solução:
Sistema de Reserva Sala de Reunião
I. Dois usuários estavam tentando reservar na mesma Sala e Data, sendo que um deles escolhe todos os Horários e o outro somente alguns Horários.
II. Mesmo o que escolheu todos os Horários enviar segundos antes a solicitação para o Server, a prioridade vai ser do usuário que escolheu menos, por questões de processo da quantidade solicitada.
Agora além de sempre verificar com SELECT antes do INSERT tenho o BeginTrans, ficando da seguinte forma:
Select Count(*) as Total From Tabela Where .......
IF .........
INSERT
ELSE
VAR_ROLLBACK = 1
END IF
IF VAR_ROLLBACK = 1 THEN
Conexao.RollBackTrans
Msg = "Erro, horário xxxx já reservado!"
Conexao.CommitTrans
Msg = "Sucesso!"
Analista de Sistema Senior
Tel.: + 55 - (21) 3824-4698- Cel: + 55 - (21) 9127-2772
E-Mail: andre.figueiredo@veirano.com.br
Skype: andre.figueiredo.veirano.com.br
#3
Posted 15/01/2009, 08:39
mas necessitaria da criação de uma stored procedure, para facilitar.
Fica como sugestão!
Edição feita por: Renan L. Queiroz, 15/01/2009, 08:50.
Especialidade: Desenvolvimento e Banco de Dados.
Este post lhe ajudou? Agradeça:
#4
Posted 15/01/2009, 09:16
Só não preferir fazer em PROCEDURE para não ficar dependendo de BANCO, caso queira fazer alguma outra rotinha teria que usar o PL/SQL.
Sendo direto no ASP posso misturar o que for, JAVASCRIPT etc...... Melhor ainda, não preciso ficar dependendo de outros, caso não tenha acesso a PROCEDURE
Valeu mesmo pela atenção.
Por isso que sempre indico esse Fórum.
Analista de Sistema Senior
Tel.: + 55 - (21) 3824-4698- Cel: + 55 - (21) 9127-2772
E-Mail: andre.figueiredo@veirano.com.br
Skype: andre.figueiredo.veirano.com.br
0 user(s) are reading this topic
0 membro(s), 0 visitante(s) e 0 membros anônimo(s)