Level Extreme platform
Subscription
Corporate profile
Products & Services
Support
Legal
Français
Problemas com tabelas buferizadas...
Message
From
13/11/2002 06:52:49
 
 
To
All
General information
Forum:
Visual FoxPro
Category:
Databases,Tables, Views, Indexing and SQL syntax
Title:
Problemas com tabelas buferizadas...
Miscellaneous
Thread ID:
00722027
Message ID:
00722027
Views:
56
Bom dia/tarde/noite a todos,

Venho tendo um problema gravíssimo com a atualização de arquivos buferizados.

Eu estou fazendo o seguinte :

1) Abro os Arquivos Com o "Buffermode" = 5

2) Insiro dados neles.

3) Crio o Array conforme abaixo e passo ele para uma função minha chamada "vTableUpdate" :

*************************************
Dimension laArray(02)
laArray(01) = 'MeuArquivo1'
laArray(02) = 'MeuArquivo2'

llTransOk1 = vTableUpdate(@laArray)
*************************************

4) Abaixo segue o código da minha função :

*********************************************************************
Function vTableUpdate
*********************************************************************
* Executa a Atualização Física dos Arquivos "Buferizados"
* Parâmetros : pTab => Array Com as Tabelas a Serem Atualizadas.
* Nota : Passado Por Referencia
*********************************************************************
Parameters pTabelas,llNaoMsg
Local lnTabelas, lnNumTents, llTransOk1, llContinua, lcNmTabela

lnTabelas = aLen(pTabelas, 1) && Número de Tabelas Passadas no Array
llNaoMsg = Iif(Type('llNaoMsg')=='L',llNaoMsg,.f.)

If .Not.llNaoMsg
Wait Window 'Aguarde!!! Atualizando Fisicamente os Arquivos...' NoWait
EndIf
=aSort(pTabelas) && Ordenando as Tabelas Alfabeticamente

lnNumTents = 0
llTransOk1 = .f.
llContinua = .t.

Do While llContinua
Begin Transaction
lnNumTents = lnNumTents + 1
llTransOk1 = .t.

For I=1 To lnTabelas
If .Not.llNaoMsg
Wait Clear
Wait Window 'Atualizando Arquivo... (' + pTabelas(I) + ')' NoWait
EndIf

If TableUpdate(.t., .t., pTabelas(I))
llTransOk1 = .t.
Else
llTransOk1 = .f.
Exit
EndIf
Next

If llTransOk1
End Transaction
llContinua = .f.
Else
RollBack
If (lnNumTents > 10) && Número de Vezes Que Tenta Atualizar Arquivos
lnNumTents = 0
If .Not.llNaoMsg
=MessageBox('Erro na Atualização!!!', 0+16+0, 'Atenção!!!')
llContinua = Messagebox('Retentar a Gravação?', 4+32+0,'')=6
Else
llContinua = .f.
EndIf
If !llContinua
For I=1 To lnTabelas
=TableRevert(.t., pTabelas(I))
Next
Endif
Endif
Endif
Enddo
Unlock All
Wait Clear

Return llTransOk1
*********************************************************************

5) Depois disso eu dou um "Seek" do registro que inseri no arquivo e o registro é encontrado.

6) Saio da Aplicação e entro novamente.

7) Um registro de uma tabela Sumiu!!!

Notas :
a) O registro não foi sobreposto por outro pois estou gravando um arquivo de log para checagem.
b) Quando tenho vários arquivos, as vezes ele grava tudo, perdendo apenas um registro de um arquivo.
c) Já estou ficando louco!!!!

Por Favor, caso alguém tenha alguma idéia do que pode ser feito ou de algum possível erro que eu esteja cometendo ou de alguma falha de atualização do Fox que já tenha sido reportada, me ajude!!!

Um abraço,

Richard Diegues
richarddiegues@msn.com
richarddiegues@ig.com.br
Next
Reply
Map
View

Click here to load this message in the networking platform