Firebird e DBExpress - ClientDataSet1: Must apply updates be

Firebird

29/09/2005

Bom dia,

Amigos, peguei uma apostila neste site, onde diziam pra utilizar o componente TSQLClientDataSet, mas no Delphi 2005 não tem.
Então, com a ajuda dos foristas utilizei a estrutura:
SQLConnection->SQLDataSet->DataSetProvider->ClientDataSet->DataSource
Preenchi no ClientDataSet a propriedade CommandType como ctTable.
Coloquei em um form, os campos da tabela em DBEdits, arrastando os campos do ClientDataSet e um DBNavigator.
Consigo utilizar as funções do DBNavigator, mas ao clicar no refresh, aparece a mensagem: ClientDataSet1: Must apply updates before refreshing data.
Tem como configurar para que o componente DBNavigator consiga trabalhar com uma base Firebird? Como se fosse paradox.

Obrigado.

A, como TSimpleDataSet acontece a mesma coisa. Estou apanhando pra alguma propriedade.


Doug_chagas

Doug_chagas

Curtidas 0

Respostas

Paulo

Paulo

29/09/2005

Bem, não conheço o Delphi 2005. Uso o 7. Porem uma coisa vc deve ter em mente. O firebird é unidirecional, como muitos SGDB. Para uma navegabilidade, num grid ou semelhante, eu uso o SIMPLEDATASET. Ele permite a navegabilidade em um banco Unidirecional. Nos posts, de inserção ou semelhante, pesquisas e etc.., eu utilizo Stored Procedure.


GOSTEI 0
Antonio Pereira

Antonio Pereira

29/09/2005

Olá amigo tem como sim... Pode ter outras maneiras mas a que encontrei em testes nos meus programas (firebird / mysql) foi a seguinde:

Va no envento AfterRefresh do ClientDataSet1 e coloque o seguinte:

ClientDataSet1.ApplyUpdates(0);


Veja o Exemplo.

procedure TForm1.ClientDataSet1AfterRefresh(DataSet: TDataSet);
begin
ClientDataSet1.ApplyUpdates(0);
end;

Ok.

Atenciosamente,

Antonio


GOSTEI 0
Bruno Belchior

Bruno Belchior

29/09/2005

a questão é q o CDS imagina q vc só o atualizará quando vc não tiver mais alterações q não estejam refletidas no banco... ou seja o seu delta esstiver limpo... pensando bem não é errado, pois c vc atualizasse seu CDS com o delta preenchido, seria improvável q ele soubesse quais registros atualizar posteriormente, por isso no caso de existirem alterações no CDS, sempre se deve aplicá-las ou cancelá-las...


GOSTEI 0
POSTAR