Clipper On Line • Ver Tópico - Bug dbunlock SQLRDD

Bug dbunlock SQLRDD

Discussão sobre Banco de Dados e RDDs para Clipper/[x]Harbour.

Moderador: Moderadores

 

Bug dbunlock SQLRDD

Mensagempor jeferson_c » 07 Mai 2010 09:55

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.

#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
Nota de Moderação:
Pablo César: Mensagem editada para colocar a tag [ code ]
Veja como utilizar esta tag: Clique aqui
jeferson_c
Usuário Nível 1

Usuário Nível 1
 
Mensagens: 4
Data de registro: 07 Mai 2010 09:36
Cidade/Estado: Paraná
Curtiu: 0 vez
Mens.Curtidas: 0 vez

Re: Bug dbunlock SQLRDD

Mensagempor sygecom » 10 Mai 2010 23:29

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
leonardodemachado@hotmail.com

Faça você também sua doação esse fórum é uma lenda viva: http://www.pctoledo.com.br/doacao
Avatar de usuário

sygecom
Usuário Nível 7

Usuário Nível 7
 
Mensagens: 7017
Data de registro: 21 Jul 2006 10:12
Cidade/Estado: Alvorada-RS
Curtiu: 1 vez
Mens.Curtidas: 133 vezes

Re: Bug dbunlock SQLRDD

Mensagempor jeferson_c » 11 Mai 2010 08:21

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.
jeferson_c
Usuário Nível 1

Usuário Nível 1
 
Mensagens: 4
Data de registro: 07 Mai 2010 09:36
Cidade/Estado: Paraná
Curtiu: 0 vez
Mens.Curtidas: 0 vez

Re: Bug dbunlock SQLRDD

Mensagempor sygecom » 11 Mai 2010 11:21

Fiz no mesmo micro, em um aplicativo com telas MDI e usando areas separadas para cada tela MDI.
Leonardo Machado
xHarbour.org + Hwgui + PostgreSql
leonardodemachado@hotmail.com

Faça você também sua doação esse fórum é uma lenda viva: http://www.pctoledo.com.br/doacao
Avatar de usuário

sygecom
Usuário Nível 7

Usuário Nível 7
 
Mensagens: 7017
Data de registro: 21 Jul 2006 10:12
Cidade/Estado: Alvorada-RS
Curtiu: 1 vez
Mens.Curtidas: 133 vezes

Re: Bug dbunlock SQLRDD

Mensagempor jeferson_c » 11 Mai 2010 13:34

É 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
Data de registro: 07 Mai 2010 09:36
Cidade/Estado: Paraná
Curtiu: 0 vez
Mens.Curtidas: 0 vez

Re: Bug dbunlock SQLRDD

Mensagempor jeferson_c » 12 Mai 2010 09:43

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?
jeferson_c
Usuário Nível 1

Usuário Nível 1
 
Mensagens: 4
Data de registro: 07 Mai 2010 09:36
Cidade/Estado: Paraná
Curtiu: 0 vez
Mens.Curtidas: 0 vez

Re: Bug dbunlock SQLRDD

Mensagempor sygecom » 12 Mai 2010 16:05

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
leonardodemachado@hotmail.com

Faça você também sua doação esse fórum é uma lenda viva: http://www.pctoledo.com.br/doacao
Avatar de usuário

sygecom
Usuário Nível 7

Usuário Nível 7
 
Mensagens: 7017
Data de registro: 21 Jul 2006 10:12
Cidade/Estado: Alvorada-RS
Curtiu: 1 vez
Mens.Curtidas: 133 vezes

Bug dbunlock SQLRDD

Mensagempor rdgmoreno » 08 Nov 2012 09:56

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.
rdgmoreno
Usuário Nível 1

Usuário Nível 1
 
Mensagens: 1
Data de registro: 08 Nov 2012 08:20
Cidade/Estado: Arapongas - Paraná
Curtiu: 0 vez
Mens.Curtidas: 0 vez

Bug dbunlock SQLRDD

Mensagempor sygecom » 26 Dez 2012 19:18

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
leonardodemachado@hotmail.com

Faça você também sua doação esse fórum é uma lenda viva: http://www.pctoledo.com.br/doacao
Avatar de usuário

sygecom
Usuário Nível 7

Usuário Nível 7
 
Mensagens: 7017
Data de registro: 21 Jul 2006 10:12
Cidade/Estado: Alvorada-RS
Curtiu: 1 vez
Mens.Curtidas: 133 vezes




Retornar para Banco de Dados

Quem está online

Usuários vendo este fórum: Nenhum usuário registrado online e 10 visitantes


Ola Amigo, espero que meu site e forum tem lhe beneficiado, com exemplos e dicas de programacao.
Entao divulgue o link da Doacao abaixo para seus amigos e redes sociais ou faça uma doacao para o site forum...
MUITO OBRIGADO PELA SUA DOACAO!
Faça uma doação para o forum
cron
v
Olá visitante, seja bem-vindo ao Fórum Clipper On Line!
Efetue o seu login ou faça o seu Registro