Avaliação do Tópico:
  • 0 votos - 0 Média
  • 1
  • 2
  • 3
  • 4
  • 5
Tratamento para múltiplos usuários
#1
Tentei utilizar o upWhereAll do Firedac para obter uma exceção na edição do mesmo registro por mais de um usuário no entanto o encarregado pelo criação da string de update é o ORMBR então não funcionou, como posso fazer trava pessimista/otimista como o ORMBR em suma como obter ACID, não achei nos exemplos.
Responder
#2
(19-06-2018, 05:30 PM)garciamauro Escreveu: Tentei utilizar o upWhereAll do Firedac para obter uma exceção na edição do mesmo registro por mais de um usuário no entanto o encarregado pelo criação da string de update é o ORMBR então não funcionou, como posso fazer trava pessimista/otimista como o ORMBR em suma como obter ACID, não achei nos exemplos.

Até onde conheço a opção a propriedade UpdateMode selecionada para upWhereAll não faz bloqueio de registro, o ORMBr usado com FireDAC usa a tecnologia definida no FDConnection, leia mais sobre esse assunto nos links abaixo:

http://docwiki.embarcadero.com/Libraries...UpdateMode


http://docwiki.embarcadero.com/Libraries...s.LockMode

  Isaque Pinheiro
  Fundador do Projeto ORM Brasil
  ORMBr SAC - Assine e faça parte dessa história ajudando o projeto a crescer.

Responder
#3
(19-06-2018, 08:29 PM)Isaque Pinheiro Escreveu:
(19-06-2018, 05:30 PM)garciamauro Escreveu: Tentei utilizar o upWhereAll do Firedac para obter uma exceção na edição do mesmo registro por mais de um usuário no entanto o encarregado pelo criação da string de update é o ORMBR então não funcionou, como posso fazer trava pessimista/otimista como o ORMBR em suma como obter ACID, não achei nos exemplos.

Até onde conheço a opção a propriedade UpdateMode selecionada para upWhereAll não faz bloqueio de registro, o ORMBr usado com FireDAC usa a tecnologia definida no FDConnection, leia mais sobre esse assunto nos links abaixo:

http://docwiki.embarcadero.com/Libraries...UpdateMode


http://docwiki.embarcadero.com/Libraries...s.LockMode

Boa tarde, estava ocupado comas mudanças da nfe 4.0 sabe como é kkkkk, mas vamos ao que interessa 
Isaque fiz duas aplicação de teste um com acesso direto ao banco pelo Firedac com as configurações para LockMode = lmOptimistic, e funciona como esperado o primeiro que fizer ApplyUpdates vai para o banco, os demais levanta uma exceção quando tenta fazer ApplyUpdates, mas a que usa o ORMBR não levanta a exceção no ApplyUpdates na segunda instancia, e a alteração é persistida no banco.
Talvez seja falta de alguma propriedade a mais quando uso o ORMBR.
Por acaso vc tem alguma exemplo de uso do ORMBR com esse tratamento para ambiente multi-usuário.
Responder
#4
(21-06-2018, 04:19 PM)garciamauro Escreveu:
(19-06-2018, 08:29 PM)Isaque Pinheiro Escreveu:
(19-06-2018, 05:30 PM)garciamauro Escreveu: Tentei utilizar o upWhereAll do Firedac para obter uma exceção na edição do mesmo registro por mais de um usuário no entanto o encarregado pelo criação da string de update é o ORMBR então não funcionou, como posso fazer trava pessimista/otimista como o ORMBR em suma como obter ACID, não achei nos exemplos.

Até onde conheço a opção a propriedade UpdateMode selecionada para upWhereAll não faz bloqueio de registro, o ORMBr usado com FireDAC usa a tecnologia definida no FDConnection, leia mais sobre esse assunto nos links abaixo:

http://docwiki.embarcadero.com/Libraries...UpdateMode


http://docwiki.embarcadero.com/Libraries...s.LockMode

