Fórum Help ClientDataSet #287449
08/07/2005
0
CLIENTES
Codigo,
Nome,
Endereco,
Codigo do municipio
MUNICIPIOS
Nome do municipio
Ao incluir um novo cliente, qdo quero salvar e executar o ApplyUpdates, preciso executar refreshrecord na intenção de trazer o nome do município... seria como um refresh.. porem o refresh me atualizaría todo clientdataset.
Utilizando Refreshrecord após o Applyupdates, eu recebo uma mensagem de erro :
´Record not found or change by another user´.
Vcs podem me ajudar ?
Joaogutheil
Curtir tópico
+ 0Posts
08/07/2005
Joaoshi
Antes de dar o POST no ClientDataSet você atualiza o campo nome do Municipio (tire os flags do campo sem update, sem where).
Espero ter ajudado.
Gostei + 0
10/08/2007
Jeffmanske
Att,
Jefferson Manske
jmanske@terra.com.br
Gostei + 0
11/08/2007
Beppe
Como está DSP.UpdateMode? O usual é upWhereAll, que trata concorrência otimista, e monta uma clausula WHERE com os valores de todos os campos marcados com pfInWhere em ProviderFlags. Se usar Firebird, defina os campos persistentes no SDS e configure esta propriedade. SQLServer, pode ser no próprio CDS.
Se DSP.UpdateMode = upWhereAKeyOnly, então vc deve informar quais campos são chave, via pfInKey em ProviderFlags.
Bom, isto que indiquei acima trata o ´Record not found´ e deve resolver caso o sistema apresente a falha mesmo com um usuário logado apenas. Já a parte ´change by another user´ é semelhante, mas só pode ocorrer com usuários concorrentes, e usando upWhereAll no DSP. Não é ruim não, pelo contrário, isto garante que dados de um usuário não serão sobrescritos no ApplyUpdates.
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)