Erro quot;Table is out of datequot; no windows 2000 server
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
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
Curtidas 0
Respostas
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
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.
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
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.
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
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+
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
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
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
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
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
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
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