Boa tarde, estava ocupado comas mudanças da nfe 4.0 sabe como é kkkkk, mas vamos ao que interessa 
Isaque fiz duas aplicação de teste um com acesso direto ao banco pelo Firedac com as configurações para LockMode = lmOptimistic, e funciona como esperado o primeiro que fizer ApplyUpdates vai para o banco, os demais levanta uma exceção quando tenta fazer ApplyUpdates, mas a que usa o ORMBR não levanta a exceção no ApplyUpdates na segunda instancia, e a alteração é persistida no banco.
Talvez seja falta de alguma propriedade a mais quando uso o ORMBR.
Por acaso vc tem alguma exemplo de uso do ORMBR com esse tratamento para ambiente multi-usuário.
Não tenho, na verdade eu não uso o recurso de travar registros a alguns anos, do me me lembro de usar esse recurso era quando programava em Clipper, rsrsrs.

  Isaque Pinheiro
  Fundador do Projeto ORM Brasil
  ORMBr SAC - Assine e faça parte dessa história ajudando o projeto a crescer.

Responder
#5
(21-06-2018, 04:19 PM)garciamauro Escreveu:
(19-06-2018, 08:29 PM)Isaque Pinheiro Escreveu:
(19-06-2018, 05:30 PM)garciamauro Escreveu: Tentei utilizar o upWhereAll do Firedac para obter uma exceção na edição do mesmo registro por mais de um usuário no entanto o encarregado pelo criação da string de update é o ORMBR então não funcionou, como posso fazer trava pessimista/otimista como o ORMBR em suma como obter ACID, não achei nos exemplos.

Até onde conheço a opção a propriedade UpdateMode selecionada para upWhereAll não faz bloqueio de registro, o ORMBr usado com FireDAC usa a tecnologia definida no FDConnection, leia mais sobre esse assunto nos links abaixo:

http://docwiki.embarcadero.com/Libraries...UpdateMode


http://docwiki.embarcadero.com/Libraries...s.LockMode

Boa tarde, estava ocupado comas mudanças da nfe 4.0 sabe como é kkkkk, mas vamos ao que interessa 
Isaque fiz duas aplicação de teste um com acesso direto ao banco pelo Firedac com as configurações para LockMode = lmOptimistic, e funciona como esperado o primeiro que fizer ApplyUpdates vai para o banco, os demais levanta uma exceção quando tenta fazer ApplyUpdates, mas a que usa o ORMBR não levanta a exceção no ApplyUpdates na segunda instancia, e a alteração é persistida no banco.
Talvez seja falta de alguma propriedade a mais quando uso o ORMBR.
Por acaso vc tem alguma exemplo de uso do ORMBR com esse tratamento para ambiente multi-usuário.

Talvez seja porque o ORMBr trabalha desconectado do banco, ele faz a requisição e desconecta, não ficando conectado direto.

  Isaque Pinheiro
  Fundador do Projeto ORM Brasil
  ORMBr SAC - Assine e faça parte dessa história ajudando o projeto a crescer.

Responder
#6
(21-06-2018, 07:13 PM)Isaque Pinheiro Escreveu:
(21-06-2018, 04:19 PM)garciamauro Escreveu:
(19-06-2018, 08:29 PM)Isaque Pinheiro Escreveu:
(19-06-2018, 05:30 PM)garciamauro Escreveu: Tentei utilizar o upWhereAll do Firedac para obter uma exceção na edição do mesmo registro por mais de um usuário no entanto o encarregado pelo criação da string de update é o ORMBR então não funcionou, como posso fazer trava pessimista/otimista como o ORMBR em suma como obter ACID, não achei nos exemplos.

Até onde conheço a opção a propriedade UpdateMode selecionada para upWhereAll não faz bloqueio de registro, o ORMBr usado com FireDAC usa a tecnologia definida no FDConnection, leia mais sobre esse assunto nos links abaixo:

http://docwiki.embarcadero.com/Libraries...UpdateMode


http://docwiki.embarcadero.com/Libraries...s.LockMode

