Clipper On Line • Ver Tópico - LETO - bug em TRANSAÇÕES

LETO - bug em TRANSAÇÕES

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

Moderador: Moderadores

 

LETO - bug em TRANSAÇÕES

Mensagempor janio » 08 Jun 2014 18:11

Pessoal,

Fazendo uns testes com o LETOdb, tudo funcionando perfeitamente... ate que resolvi incluir TRANSAÇÕES no codigo. Ja tinha visto em outro poste algo a respeito de 'perca do ponteiro' nas transações com Leto, mas isso foi em 2010... pensei que hj ja estaria consertado.

No inicio percebi algumas coisas estranhas... tipo gravação de apenas parte dos dados no mesmo dbf, mas mudei a ordem de gravação nos dbf's e parece ter resolvido essa parte. Depois de todos os ajustes feito, tudo gravando sem erros... eis que surge uma coisa maluca aqui no sistema e passei horas analisando o codigo sem perceber nada de errado. LEMBRANDO QUE USO ESSE MESMÍSSIMO CODIGO HA ANOS COM DBFCDX e TAMBÉM COM MEDIATOR+MYSQL e nunca havia dado problema nenhum.

Não sei relatar direito qual seria o bug, mas parece perca do ponteiro mesmo! Isso se usar transações! Pq usando o leto, mas sem transação, o codigo tbm funciona q eh uma maravilha!

Peguei 02 produtos e realizei varias movimentações no estoque. Para os 02 produtos usei a mesma ordem de lançamentos.

Vejamos a imagem abaixo para lançamento SEM TRANSAÇÃO:

Imagem

Produto 12
Ordem Lançamento Movimento
94536 - 08.06
94537 - 08.06
94538 - 08.06
94539 - 01.06
94540 - 02.06

Percebam no relatorio na coluna SALDO, como este evolui CORRETAMENTE pela ordem de data que foi lançado! Tinha zero, entrou 3, saldo 3. Depois tinha 3, entrou 10, saldo 13... e assim vai.

Agora vejam na imagem abaixo um outro produto, lançado na mesma sequecia de movimentos e datas, mas COM TRANSAÇÕES:

Imagem

Produto 14
Ordem Lançamento Movimento
94541 - 08.06
94542 - 08.06
94543 - 08.06
94544 - 01.06
94545 - 02.06

Nesse caso, com o mesmíssimo codigo e com o USO DE TRANSAÇÕES, a evolução do SALDO endoidou! Saldo anterior aparece 6 (o correto seria ZERO); Tinha 19, entrou 2, saldo 11 (??? endoidou)

Negocio estranho e até dificil de relatar para os caras russos consertarem!
fui...
e-mail:janioaguiar@yahoo.com.br
msn: janio_aguiar@hotmail.com
xHarbour1.2.1/Harbour3.2 + wvg + hwgui + Mediator + MySql
Avatar de usuário

janio
Colaborador

Colaborador
 
Mensagens: 1835
Data de registro: 06 Jul 2004 07:43
Cidade/Estado: UBAJARA - CE
Curtiu: 8 vezes
Mens.Curtidas: 68 vezes

LETO - bug em TRANSAÇÕES

Mensagempor janio » 08 Jun 2014 18:59

O post q falei que o LETO hora endoido os ponteiros é esse:

http://www.pctoledo.com.br/forum/viewtopic.php?f=42&t=11302

