At Beginning of Table com Master Detail
22/11/2009
0
Pessoal, ha muito utilizo o Master Detail com DBexpress, mas em uma
determinada aplicação estou obtendo o seguinte erro ao tentar editar um
detail..
At Beginning of Table..
Estou usando Delphi 7, Firebird 1.5 sendo acessado via DBExpress.
Este erro ocorre qdo tento incluir/alterar os dados do detail, que estão em uma grid.
A propriedade AutoEdit do DataSource já esta marcada como true.
qual seria a causa deste erro?
Obrigado
Fausto
determinada aplicação estou obtendo o seguinte erro ao tentar editar um
detail..
At Beginning of Table..
Estou usando Delphi 7, Firebird 1.5 sendo acessado via DBExpress.
Este erro ocorre qdo tento incluir/alterar os dados do detail, que estão em uma grid.
A propriedade AutoEdit do DataSource já esta marcada como true.
qual seria a causa deste erro?
Obrigado
Fausto
Fausto Alves
Curtir tópico
+ 0
Responder
Posts
06/01/2010
Jonatã Branco
Você conseguiu resover? Estou passando pelo mesmo problema. Veja
https://www.devmedia.com.br/forum/viewtopic.asp?id=13642
Grato, Jonatã.
Responder
06/01/2010
Jonatã Branco
Finalmente! Consegui resolver o problema.
Basicamente para cada uma dos dois CDS (dados e itens) eu uso o evento AfterOpen da seguinte forma:
type
TForm1 = class(TForm)
private
FItemsAfterOpen: TDataSetNotifyEvent;
FDadosAfterOpen: TDataSetNotifyEvent; ...
protected
property DadosAfterOpen: TDataSetNotifyEvent read FDadosAfterOpen write SetDadosAfterOpen;
property ItemsAfterOpen: TDataSetNotifyEvent read FItemsAfterOpen write SetItemsAfterOpen;
... implementation ...
procedure TForm1.SetDadosAfterOpen(const Value: TDataSetNotifyEvent);
begin
FDadosAfterOpen := Value;
end; procedure TForm1.SetItemsAfterOpen(const Value: TDataSetNotifyEvent);
begin
FItemsAfterOpen := Value;
end;
... procedure TForm1.cdsItemsAfterOpen(DataSet: TDataSet);
begin if Assigned(ItemsAfterOpen) then ItemsAfterOpen(DataSet);
end; procedure TForm1.cdsDadosAfterOpen(DataSet: TDataSet);
begin
if Assigned(DadosAfterOpen) then DadosAfterOpen(DataSet);
end; Pronto!
TForm1 = class(TForm)
private
FItemsAfterOpen: TDataSetNotifyEvent;
FDadosAfterOpen: TDataSetNotifyEvent; ...
protected
property DadosAfterOpen: TDataSetNotifyEvent read FDadosAfterOpen write SetDadosAfterOpen;
property ItemsAfterOpen: TDataSetNotifyEvent read FItemsAfterOpen write SetItemsAfterOpen;
... implementation ...
procedure TForm1.SetDadosAfterOpen(const Value: TDataSetNotifyEvent);
begin
FDadosAfterOpen := Value;
end; procedure TForm1.SetItemsAfterOpen(const Value: TDataSetNotifyEvent);
begin
FItemsAfterOpen := Value;
end;
... procedure TForm1.cdsItemsAfterOpen(DataSet: TDataSet);
begin if Assigned(ItemsAfterOpen) then ItemsAfterOpen(DataSet);
end; procedure TForm1.cdsDadosAfterOpen(DataSet: TDataSet);
begin
if Assigned(DadosAfterOpen) then DadosAfterOpen(DataSet);
end; Pronto!
Responder
Clique aqui para fazer login e interagir na Comunidade :)