Fórum Dúvida - DBExpress #243175
14/07/2004
0
Estou utilizando um sqlconnection, um sqldataset, um datasetprovider, um clientdataset e um datasource, um dbgrid (do InfoPower) pra visualizar os dados e um navigator. No meu sqldataset, na propriedade commandtext, estou dando um select * na minha view. Dá certo, estou visualizando corretamente os dados no dbgrid. Mas quando quero inserir um novo registro ou alterar um registro, quando vou confirmar, dá um erro, dizendo que o registro não foi encontrado ou que outra pessoa pode estar manipulando o registro. Vale lembrar que nos eventos AfterPost e AfterDelete do meu clientdataset, tratei da seguinte forma:
clientdataset1.applyupdates(0)
Alguém pode me ajudar?
Tiagoharris
Curtir tópico
+ 0Posts
14/07/2004
Persist
Tente o ApplyUpdate(-1).
Se não resolver, no evento BeforeUpdateRecord coloque:
procedure Txxx.IBClientDataset_BeforeUpdateRecord(Sender:TObject; SourceDS:TDataSet; DeltaDS:TCustomClientDataSet; UpdateKind:TUpdateKind; var Applied:Boolean); var i:Integer; IB:TCustomClientDataSet; begin IB := TCustomClientDataSet(Sender); if (UpdateKind = ukInsert) or (IB.Fields.Count <> DeltaDS.Fields.Count) then Exit; for i := 0 to IB.Fields.Count-1 do DeltaDS.Fields[i].ProviderFlags := IB.Fields[i].ProviderFlags; end;
Ou seja, vc iguala os ProviderFlags do DeltaDS p/ o que vc atualizou.
Gostei + 0
14/07/2004
Rômulo Barros
Gostei + 0
14/07/2004
Vinicius2k
Colega,
Eu nunca tentei aplicar updates numa View, mas creio que não seja possível...
Espero ter ajudado...
T+
Gostei + 0
14/07/2004
Tiagoharris
não encontrei esta propriedade
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)