Meu codigo que recalcula saldos dos produtos que funciona muito bem com DBFCDX, MEDIATOR+MYSQL e também com LETO (sem transação), é esse:
         SELECT MOV
         DBSETORDER(3)
         DBGOTOP()
         OrdScope( 0, Str( vCODPRD,5 ) )
         OrdScope( 1, Str( vCODPRD,5 ) )
           DBGOTOP()

         DbSeek( STR(vCODPRD,5) + DTOS(vDatMov), .t. )
         SKIP -1
         IF BOF()
            
            xSLD = 0
           
            DO WHILE !EOF()

               IF vCODPRD <> CODPRD
                  EXIT
               ENDIF

                 TRAVA()
                 replace SLDSTK with xSLD
                 xSLD = SLDSTK + QTDENT - QTDSAI
                 
                 DBSKIP()
                 
            ENDDO
         ELSE
           
            TRAVA()
            xSLD = SLDSTK + QTDENT - QTDSAI
           
            DBSKIP(1)
           
            DO WHILE !EOF()

                IF vCODPRD <> CODPRD
                   EXIT
                ENDIF

                TRAVA()
                replace SLDSTK with xSLD
                xSLD = SLDSTK + QTDENT - QTDSAI
                
                DBSKIP()
                 
            ENDDO

         ENDIF

         OrdScope( 0, NIL )
         OrdScope( 1, NIL )


O indice crio assim:
            INDEX ON NUMMOV                               TAG CHAVE1
            INDEX ON STR(CODPRD)+STR(NUMMOV)+DTOS(DATMOV) TAG CHAVE2
            INDEX ON STR(CODPRD)+DTOS(DATMOV)+Str(NUMMOV) TAG CHAVE3
            INDEX ON STR(CODPRD)+FLGMOV+DTOS(DATMOV)      TAG CHAVE4
            INDEX ON DTOS(DATMOV)                         TAG CHAVE5
fui...
e-mail:janioaguiar@yahoo.com.br
msn: janio_aguiar@hotmail.com
xHarbour1.2.1/Harbour3.2 + wvg + hwgui + Mediator + MySql
Avatar de usuário

janio
Colaborador

Colaborador
 
Mensagens: 1835
Data de registro: 06 Jul 2004 07:43
Cidade/Estado: UBAJARA - CE
Curtiu: 8 vezes
Mens.Curtidas: 68 vezes

LETO - bug em TRANSAÇÕES

Mensagempor Itamar M. Lins Jr. » 08 Jun 2014 21:03

Vc tem que fazer um exemplo mínimo, que demonstre o problema e enviar p/ o Pavel.
Todos que mandei eles corrigiram. As vezes demora mas se for crucial eles corrigem logo.

Saudações,
Itamar M. Lins Jr.
Avatar de usuário

Itamar M. Lins Jr.
Colaborador

Colaborador
 
Mensagens: 6927
Data de registro: 30 Mai 2007 11:31
Cidade/Estado: Ilheus Bahia
Curtiu: 309 vezes
Mens.Curtidas: 503 vezes

LETO - bug em TRANSAÇÕES

Mensagempor janio » 09 Jun 2014 00:00

Ok Itamar!

Consegui fazer um exemplo aqui q demonstra o problema. Vc pode enviar pra ele????

Lembrando:
- xHarbour 1.2.1
- LetoDb.exe que vc postou
- Lib's geradas dos fontes do link postado pelo Toledo

Passos para reproduzir o erro:
- Compilar o fonte comentando as linhas referentes a transações
- Fazer 5 lançamentos
- Lançamento 1: Produto 1, data 08.06, quantidade 2
- Lançamento 2: Produto 1, data 08.06, quantidade 1
- Lançamento 3: Produto 1, data 08.06, quantidade 5
- Lançamento 4: Produto 1, data 01.06, quantidade 3
- Lançamento 5: Produto 1, data 02.06, quantidade 10

- Gerar o relatorio
- Sem TRANSAÇÕES, no relatorio a EVOLUÇÃO do SALDO sairá correto dessa forma:

TESTE TRANSACAO COM LETOdb                                             08/06/14
USUARIO TESTE                                                        Pagina 001
-------------------------------------------------------------------------------
********************* RESUMO DE MOVIMENTACAO DE PRODUTOS **********************
-------------------------------------------------------------------------------
Produto PRODUTO 001                             00001
  Mov     Data    Tipo Movimento         Documento         Ent/Sai        Saldo