Boa tarde, estava ocupado comas mudanças da nfe 4.0 sabe como é kkkkk, mas vamos ao que interessa 
Isaque fiz duas aplicação de teste um com acesso direto ao banco pelo Firedac com as configurações para LockMode = lmOptimistic, e funciona como esperado o primeiro que fizer ApplyUpdates vai para o banco, os demais levanta uma exceção quando tenta fazer ApplyUpdates, mas a que usa o ORMBR não levanta a exceção no ApplyUpdates na segunda instancia, e a alteração é persistida no banco.
Talvez seja falta de alguma propriedade a mais quando uso o ORMBR.
Por acaso vc tem alguma exemplo de uso do ORMBR com esse tratamento para ambiente multi-usuário.
Não tenho, na verdade eu não uso o recurso de travar registros a alguns anos, do me me lembro de usar esse recurso era quando programava em Clipper, rsrsrs.
po áureos tempos do clipper. Também tenho essa herança.
Se vc não usa trava como vc trata a edição do registro ao mesmo tempo
Responder
#7
(21-06-2018, 09:23 PM)garciamauro Escreveu:
(21-06-2018, 07:13 PM)Isaque Pinheiro Escreveu:
(21-06-2018, 04:19 PM)garciamauro Escreveu:
(19-06-2018, 08:29 PM)Isaque Pinheiro Escreveu:
(19-06-2018, 05:30 PM)garciamauro Escreveu: Tentei utilizar o upWhereAll do Firedac para obter uma exceção na edição do mesmo registro por mais de um usuário no entanto o encarregado pelo criação da string de update é o ORMBR então não funcionou, como posso fazer trava pessimista/otimista como o ORMBR em suma como obter ACID, não achei nos exemplos.

Até onde conheço a opção a propriedade UpdateMode selecionada para upWhereAll não faz bloqueio de registro, o ORMBr usado com FireDAC usa a tecnologia definida no FDConnection, leia mais sobre esse assunto nos links abaixo:

http://docwiki.embarcadero.com/Libraries...UpdateMode


http://docwiki.embarcadero.com/Libraries...s.LockMode

Boa tarde, estava ocupado comas mudanças da nfe 4.0 sabe como é kkkkk, mas vamos ao que interessa 
Isaque fiz duas aplicação de teste um com acesso direto ao banco pelo Firedac com as configurações para LockMode = lmOptimistic, e funciona como esperado o primeiro que fizer ApplyUpdates vai para o banco, os demais levanta uma exceção quando tenta fazer ApplyUpdates, mas a que usa o ORMBR não levanta a exceção no ApplyUpdates na segunda instancia, e a alteração é persistida no banco.
Talvez seja falta de alguma propriedade a mais quando uso o ORMBR.
Por acaso vc tem alguma exemplo de uso do ORMBR com esse tratamento para ambiente multi-usuário.
Não tenho, na verdade eu não uso o recurso de travar registros a alguns anos, do me me lembro de usar esse recurso era quando programava em Clipper, rsrsrs.
po áureos tempos do clipper. Também tenho essa herança.
Se vc não usa trava como vc trata a edição do registro ao mesmo tempo

Então, não trato isso, o último a gravar fica com os dados, isso a muito tempo já assim, e na era app cross plataforma, app de serviços, para rodar na Web, isso é praticamente impossivel de se gerenciar, a unica forma que já pensei, mas não acho que valha a pena, é uma tag no registro, que pegar muda, informando a outro que está sendo usado, mas teria mais contra do que pros.

  Isaque Pinheiro
  Fundador do Projeto ORM Brasil
  ORMBr SAC - Assine e faça parte dessa história ajudando o projeto a crescer.

Responder
#8
(22-06-2018, 06:27 AM)Isaque Pinheiro Escreveu:
(21-06-2018, 09:23 PM)garciamauro Escreveu:
(21-06-2018, 07:13 PM)Isaque Pinheiro Escreveu:
(21-06-2018, 04:19 PM)garciamauro Escreveu:
(19-06-2018, 08:29 PM)Isaque Pinheiro Escreveu: Até onde conheço a opção a propriedade UpdateMode selecionada para upWhereAll não faz bloqueio de registro, o ORMBr usado com FireDAC usa a tecnologia definida no FDConnection, leia mais sobre esse assunto nos links abaixo:

http://docwiki.embarcadero.com/Libraries...UpdateMode


http://docwiki.embarcadero.com/Libraries...s.LockMode

