Bug dbunlock SQLRDD

Fórum sobre Banco de Dados e RDDs para Clipper/[x]Harbour.

Moderador: Moderadores

jeferson_c
Usuário Nível 1
Usuário Nível 1
Mensagens: 4
Registrado em: 07 Mai 2010 09:36
Localização: Paraná

Bug dbunlock SQLRDD

Mensagem por jeferson_c »

Gente não sei se vocês já passaram pelo mesmo problema que encontrei ou se existe algum tipo de configuração do harbour para corrigir tal problema,
o que anda acontecendo comigo é o seguinte quando eu bloqueio um determinado registro em uma estação ele fica bloqueado mas se eu desbloqueio um registro de uma outra tabela ele também é desbloqueado, eu montei uma rotina de teste e pude constatar que ao utilizar em DBF este problema não ocorre, apenas no quando utilizo banco de dados, estou utilizando Postgress, acredito que a unica maneira de corrigir este problema seria seja utilizar um bloco de transação mais isto implicaria em ter que verificar uma rotina gigantesca que possuo hoje, pois eu precisaria retirar o commit e unlock de todas as tabelas que possuo.

Código: Selecionar todos

#include "sqlrdd.ch"
#define SQL_DBMS_NAME                       17
#define SQL_DBMS_VER                        18
request sqlrdd
REQUEST SR_PGS             
#include 'pgs.ch'     

**
*
request hb_nomouse  // desativa o mouse
request dbfcdx
request dtos
*
FUNCTION MAIN(cDriver)
clear
clear typeahead
setcolor('w/n,w+/n')
Set AutOpen ON
if cDriver == nil
   ? 'PARAMETRO NAO ESPECIFICADO [DBFCDX,SQLRDD]'
   return .t.
endif

cDriver := upper(cDriver)

** conecta no banco de dados
if cDriver=='SQLRDD' .AND. !Connect()
   return .t.
end


use orcament alias orcament shared new via cDriver
use orc_prod alias orc_prod shared new via cDriver

cls
? ' orcament  tentando bloquear o registro : ',orcament->(recno())
while orcament->(!rlock())

end

? ' orc_prod  tentando bloquear o registro : ',orc_prod->(recno())

while orc_prod->(!rlock())

end

? 'registros bloqueados'
? 'orcament->'+valtoprg(orcament->(recno()))
? 'orc_prod->'+valtoprg(orc_prod->(recno()))

alert('desbloqueando orc_prod')
orc_prod->(dbunlock())
alert('desbloqueado orc_prod;;'+;
         'orc_prod' +sr_showvector( orc_prod->(dbRLockList()) )+';;'+;
         'orcament' +sr_showvector( orcament->(dbRLockList()) ))

dbcloseall()

return .t.
/*****************************************************************************/
FUNCTION CONNECT(cDatabase)
cConnString := 'pgs=128.1.1.251;uid=postgres;dtb=filial012;pwd=postgres'
nDetected   := DetectDBFromDSN(cConnString)
if nDetected > SYSTEMID_UNKNOW
   **@ 24,00 say 'Conectando a ' + cConnString + '...'
   nCnn := SR_AddConnection(nDetected,cConnString)
end
*
* Retorna "connection handle" ou -1 se falhar
if nCnn < 0
   @ 24,00 say 'Erro de conexao !!! Veja "sqlerror.log" para detalhes...'
   quit
end
**@ 24,00 say space(80)
return .t.
Observação estou utilizando o xHarbour comercial de novembro de 2009
Editado pela última vez por Pablo César em 03 Jun 2010 19:02, em um total de 1 vez.
Razão: Mensagem editada para colocar a tag [ code ]<br>Veja como utilizar esta tag: http://www.pctoledo.com.br/forum/faq.php?mode=bbcode#f2r1
Avatar do usuário
sygecom
Administrador
Administrador
Mensagens: 7131
Registrado em: 21 Jul 2006 10:12
Localização: Alvorada-RS
Contato:

Re: Bug dbunlock SQLRDD

Mensagem por sygecom »