-------------------------------------------------------------------------------
                                                  Saldo Anterior ->        0,00
00000004 01/06/14 AJUSTE DE ESTOQUE (+)                       3,00         3,00
00000005 02/06/14 AJUSTE DE ESTOQUE (+)                      10,00        13,00
00000001 08/06/14 AJUSTE DE ESTOQUE (+)                       2,00        15,00
00000002 08/06/14 AJUSTE DE ESTOQUE (+)                       1,00        16,00
00000003 08/06/14 AJUSTE DE ESTOQUE (+)                       5,00        21,00

               Entradas -->>      21,00   Saidas -->>       0,00
-------------------------------------------------------------------------------

                        ****** FIM DO RELATORIO ******                         


- Agora apagar dos dbf's
- Descomentar no prg as linhas referentes as transações
- Compilar o projeto
- Fazer os mesmo 05 lançamentos acima

- Gerar o relatorio
- Com TRANSAÇÃO, no relatorio a EVOLUÇÃO do SALDO sairá INCORRETO assim:

TESTE TRANSACAO COM LETOdb                                             08/06/14
USUARIO TESTE                                                        Pagina 001
-------------------------------------------------------------------------------
********************* RESUMO DE MOVIMENTACAO DE PRODUTOS **********************
-------------------------------------------------------------------------------
Produto PRODUTO 001                             00001
  Mov     Data    Tipo Movimento         Documento         Ent/Sai        Saldo
-------------------------------------------------------------------------------
                                                  Saldo Anterior ->        8,00
00000004 01/06/14 AJUSTE DE ESTOQUE (+)                       3,00        11,00
00000005 02/06/14 AJUSTE DE ESTOQUE (+)                      10,00        21,00
00000001 08/06/14 AJUSTE DE ESTOQUE (+)                       2,00        13,00
00000002 08/06/14 AJUSTE DE ESTOQUE (+)                       1,00        14,00
00000003 08/06/14 AJUSTE DE ESTOQUE (+)                       5,00        19,00

               Entradas -->>      21,00   Saidas -->>       0,00
-------------------------------------------------------------------------------

                        ****** FIM DO RELATORIO ******                         


Meu letodb.ini está assim:
Port = 2812              
Logfile = "letodb.log"   
DEFAULT_DRIVER = CDX     
DATAPATH = c:\TesteLeto
ENABLEFILEFUNC = 1
CRYPT_TRAFFIC = 0
PASS_FOR_LOGIN = 0
PASS_FOR_MANAGE = 0
PASS_FOR_DATA = 0
Share_Tables  = 0
Cache_Records = 50

[DATABASE]
DataPath = c:\TesteLeto
Driver = CDX
Anexos
teste.prg
(13.28 KiB) Baixado 69 vezes
fui...
e-mail:janioaguiar@yahoo.com.br
msn: janio_aguiar@hotmail.com
xHarbour1.2.1/Harbour3.2 + wvg + hwgui + Mediator + MySql
Avatar de usuário

janio
Colaborador

Colaborador
 
Mensagens: 1835
Data de registro: 06 Jul 2004 07:43
Cidade/Estado: UBAJARA - CE
Curtiu: 8 vezes
Mens.Curtidas: 68 vezes

LETO - bug em TRANSAÇÕES

Mensagempor Itamar M. Lins Jr. » 09 Jun 2014 17:52

Ainda está bem grande...
Estou tentando diminuir ao máximo o teste

Saudações,
Itamar M. Lins Jr.
Avatar de usuário

Itamar M. Lins Jr.
Colaborador

Colaborador
 
Mensagens: 6927
Data de registro: 30 Mai 2007 11:31
Cidade/Estado: Ilheus Bahia
Curtiu: 309 vezes
Mens.Curtidas: 503 vezes

