Eduardo, Talvez na sua base de desenvolvimento só você esteja usando? Quando está em produção, o primeiro usuário que roda o select, bloqueia os registros. Se fizer uma query que volta vários registros, vai bloqueando todos eles. O segundo usuário que tentar consultar a mesma coisa vai ter esse comportamento de "travar". Para liberar o lock tem que fazer o rollback ou commit assim que for feita a próxima consulta ou fechada a tela, mesmo que não tenha sido feita nenhuma alteração (update). Ou seja, se o usuário fizer outra consulta, mesmo após fechar os cursores, as linhas consultadas anteriormente continuam bloqueadas. Existe o "select ... for update nowait", pode-se informar um tempo em segundos para esperar também, "select ... for update nowait 5" por exemplo. Esse em vez de travar vai retornar um erro, mas não deve resolver o seu problema ai. Você pode consultar a v$locked_object, v$lock, dba_blockers ou dba_waiters para ver os bloqueios, quais tabelas são e quais as sessões que estão bloqueando. O problema é que elas não vão indicar quais linhas das tabelas estão bloqueadas. Se seguir o caminho das transações ativas usando outras views se chega até o numero dos blocos, mas para achar as linhas não conheço outro meio além de fazer um "block dump" e analisar a "interested transaction list" no trace gerado, o que não é uma coisa simples de fazer. Atc, Luis Freitas
On Tuesday, September 19, 2017 9:45 PM, "Eduardo Perdomo panc...@gmail.com [oracle_br]" <oracle_br@yahoogrupos.com.br> wrote: Obrigado pelo retorno.Eu uso o select for update, commit quando o usuário confirma e rollback quando cancela.Na minha base de desenvolvimento funciona normal, mas em produção o cliente/dba alega que o programa está travando um módulo especifico aleatóriamente.Qual select eu poderia verificar se deixei algum registro locado ao fechar o programa ? On Tue, Sep 19, 2017 at 12:12 PM, Luis Freitas lfreita...@yahoo.com [oracle_br] <oracle_br@yahoogrupos.com.br> wrote: Eduardo, Não trabalho com Delphi, mas as ferramentas de 4a geração usam duas formas de lock: Lock otimista: Usa algum campo com o numero da alteração, e quando você tenta salvar um registro alterado em outro lugar ou outra sessão, o provedor de dados retorna um erro. O lock é feito apenas entre a verificação do numero de alteração e o update dos dados, quando é disparada alguma ação de salvamento. Lock pessimista: Faz o bloqueio no banco de dados, usando um comando "SELECT .... FOR UPDATE" ou coisa parecida. Outras sessões que tentem alterar algum registro lido irão "travar", como você está descrevendo. Se você está vendo esse travamento dentro da mesma instancia da aplicação, num mesmo computador, o provedor de dados que está usando no Delphi deve estar abrindo sessões de banco separadas para cada "modulo" que você está abrindo. Tem duas soluções para esse problema: - Fazer o Delphi compartilhar uma sessão unica para todos os módulos, talvez haja alguma configuração no seu provedor de dados para isso. Você não mencionou se está usando o BDE, ou ODBC, ou outra coisa. - Efetuar explicitamente um "commit" ou "rollback", o que irá liberar o lock no banco de dados. É preciso efetuar o commit ou rollback mesmo que você não tenha alterado dados. Pode ter alguma forma de fazer isso implicitamente também, com algum comando do provedor de dados. Atc, Luis Freitas On Tuesday, September 19, 2017 5:32 AM, "Eduardo Perdomo panc...@gmail.com [oracle_br]" <oracle_br@yahoogrupos.com.br> wrote: Bom dia. Alguém trabalha com Delphi? Preciso de ajuda para entender como deslocar um registro, pois aparentemente estou conseguindo lockar, mas outros módulos estão travando devido ao lock. Algum problema na parte de liberar o registro. Posso remunerar se for o caso. Me add no WhatsApp 21968458592. Obrigado. -- Eduardo PerdomoConsultor de ImplantaçãoGrupo PC Sistemas - www.grupopc.com.br (21) 6845-8592pancary@gmail.comeduardo.perd...@pcinformatica.com.brBlog: eduardo.perdomo.nom.br #yiv3381933495 -- #yiv3381933495ygrp-mkp {border:1px solid #d8d8d8;font-family:Arial;margin:10px 0;padding:0 10px;}#yiv3381933495 #yiv3381933495ygrp-mkp hr {border:1px solid #d8d8d8;}#yiv3381933495 #yiv3381933495ygrp-mkp #yiv3381933495hd {color:#628c2a;font-size:85%;font-weight:700;line-height:122%;margin:10px 0;}#yiv3381933495 #yiv3381933495ygrp-mkp #yiv3381933495ads {margin-bottom:10px;}#yiv3381933495 #yiv3381933495ygrp-mkp .yiv3381933495ad {padding:0 0;}#yiv3381933495 #yiv3381933495ygrp-mkp .yiv3381933495ad p {margin:0;}#yiv3381933495 #yiv3381933495ygrp-mkp .yiv3381933495ad a {color:#0000ff;text-decoration:none;}#yiv3381933495 #yiv3381933495ygrp-sponsor #yiv3381933495ygrp-lc {font-family:Arial;}#yiv3381933495 #yiv3381933495ygrp-sponsor #yiv3381933495ygrp-lc #yiv3381933495hd {margin:10px 0px;font-weight:700;font-size:78%;line-height:122%;}#yiv3381933495 #yiv3381933495ygrp-sponsor #yiv3381933495ygrp-lc .yiv3381933495ad {margin-bottom:10px;padding:0 0;}#yiv3381933495 #yiv3381933495actions {font-family:Verdana;font-size:11px;padding:10px 0;}#yiv3381933495 #yiv3381933495activity {background-color:#e0ecee;float:left;font-family:Verdana;font-size:10px;padding:10px;}#yiv3381933495 #yiv3381933495activity span {font-weight:700;}#yiv3381933495 #yiv3381933495activity span:first-child {text-transform:uppercase;}#yiv3381933495 #yiv3381933495activity span a {color:#5085b6;text-decoration:none;}#yiv3381933495 #yiv3381933495activity span span {color:#ff7900;}#yiv3381933495 #yiv3381933495activity span .yiv3381933495underline {text-decoration:underline;}#yiv3381933495 .yiv3381933495attach {clear:both;display:table;font-family:Arial;font-size:12px;padding:10px 0;width:400px;}#yiv3381933495 .yiv3381933495attach div a {text-decoration:none;}#yiv3381933495 .yiv3381933495attach img {border:none;padding-right:5px;}#yiv3381933495 .yiv3381933495attach label {display:block;margin-bottom:5px;}#yiv3381933495 .yiv3381933495attach label a {text-decoration:none;}#yiv3381933495 blockquote {margin:0 0 0 4px;}#yiv3381933495 .yiv3381933495bold {font-family:Arial;font-size:13px;font-weight:700;}#yiv3381933495 .yiv3381933495bold a {text-decoration:none;}#yiv3381933495 dd.yiv3381933495last p a {font-family:Verdana;font-weight:700;}#yiv3381933495 dd.yiv3381933495last p span {margin-right:10px;font-family:Verdana;font-weight:700;}#yiv3381933495 dd.yiv3381933495last p span.yiv3381933495yshortcuts {margin-right:0;}#yiv3381933495 div.yiv3381933495attach-table div div a {text-decoration:none;}#yiv3381933495 div.yiv3381933495attach-table {width:400px;}#yiv3381933495 div.yiv3381933495file-title a, #yiv3381933495 div.yiv3381933495file-title a:active, #yiv3381933495 div.yiv3381933495file-title a:hover, #yiv3381933495 div.yiv3381933495file-title a:visited {text-decoration:none;}#yiv3381933495 div.yiv3381933495photo-title a, #yiv3381933495 div.yiv3381933495photo-title a:active, #yiv3381933495 div.yiv3381933495photo-title a:hover, #yiv3381933495 div.yiv3381933495photo-title a:visited {text-decoration:none;}#yiv3381933495 div#yiv3381933495ygrp-mlmsg #yiv3381933495ygrp-msg p a span.yiv3381933495yshortcuts {font-family:Verdana;font-size:10px;font-weight:normal;}#yiv3381933495 .yiv3381933495green {color:#628c2a;}#yiv3381933495 .yiv3381933495MsoNormal {margin:0 0 0 0;}#yiv3381933495 o {font-size:0;}#yiv3381933495 #yiv3381933495photos div {float:left;width:72px;}#yiv3381933495 #yiv3381933495photos div div {border:1px solid #666666;min-height:62px;overflow:hidden;width:62px;}#yiv3381933495 #yiv3381933495photos div label {color:#666666;font-size:10px;overflow:hidden;text-align:center;white-space:nowrap;width:64px;}#yiv3381933495 #yiv3381933495reco-category {font-size:77%;}#yiv3381933495 #yiv3381933495reco-desc {font-size:77%;}#yiv3381933495 .yiv3381933495replbq {margin:4px;}#yiv3381933495 #yiv3381933495ygrp-actbar div a:first-child {margin-right:2px;padding-right:5px;}#yiv3381933495 #yiv3381933495ygrp-mlmsg {font-size:13px;font-family:Arial, helvetica, clean, sans-serif;}#yiv3381933495 #yiv3381933495ygrp-mlmsg table {font-size:inherit;font:100%;}#yiv3381933495 #yiv3381933495ygrp-mlmsg select, #yiv3381933495 input, #yiv3381933495 textarea {font:99% Arial, Helvetica, clean, sans-serif;}#yiv3381933495 #yiv3381933495ygrp-mlmsg pre, #yiv3381933495 code {font:115% monospace;}#yiv3381933495 #yiv3381933495ygrp-mlmsg * {line-height:1.22em;}#yiv3381933495 #yiv3381933495ygrp-mlmsg #yiv3381933495logo {padding-bottom:10px;}#yiv3381933495 #yiv3381933495ygrp-msg p a {font-family:Verdana;}#yiv3381933495 #yiv3381933495ygrp-msg p#yiv3381933495attach-count span {color:#1E66AE;font-weight:700;}#yiv3381933495 #yiv3381933495ygrp-reco #yiv3381933495reco-head {color:#ff7900;font-weight:700;}#yiv3381933495 #yiv3381933495ygrp-reco {margin-bottom:20px;padding:0px;}#yiv3381933495 #yiv3381933495ygrp-sponsor #yiv3381933495ov li a {font-size:130%;text-decoration:none;}#yiv3381933495 #yiv3381933495ygrp-sponsor #yiv3381933495ov li {font-size:77%;list-style-type:square;padding:6px 0;}#yiv3381933495 #yiv3381933495ygrp-sponsor #yiv3381933495ov ul {margin:0;padding:0 0 0 8px;}#yiv3381933495 #yiv3381933495ygrp-text {font-family:Georgia;}#yiv3381933495 #yiv3381933495ygrp-text p {margin:0 0 1em 0;}#yiv3381933495 #yiv3381933495ygrp-text tt {font-size:120%;}#yiv3381933495 #yiv3381933495ygrp-vital ul li:last-child {border-right:none !important;}#yiv3381933495