Olá Jeferson,
Seja Bem vindo ao Fórum.

Na duvida fiz um teste aqui no meu sistema mesmo para ver se acontecia isso aqui e isso não aconteceu, estou usando Postgresql 8.4.1 + SQLRDD For Bcc + xHarbour 1.2.1.

Já tentou enviar para o Marcelo esse exemplo ?

Ou tente postar um exemplo que qualquer um possa compilar e já sair rodando, o seu exemplo falta as tabelas.
Leonardo Machado
xHarbour.org + Hwgui + PostgreSql
jeferson_c
Usuário Nível 1
Usuário Nível 1
Mensagens: 4
Registrado em: 07 Mai 2010 09:36
Localização: Paraná

Re: Bug dbunlock SQLRDD

Mensagem por jeferson_c »

Obrigado sygecom, só uma dúvida você rodou a aplicanção em duas maquinas, se sim beleza então terei que verificar pois deve ter alguma configuração do SQLRDD para resovler isso.
Avatar do usuário
sygecom
Administrador
Administrador
Mensagens: 7131
Registrado em: 21 Jul 2006 10:12
Localização: Alvorada-RS
Contato:

Re: Bug dbunlock SQLRDD

Mensagem por sygecom »

Fiz no mesmo micro, em um aplicativo com telas MDI e usando areas separadas para cada tela MDI.
Leonardo Machado
xHarbour.org + Hwgui + PostgreSql
jeferson_c
Usuário Nível 1
Usuário Nível 1
Mensagens: 4
Registrado em: 07 Mai 2010 09:36
Localização: Paraná

Re: Bug dbunlock SQLRDD

Mensagem por jeferson_c »

É o mesmo teste que andei executando, deve ser algum tipo de configuração do SQLRDD, valeu por testar, vou entrar em contato com o Marcelo.
jeferson_c
Usuário Nível 1
Usuário Nível 1
Mensagens: 4
Registrado em: 07 Mai 2010 09:36
Localização: Paraná

Re: Bug dbunlock SQLRDD

Mensagem por jeferson_c »

Olá sygecom, eu falei com o Luiz do xharbour ele me disse que é uma configuração do banco, porêm eu testei algumas e não obtive sucesso, eu achava que fosse o seguinte parametro deadlock_timeout, teria como você me enviar a configuração do seu postgres para que eu pudesse verificar onde pode estar errado no meu banco de dados?
Avatar do usuário
sygecom
Administrador
Administrador
Mensagens: 7131
Registrado em: 21 Jul 2006 10:12
Localização: Alvorada-RS
Contato:

Re: Bug dbunlock SQLRDD

Mensagem por sygecom »

O Teste que fiz foi no meu micro, e aqui apenas baixei o Postgresql 8.4.1 e instalei e deixei tudo como padrão ou seja não mudei uma linha no postgresql.conf
Leonardo Machado
xHarbour.org + Hwgui + PostgreSql
rdgmoreno
Usuário Nível 1
Usuário Nível 1
Mensagens: 1
Registrado em: 08 Nov 2012 09:20
Localização: Arapongas - Paraná

Bug dbunlock SQLRDD

Mensagem por rdgmoreno »

Sei que o tópico é antigo, mas conseguiram resolver o problema do dbunlock() liberar os registros de outra tabela?

Estou com este problema e não encontrei uma solução.

No DBF funciona certinho, mas usando a SQLRDD no postgres não funciona... já tentei dbunlock() dbrunlock(recno()) unlock, ... e todos liberar os registros travados de outras tabelas.
Avatar do usuário
sygecom
Administrador
Administrador
Mensagens: 7131
Registrado em: 21 Jul 2006 10:12
Localização: Alvorada-RS
Contato:

Bug dbunlock SQLRDD

Mensagem por sygecom »

Olá Rodrigo,
Resolveu o caso ?
Eu não sei se tem haver com alguma versão do SQLRDD, mas minha versão é de 2010 e não acontece esse problema.
Leonardo Machado
xHarbour.org + Hwgui + PostgreSql
Responder