Boa tarde, estava ocupado comas mudanças da nfe 4.0 sabe como é kkkkk, mas vamos ao que interessa 
Isaque fiz duas aplicação de teste um com acesso direto ao banco pelo Firedac com as configurações para LockMode = lmOptimistic, e funciona como esperado o primeiro que fizer ApplyUpdates vai para o banco, os demais levanta uma exceção quando tenta fazer ApplyUpdates, mas a que usa o ORMBR não levanta a exceção no ApplyUpdates na segunda instancia, e a alteração é persistida no banco.
Talvez seja falta de alguma propriedade a mais quando uso o ORMBR.
Por acaso vc tem alguma exemplo de uso do ORMBR com esse tratamento para ambiente multi-usuário.
Não tenho, na verdade eu não uso o recurso de travar registros a alguns anos, do me me lembro de usar esse recurso era quando programava em Clipper, rsrsrs.
po áureos tempos do clipper. Também tenho essa herança.
Se vc não usa trava como vc trata a edição do registro ao mesmo tempo

Então, não trato isso, o último a gravar fica com os dados, isso a muito tempo já assim, e na era app cross plataforma, app de serviços, para rodar na Web, isso é praticamente impossivel de se gerenciar, a unica forma que já pensei, mas não acho que valha a pena, é uma tag no registro, que pegar muda, informando a outro que está sendo usado, mas teria mais contra do que pros.

hummmmm, eu já tive vários problemas como isso, o usuário sempre arranja um meio de lhe quebrar as pernas, a trava otimista é uma boa maneira de controlar isso, vou trabalhar nisso no ormbr estive analisando parece estar bem fácil de resolver, não irei reinventar a roda, só ira trabalhar com trava otimista, na rotina onde gera o sql do update colocarei  os campos alterados no where, se affectedrows = o gera uma exceção que poderá ser tratada
O que vc acha.
Responder
#9
(22-06-2018, 01:26 PM)garciamauro Escreveu:
(22-06-2018, 06:27 AM)Isaque Pinheiro Escreveu:
(21-06-2018, 09:23 PM)garciamauro Escreveu:
(21-06-2018, 07:13 PM)Isaque Pinheiro Escreveu:
(21-06-2018, 04:19 PM)garciamauro Escreveu: Boa tarde, estava ocupado comas mudanças da nfe 4.0 sabe como é kkkkk, mas vamos ao que interessa 
Isaque fiz duas aplicação de teste um com acesso direto ao banco pelo Firedac com as configurações para LockMode = lmOptimistic, e funciona como esperado o primeiro que fizer ApplyUpdates vai para o banco, os demais levanta uma exceção quando tenta fazer ApplyUpdates, mas a que usa o ORMBR não levanta a exceção no ApplyUpdates na segunda instancia, e a alteração é persistida no banco.
Talvez seja falta de alguma propriedade a mais quando uso o ORMBR.
Por acaso vc tem alguma exemplo de uso do ORMBR com esse tratamento para ambiente multi-usuário.
Não tenho, na verdade eu não uso o recurso de travar registros a alguns anos, do me me lembro de usar esse recurso era quando programava em Clipper, rsrsrs.
po áureos tempos do clipper. Também tenho essa herança.
Se vc não usa trava como vc trata a edição do registro ao mesmo tempo

Então, não trato isso, o último a gravar fica com os dados, isso a muito tempo já assim, e na era app cross plataforma, app de serviços, para rodar na Web, isso é praticamente impossivel de se gerenciar, a unica forma que já pensei, mas não acho que valha a pena, é uma tag no registro, que pegar muda, informando a outro que está sendo usado, mas teria mais contra do que pros.

hummmmm, eu já tive vários problemas como isso, o usuário sempre arranja um meio de lhe quebrar as pernas, a trava otimista é uma boa maneira de controlar isso, vou trabalhar nisso no ormbr estive analisando parece estar bem fácil de resolver, não irei reinventar a roda, só ira trabalhar com trava otimista, na rotina onde gera o sql do update colocarei  os campos alterados no where, se affectedrows = o gera uma exceção que poderá ser tratada
O que vc acha.

Se resolve para vc ótimo

  Isaque Pinheiro
  Fundador do Projeto ORM Brasil
  ORMBr SAC - Assine e faça parte dessa história ajudando o projeto a crescer.

Responder


Saltar Fórum:


usuários a ver este tópico: 1 Visitante(s)