With Lock no clientdataset

Delphi

25/05/2013

Como posso impedir dois usuários acessarem um registro ao mesmo tempo com with lock com clientdataset?

Desde já agradeço.
Rosinaldo Dias

Rosinaldo Dias

Curtidas 0

Respostas

Marco Salles

Marco Salles

25/05/2013

Qual a tecnologia que vc esta utilizando ????

DBX ???
GOSTEI 0
Rosinaldo Dias

Rosinaldo Dias

25/05/2013

delphi 2010 + firebird 2.5 + dbexpress
GOSTEI 0
Marco Salles

Marco Salles

25/05/2013

com vc esta configurando o providerDataFlags ? e o updateMode do DataSetProvider ????
GOSTEI 0
Rosinaldo Dias

Rosinaldo Dias

25/05/2013

eu já coloquei o updatemode para upWhereKeyOnly e configuerei o provideflags também
GOSTEI 0
Rosinaldo Dias

Rosinaldo Dias

25/05/2013

Na verdade eu precisava do passo a passo mais detalhado desde do select até o código do programa para bloquear o registro.

o meu programa é para agendamento de consultas e trabalha em rede. Preciso bloquear o registro para quando outro usuário tentar acessar o mesmo horário, apareça a mensagem dizendo que aquele horário esta sendo usado.

se puder me ajudar, agradeço muito.
Valeu.
GOSTEI 0
Marco Salles

Marco Salles

25/05/2013

tente configure o ProviderFlags do campo que vc quer o Bloqueio com a opção

ProviderFlags = [pfInUpdate, pfInWhere]

ps) No SqlDataset e no clientdataset
GOSTEI 0
Marco Salles

Marco Salles

25/05/2013

tente configure o ProviderFlags do campo que vc quer o Bloqueio com a opção

ProviderFlags = [pfInUpdate, pfInWhere]

ps) No SqlDataset e no clientdataset


ps) este bloqueio so será obersavado no ApplyUpdades e não simplesmente no Post Ok
GOSTEI 0
Rosinaldo Dias

Rosinaldo Dias

25/05/2013

Como posso capturar essa exceção de erro?


obrigado.
GOSTEI 0
Marco Salles

Marco Salles

25/05/2013

Procure por onEconcileError do clientdadatset ou pesquise no evento de UpdateError do respectivo datasetProvider

o Clientdataset não propaga exceção ...

qq dúvida volte a postar

[]sdç
GOSTEI 0
Rosinaldo Dias

Rosinaldo Dias

25/05/2013

Se eu travar o registro dando with lock será que eu perderei muito a performance do meu banco de dados ?

GOSTEI 0
Marco Salles

Marco Salles

25/05/2013

muito não .. Melhor que so seja o campo em questão e não todos os campos .. A performance cai pq a instrução sql gerada
para o bloqueio é maior
GOSTEI 0
Rosinaldo Dias

Rosinaldo Dias

25/05/2013

Muito obrigado pela ajuda. Se pintar alguma dúvida, eu posto pra vc novamente.

Que Deus te abençoe.
GOSTEI 0
POSTAR