Erro quot;Table is out of datequot; no windows 2000 server

Delphi

28/08/2003

Olá pessoal,

Estou com o seguinte problema:

Uso o Paradox em rede num servidor windows 2000 server. Tenho uma tabela que além da chave primária tem um índice secundário. O problema é que se dois ou mais usuários estiverem fazendo mudanças nesta tabela ao mesmo tempo, depois de algumas mudanças dá erro nos índices (table xxxxxx is out of date). Isto não ocorre quando uso um servidor novell, ou uso somente em uma máquina, mas sempre ocorre quando uso o windows 2000 server, NT ou workgroup de windows.
Alguém sabe como resolver isto dentro do windows 2000 server, ou o que posso fazer nos fontes para evitar isto.

Obrigado desde já
George Henrique


Zicosh3

Zicosh3

Curtidas 0

Respostas

Matt_nttp

Matt_nttp

28/08/2003

bom, eu ainda sou principiante, mas acho q isso se deve pq vc abre o banco logo quando abre o programa na hora de mexer com os registros, tente fazer da seguinte maneira, me explique como vc esta fazendo as alterações no BD, pois provavelmente vc ta dando um append na hora q coloca um novo registro ou algo assim, dai se 2 usuários tentam registrar ao mesmo tempo pode ocorrer erro no Banco mesmo


GOSTEI 0
Zicosh3

Zicosh3

28/08/2003

obrigado pela resposta.

o que faço é que quando clicar no botão incluir ele abrirá um novo registro com append e qualdo preencher os dados e clicar em gravar ele fará o post. O mesmo vale para a alteração somente que eu faço edit.


GOSTEI 0
4_olho

4_olho

28/08/2003

O Paradox não é feito para trabalhar em ambiente Cliente/Servidor. O melhor é usar um SGBD-R (Interbasae/Firebird).

Ciente da possível impossibilidade de troca de BD, a solução é travar a tabela PARADOX quando alguém está fazendo uma inserção/edição e usar um try...except de modo que devolva uma mensagem a quem está tentando fazer a mesma operação.


GOSTEI 0
Prosystem

Prosystem

28/08/2003

Tive este problema porque estava utilizando o componente DBEDIT para inserir novo registro, pois para tabalhar com o mesmo tenho que estar em modo ready only em false para ler um registro em branco da tabela de dados. Se for este o caso, realmente quando duas ou mais pessoas estiverem utilizando o mesmo procedimento ocorrera este tipo de erro.
Resolvi quando mudei o componente de edicao para TEDIT ou MASKEDIT.
E só inseri um novo registro ao fazer um INSERT na confirmacao dos dados.
Acredito que assim sera resolvido seu problema.

T+


GOSTEI 0
Vander Batista

Vander Batista

28/08/2003

Goergeão

E aí. É complicadinho o que você está querendo fazer aí mas vamo lá.

Negócio é o seguinte, a primeira resposta que você deve considerar é a do moderador. PARADOX em Client/Server é triste. Métodos de gravação como post e abertura para inserção de tabela como insert entao vixxxiiiiii

Use Query mas com instruções de inserção usando linguagem SQL.


Ou exemplo: no FormCadastro, use transações e trave o registro usando bloco TRY - EXCEPT, caso haja execção exiba uma mensagem qulaquer para o usuário, crie uma rotina de espera, evento OnShow, abra a tabela, Open, abra para registro, Insert, grave, Post, feche a tabela no evento OnClose;

Caso queira fazer por um modo mais seguro: troque o BD.
Para Interbase, até MSACCESS pode, dará trabalho, mas é o mais correto.....
Use a paleta de componentes ADO para fazer conexões com BD.

Usando esse método de troca de BD, você tem o emprego por mais cem anos.

Dúvidas, envie para netservice1@bol.com.br

Falou......


Vander Batista


GOSTEI 0
Mmtoor

Mmtoor

28/08/2003

Prezado colega.
Em programação tudo é possível de ser feito.
No seu caso, não sei qual componente está utilizando, mas deve utilizar database, query e updateSQL.
Crie um form com edits e não com dbedits de forma a salvar seus registros somente abrindo a edição quando terminá-la, sem dataset.
Feito isto, pode colocar quantos operadores quiser para editar na mesma tabela paradox.
MMTOOR2003


GOSTEI 0
Bacalhau

Bacalhau

28/08/2003

Daqui fala o patrão: TÁ DEMITIDO!!! 8)

Estimados senhores e senhoras, há uns dias escrevi um pequeno artigo resolvendo este problema. Mandem um mail a solicitá-lo para virtual.viegas@netc.pt que eu envio.

Zico, só um detalhe. Não chores que vais ser demitido no título. Baixas as tuas possibilidades de encontrares a solução

abraço do bacalhau


GOSTEI 0
POSTAR