LETO - bug em TRANSAÇÕES

Mensagempor janio » 09 Jun 2014 18:22

Esse foi o máximo q consegui diminuir rsrsrs

Espero q tenha conseguido compilar e confirmar o bug

Janio
fui...
e-mail:janioaguiar@yahoo.com.br
msn: janio_aguiar@hotmail.com
xHarbour1.2.1/Harbour3.2 + wvg + hwgui + Mediator + MySql
Avatar de usuário

janio
Colaborador

Colaborador
 
Mensagens: 1835
Data de registro: 06 Jul 2004 07:43
Cidade/Estado: UBAJARA - CE
Curtiu: 8 vezes
Mens.Curtidas: 68 vezes

LETO - bug em TRANSAÇÕES

Mensagempor Itamar M. Lins Jr. » 10 Jun 2014 14:03

O Pavel corrigiu o problema abaixo, agora estou esperando ele corrigir o problema do leto_directory(), para fazer mais testes, e caso funcione tudo sem erros, fazer o upload do arquivo.
2014-06-10 18:00 UTC+0300 Pavel Tsarenko (tpe2/at/mail.ru)
* source/client/leto1.c
! fixed bug in ordSetFocus( "" ): it's need to clear skip buffer


Saudações,
Itamar M. Lins Jr.
Avatar de usuário

Itamar M. Lins Jr.
Colaborador

Colaborador
 
Mensagens: 6927
Data de registro: 30 Mai 2007 11:31
Cidade/Estado: Ilheus Bahia
Curtiu: 309 vezes
Mens.Curtidas: 503 vezes

LETO - bug em TRANSAÇÕES

Mensagempor janio » 10 Jun 2014 19:25

Hummmmmm

Não sei se essa modificação tem algo a ver com o relatado neste topico, mas se for informo que o problema continua o mesmo!

Janio

PS: Esse erro corrigido pelo Pavel refere-se a ponteiro. Todavia, ele ainda não acertou na veia. Deve ainda estar procurando e isso demanda tempo e testes...
fui...
e-mail:janioaguiar@yahoo.com.br
msn: janio_aguiar@hotmail.com
xHarbour1.2.1/Harbour3.2 + wvg + hwgui + Mediator + MySql
Avatar de usuário

janio
Colaborador

Colaborador
 
Mensagens: 1835
Data de registro: 06 Jul 2004 07:43
Cidade/Estado: UBAJARA - CE
Curtiu: 8 vezes
Mens.Curtidas: 68 vezes

LETO - bug em TRANSAÇÕES

Mensagempor Itamar M. Lins Jr. » 13 Jun 2014 17:55

Ola!
No exemplo dele, está tudo ok.
/* $Id: test_ta.prg,v 1.2.2.1 2013/12/23 07:45:30 alkresin Exp $ */
/*
* This sample demonstrates how to use transactions with Leto db server
* Just change the cPath value to that one you need.
*/

