Ir para conteúdo
Fórum Script Brasil
  • 0

Access - Atualizar Banco Em Rede


Guest --VAGNER --

Pergunta

Guest --VAGNER --

OLÁ PESSOAL, ESTOU TENDO PROBLEMAS COM UM BANCO DE DADOS EM ACCESS QUE ESTA ROSANDO UM REDE ENTRE DOIS MICROS.

QUANDO EU GRAVO UM NOVO REGISTRO NA TABELA DE CLIENTES POR EXEMPLO, OS DADOS não SÃO ATUALIZADOS IMEDIATAMENTE E LIBERANDO A TABELA CASO O OUTRO MICRO QUEIRA USAR A TABELA PARA FAZER UM CADASTRO TAMBEM, então COMO FAÇO UM COMMIT NA TABELA DEPOIS DE GRAVAR USANDO O METODO "post"?

o código está assim:

if DM.TabelaClientes.state in [dsEdit, dsInsert] then
DM.TabelaClientes.Post
else
ShowMessage('Não há dados a serem salvos');

agradeço antecipadamente a todos que puderem ajudar a solucionar o problema.

até mais.

Link para o comentário
Compartilhar em outros sites

7 respostass a esta questão

Posts Recomendados

  • 0
Guest --HDELPHI --
OLÁ PESSOAL, ESTOU TENDO PROBLEMAS COM UM BANCO DE DADOS EM ACCESS QUE ESTA ROSANDO UM REDE ENTRE DOIS MICROS.

QUANDO EU GRAVO UM NOVO REGISTRO NA TABELA DE CLIENTES POR EXEMPLO, OS DADOS não SÃO ATUALIZADOS IMEDIATAMENTE E LIBERANDO A TABELA CASO O OUTRO MICRO QUEIRA USAR A TABELA PARA FAZER UM CADASTRO TAMBEM, então COMO FAÇO UM COMMIT NA TABELA DEPOIS DE GRAVAR USANDO O METODO "post"?

o código está assim:

if DM.TabelaClientes.state in [dsEdit, dsInsert] then
DM.TabelaClientes.Post
else
ShowMessage('Não há dados a serem salvos');
agradeço antecipadamente a todos que puderem ajudar a solucionar o problema. até mais.
Tente isto:
if DM.TabelaClientes.state in [dsEdit, dsInsert] then
begin
   DM.TabelaClientes.Post; 
   DM.TabelaClientes.ApplyUpdates; // comita as transações
   DM.TabelaClientes.Refresh;   // atualiza os registros para os outros usuarios
   DM.TabelaClientes.LockTable(ltWriteLock); // libera a tabela para escrita
end
else
ShowMessage('Não há dados a serem salvos');

Link para o comentário
Compartilhar em outros sites

  • 0
Guest --HDELPHI --
amigo, funciona normalmente com ADO? esqueci de citar este detalhe no post anterior.

No caso do ADO tente:

if DM.TabelaClientes.state in [dsEdit, dsInsert] then
begin
   DM.TabelaClientes.Post; 
   DM.TabelaClientes.UpdateBatch(arAll); // comita as transações
   DM.TabelaClientes.Refresh;   // atualiza os registros para os outros usuarios
   DM.TabelaClientes.LockType((ltBatchOptimistic); // libera a tabela depois do update
end
else
ShowMessage('Não há dados a serem salvos');

Link para o comentário
Compartilhar em outros sites

  • 0
Guest --HDELPHI --
não funcionou: veja os erros:

[Error] u_despesas.pas(54): Undeclared identifier: 'arAll'

Deixe esta linha como comentario e tente novamente.

// DM.TabelaClientes.UpdateBatch(arAll); // comita as transações

Link para o comentário
Compartilhar em outros sites

  • 0
não funcionou: veja os erros:

[Error] u_despesas.pas(54): Undeclared identifier: 'arAll'

faltou adicionar ADODB na cláusula uses do seu programa.

Só para lembrar, no help sobre UpdateBath:

Call UpdateBatch to write any pending updates to disk for a dataset that is in batch update mode to the associated database.

ainda em notas:

Note: To use batch updating, the CursorType property of the dataset component must be either ctKeySet (the default) or ctStatic and the LockType property must be ltBatchOptimistic.

São propriedades a serem verificadas. Há também configurações de propriedades da conexão (ADOConnection) que podem influenciar neste tipo de problema: Mode, Attributes e IsolationLevel.

Mas eu não uso ADO, então não saberia dizer exatamente o que fazer. Dêem uma olhada nestas questões.

Abraços

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,2k
    • Posts
      651,9k
×
×
  • Criar Novo...