Fórum Access ADO em rede #296715
22/09/2005
0
Tenho um sistema em Access 2000 + ADO (Microsoft Jet 4.0), onde o banco e o executável ficam no servidor, e as máquinas cliente possuem atalhos para o executável no servidor. Não uso ADOTables, somente ADOQueries. Quando o sistema tá aberto em duas máquinas cliente diferentes, existe um form que mostra a seguinte mensagem de erro quando os dois usuários tentam gravar registros na tabela correspondente a esse form:
"Não foi possível atualizar; atualmente bloqueado pelo usuário <usuário> no computador <computador>"
Isso só acontece nesse form, os outros não dão problema. Alguém já passou por isso antes? Pelo jeito, o erro se originou no Access e foi passado pro Delphi. Sei q o Access não é apropriado para uso em rede, mas será q utilizando TClientDataSets + TDataSetProviders eu remediaria a situação? Alguém pode me indicar bons links para entender as vantagens de usar TClientDataSets + TDataSetProviders na prática?
Abraços
Tnaires
Curtir tópico
+ 0Posts
23/09/2005
Tnaires
Entretanto, gostaria de saber se alguém já obteve essa mensagem d erro.
Portanto, sobe :wink:
Gostei + 0
25/09/2005
Thomaz_prg
Gostei + 0
26/09/2005
Tnaires
Eu tb não gosto d Access em rede, mas é uma decisão do meu chefe, ou seja, não depende d mim. Mas eu tô sugerindo a ele pra mudar pra Firebird. D qq forma, esse problema tem q ser resolvido antes d migrar o banco, pq o sistema já tá funcionando lá.
Qto à sua sugestão, o banco d dados tá dando esse erro no modo compartilhado e sem proteção d registro ( q são as opções padrão ).
Abraços
Gostei + 0
26/09/2005
Thomaz_prg
Tente fazer o seguinte, se sua ADOquery estiver aberta, tente fechar e abri-la novamente, antes de abrir esse forma, talvez resolva. Mais uma dúvida, o erro é nesse formulário, ou na tabela usada no formulário (tipo, se essa tabela é usada em outros módulos e dá problema)?
Realmente é estranho, pois tenho um sistema assim, com os atalhos e tal... o problema que tive foi com o MDAC que tive que atualizar (porque na máquina cliente tava com Windows95, e dava um erro). Isso resolveu.
Também teve um caso (de uma máquina em especial) que tive que instalar o office, para que o sistema funcionasse (apenas instalei e removi e o sistema começou a funcionar normalmente).
Gostei + 0
26/09/2005
Tnaires
Qdo eu abro o form, eu inicio uma transação no ADOConnection ( BeginTrans ), dou um insert na query de movimentos, e só abro a query d itens. O usuário insere ou remove itens através d um DBNavigator. Se o usuário clicar no botão ´Gravar´ do formulário, após todas as alterações, eu dou um Commit; caso ele clique no botão ´Cancelar´ do form, eu dou um Rollback.
O erro acontece assim: suponha q este formulário esteja aberto nos computadores A e B. O usuário de A insere um novo item, e o grava. O usuário d B insere um novo item. Qdo este usuário vai gravar, aparece a mensagem de erro.
Obrigado pela sua paciência, e abraços.
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)