Function Main( cPath )
Field NORD, DORD, NPROD, SUMMA

   REQUEST LETO
   RDDSETDEFAULT( "LETO" )

   IF Empty( cPath )
      cPath := "//127.0.0.1:2812/temp/"
   ELSE
      cPath := "//" + cPath + Iif( Right(cPath,1) $ "/\", "", "/" )
   ENDIF
   ? "Start"
   dbCreate( cPath+"nakl1", { {"NORD","N",10,0},{"DORD","D",8,0},{"SUMMA","N",12,2},{"NORM","M",10,0} } )
   dbCreate( cPath+"nakl2", { {"NORD","N",10,0},{"DORD","D",8,0},{"NPROD","N",3,0},{"SUMMA","N",12,2},{"NORM","M",10,0} } )
   ? "Files has been created"

   use ( cPath+"nakl1" ) New
   index on Dtos(DORD)+Str(NORD,10) TAG DATA
   use ( cPath+"nakl2" ) New
   index on Dtos(DORD)+Str(NORD,10)+Str(NPROD,3) TAG DATA
   ? "Files has been opened and indexed"

   AddNakl( 1, Date(), { 1400.5, 28632.28, 800.51 } )
   AddNakl( 2, Date(), { 58003, 930.5 } )
   ? "Records has been added"

   select NAKL2
   if dbSeek( Dtos(Date())+Str(1,10)+Str(2,3) )
      if ChangeNakl( 35688.24 )
         ? "Records has been changed"
      else
         ? "Failure - Rollback"
      endif
   endif

   ? "End"
   ?
   
Return Nil

Function AddNakl( n_ord, d_ord, aSumm )
Local i, sumAll := 0

   leto_BeginTransaction()

   select NAKL2
   for i := 1 to Len( aSumm )
      append blank
      replace NORD with n_ord, DORD with d_ord, NPROD with i, SUMMA with aSumm[i]
      sumAll += aSumm[i]
   next

   select NAKL1
   append blank
   replace NORD with n_ord, DORD with d_ord, SUMMA with sumAll

   leto_CommitTransaction()

Return .T.

Function ChangeNakl( nSummNew )
Local nDelta

   leto_BeginTransaction()

   select NAKL1
   if !dbSeek( Dtos(NAKL2->DORD)+STR(NAKL2->NORD) ) .or. !DoRlock( 3 )
      leto_Rollback(.F.)
      Return .F.
   endif

   select NAKL2
   if DoRlock( 3 )
      nDelta := nSummNew - SUMMA
      replace SUMMA with nSummNew
   else
      leto_Rollback()
      Return .F.
   endif

   select NAKL1
   replace SUMMA with SUMMA + nDelta

   leto_CommitTransaction()

Return .T.

Function DoRLock( n )
Local i := 0

   do while i < n
      if Rlock()
         exit
      endif
      Inkey( 0.1 )
      i ++
   enddo

Return ( i < n )


O problema parece que é em outro ponto, talvez nos ponteiros que vc move pra lá e pra cá.
Verifica se os comandos que vc usa, por exemplo:
bof(), skip(-1), skip(1) etc estão retornando corretamente.

Saudações,
Itamar M. Lins Jr.
Avatar de usuário

Itamar M. Lins Jr.
Colaborador

Colaborador
 
Mensagens: 6927
Data de registro: 30 Mai 2007 11:31
Cidade/Estado: Ilheus Bahia
Curtiu: 309 vezes
Mens.Curtidas: 503 vezes

LETO - bug em TRANSAÇÕES

Mensagempor Itamar M. Lins Jr. » 13 Jun 2014 18:13

Testei seu exemplo agora sem mexer em uma linha e funcionou corretamente.
Fiz dois lancto.
TESTE TRANSACAO COM LETOdb                                             13/06/14
USUARIO TESTE                                                        Pagina 001
-------------------------------------------------------------------------------
********************* RESUMO DE MOVIMENTACAO DE PRODUTOS **********************
-------------------------------------------------------------------------------
Produto PRODUTO 001                             00001
  Mov     Data    Tipo Movimento         Documento         Ent/Sai        Saldo
-------------------------------------------------------------------------------
                                                  Saldo Anterior ->        0,00
00000001 13/06/14 AJUSTE DE ESTOQUE (+)                       3,00         3,00
00000002 13/06/14 AJUSTE DE ESTOQUE (+)                      10,00        13,00

               Entradas -->>      13,00   Saidas -->>       0,00
-------------------------------------------------------------------------------

                        ****** FIM DO RELATORIO ******


Saudações,
Itamar M. Lins Jr.
Avatar de usuário

Itamar M. Lins Jr.
Colaborador

Colaborador
 
Mensagens: 6927
Data de registro: 30 Mai 2007 11:31
Cidade/Estado: Ilheus Bahia
Curtiu: 309 vezes
Mens.Curtidas: 503 vezes

LETO - bug em TRANSAÇÕES

Mensagempor janio » 13 Jun 2014 18:43

Itamar,

Vc fez 02 lançamentos com data de 13.06.2014! ASSIM NÃO HA PROBLEMA pq o sistema não precisa sair refazendo os saldos.

O problema ocorre qndo preciso refazer saldos e sair calculando tudo ate a data atual.

Experimenta fazer 02 lançamentos com a data atual e, em seguida, faça um lançamento com data de 01.06.2014. ASSIM VC VERÁ O ERRO!

Não pode ser um problema do LETO pq ao tirar as TRANSAÇÕES funciona tudo corretamente. Eh só incluir as transações q o negocio desanda!

Preciso mover os ponteiros pra la e pra ca (skip -1, skip + 1) pq nessito saber se o produto tem uma movimentação anterior. Mas o erro não pode estar nessa MINHA movimentação de ponteiros. REPITO: Esse mesmo codigo funciona com DBFCDX, com MEDIATOR+MYSQL e também com LETO! Entao o erro não pode ser no "meu codigo". Eh so colocar transação no codigo q o negocio endoida.

Faça 02 lançamentos com data de 13.06 e, em seguida, faça 01 lançamento com data de 01.06.
fui...
e-mail:janioaguiar@yahoo.com.br
msn: janio_aguiar@hotmail.com
xHarbour1.2.1/Harbour3.2 + wvg + hwgui + Mediator + MySql
Avatar de usuário

janio
Colaborador

Colaborador
 
Mensagens: 1835
Data de registro: 06 Jul 2004 07:43
Cidade/Estado: UBAJARA - CE
Curtiu: 8 vezes
Mens.Curtidas: 68 vezes

LETO - bug em TRANSAÇÕES

Mensagempor janio » 13 Jun 2014 18:48

COM TRANSAÇÃO!

- Faça 02 lançamentos com data de 13.06.2014
- Agora faça 01 lançamento com data de 01.06.2014
- Gere o relatorio e veja a desgraça! rsrs

SEM TRANSAÇÃO! (não mude uma linha do codigo, apenas tire as transações)

- Faça 02 lançamentos com data de 13.06.2014
- Agora faça 01 lançamento com data de 01.06.2014
- Gere o relatorio e veja q coisa linda! rsrs

ESCLARECENDO...

Com transação no codigo:

- Não há erro em tempo de compilação;
- Não há erro em tempo de execução;
- Não há erro (não aparece) no momento da gravação dos dados no banco

Apenas o sistema internamente não grava os dados corretamente por (acredito eu) perder o ponteiro!

O sistema com transação se comporta de uma maneira
O sistema sem transação se comporta de outra maneira

So posso concluir q ha um erro (bug) nas transações do leto
fui...
e-mail:janioaguiar@yahoo.com.br
msn: janio_aguiar@hotmail.com
xHarbour1.2.1/Harbour3.2 + wvg + hwgui + Mediator + MySql
Avatar de usuário

janio
Colaborador

Colaborador
 
Mensagens: 1835
Data de registro: 06 Jul 2004 07:43
Cidade/Estado: UBAJARA - CE
Curtiu: 8 vezes
Mens.Curtidas: 68 vezes

LETO - bug em TRANSAÇÕES

Mensagempor Toledo » 13 Jun 2014 19:08

Janio, só quero fazer uma pequena observação no seu código de teste: você usa muito a função RLock() (neste último exemplo uma função Trava()), de forma correta, mas não percebi onde você desbloqueia (UnLock ou DbUnLock()). Muitas vezes você seleciona uma área (DBF) trava o registro e depois seleciona outra área e trava também o registro, cheguei a observar isto em 3 arquivos diferentes, mas em nenhum momento você destrava os registros.
No LetoDB tem uma função chamada LETO_COMMIT() que já executa o dbCommit() e dbUnlock(), mas eu acho que dependendo do caso, seria o correto usar o Commit e UnLock logo após um REPLACE.

Abraços,
Toledo - Clipper On Line
toledo@pctoledo.com.br
Harbour 3.2/MiniGui/HwGui
Faça uma doação para o fórum, clique neste link: http://www.pctoledo.com.br/doacao
Avatar de usuário

Toledo
Administrador

Administrador
 
Mensagens: 3038
Data de registro: 22 Jul 2003 18:39
Cidade/Estado: Araçatuba - SP
Curtiu: 263 vezes
Mens.Curtidas: 258 vezes

LETO - bug em TRANSAÇÕES

Mensagempor janio » 13 Jun 2014 19:21

Toledo,

Nesse codigo não desbloqueei os registro pq com transações no leto não pode ser usado dbunlock() entre o inicio da transação e o final dela... da um erro!

Mas nos meus codigos sem transação, ao gravar todos os dados em todos os bancos uso a função comita() que seria...
***************
Function Comita
***************

   DbCommitAll()
   DbUnLockAll()

Return .t.


Ou seja, comito e destavo todos os registros de uma paulada so!

As vezes seleciono uma area e travo um registro, depois seleciono outra area e tbm travo o registro pq os destravo depois de um comit, coisa q so faço depois de gravados todos os dados em todos os dbf's. Uso dessa forma em sistemas bem grandes com 10 e 30 maquinas em rede e não tem mim dado problema de maquina ficar esperando destravamento de registro bloqueado em outra.

Janio

PS: O codigo do Kresin não reproduz o q estou tentando dizer pq no codigo dele apenas eh demonstrado que ha gravação de dados sem erros. Mas comigo não tbm não ocorre nenhum erro ao gravar os dados. Apenas ele, o sistema, não grava corretamente e isso so eh possivel observar ao gerar o relatorio!
fui...
e-mail:janioaguiar@yahoo.com.br
msn: janio_aguiar@hotmail.com
xHarbour1.2.1/Harbour3.2 + wvg + hwgui + Mediator + MySql
Avatar de usuário

janio
Colaborador

Colaborador
 
Mensagens: 1835
Data de registro: 06 Jul 2004 07:43
Cidade/Estado: UBAJARA - CE
Curtiu: 8 vezes
Mens.Curtidas: 68 vezes

LETO - bug em TRANSAÇÕES

Mensagempor janio » 14 Jun 2014 14:55

acho q consegui descobri onde o leto ta errando!

aqui:
      SELECT MOV
      DBSETORDER(2)
      DBGOTOP()
      DbSeek( STR(vCODPRD,5) + DTOS(vDatMov) )


COM TRANSAÇÃO esse DbSeek ta retornando FALSO e se SEM TRANSAÇÃO esse DbSeek retorna VERDADEIRO!

Não tem como retornar falso pq esse lançamento acabou de ter sido feito! Mas ta retornando falso pq ele ainda esta apenas em BUFFER e não no disco! Ouxe, mas sem transação mesmo ainda estando apenas no buffer o dbseek retorna verdadeiro!

Parece q como esse lançamento ainda está em buffer (o comit da transação so vem no final), o leto não o acha!

Pavel, meu filho, só num conserta agora se num quiser! rsrs
fui...
e-mail:janioaguiar@yahoo.com.br
msn: janio_aguiar@hotmail.com
xHarbour1.2.1/Harbour3.2 + wvg + hwgui + Mediator + MySql
Avatar de usuário

janio
Colaborador

Colaborador
 
Mensagens: 1835
Data de registro: 06 Jul 2004 07:43
Cidade/Estado: UBAJARA - CE
Curtiu: 8 vezes
Mens.Curtidas: 68 vezes

Próximo



Retornar para Banco de Dados

Quem está online

Usuários vendo este fórum: Nenhum usuário registrado online e 14 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