delphi componentes do dpexpress erro (delta is empty)

Delphi

23/03/2009

Boa tarde..

Utilizo o delphi 7
Componentre dbexpress
Baco de dados firebird 1.5.3

componentes do dpexpress erro (delta is empty)

tabelea mestre detalhe (pedido/peditens)


mestre

sqlquery
datasetprovider
clientdataset
datasopurce

detalhe
sqlquery
clientdataset
datasopurce

no momento da inclusao no item do pedido da o seguinte erro

project kagill.exe exception class edbclient with message (delta is empty) process stoped

grava o pedido certinho na gravacao do item do pedido da o erro acima


pergunta como resolver este tipo de erro??


grato


Placido


Placido

Placido

Curtidas 0

Respostas

Marco Salles

Marco Salles

23/03/2009

Parece que vc esta Aplicando o Delta qnd esta esta Vazio..

Vc esta dando Um ApplayUpdates ou um Refresh ????


GOSTEI 0
Placido

Placido

23/03/2009

Boa tarde..

estou utilizando o appalyupdate

apenas para vc entender...

primeiro da a mensagem de erro, mas o registro e gravado normalmente..

não estou entendendo o pq da mensagem de eero que está dando..


Grato


Placido


GOSTEI 0
Marco Salles

Marco Salles

23/03/2009

Vc deve ta dando um Refresh apos esta applayUpdaes.. Ou alguma coisa deste Genero


GOSTEI 0
Marco Salles

Marco Salles

23/03/2009

Desconsidere o meu Ultimo Post.. Temos erro se dermos um
Refresh seguido de ApllayUpdates. Mas é outra História

Vc da o ApplayUpdates no Mestre Ou No Detalhe ???

No DbExpress no Mestre/Detalhe NextDataSet é o Provider do Mestre
responsavel por resolver o Delta no Servidor... Sua configuração dos
componentes esta assim ?????? Um DataSetProvider para ambos ???


GOSTEI 0
Placido

Placido

23/03/2009

Bom dia..

Obrigado pela colaboração..

Eu utilizo uma tela padrao para inclusão de tabel normal e ula tela padrao
para tabela do tipo mestredetalhe em todo o meu sistema
no memento de desenvolver o programa para uma tela nova estou herdando esta tela padrao...

O que eu estou achando esquisito é que o registro esta sendo incluido na tabela de itens..

Da a mensagem de erro, mas grava o registro...

Só estou querendo eliminar esta mensagem de erro..

Grato

Placido


GOSTEI 0
Marco Salles

Marco Salles

23/03/2009

Acredito Plácido que algumas informaçãoe seja, relevantes...

No DbExpree Mestre/Detalhe .. o applayUpdates no cdsMestre salva todas
as informaçoes .. É necesáio portanto dar um applayUpdates no CdsMestre , pq o Provider envia todas as Alteraçoes da Tabela Detalhes
bem com as alteraçoes da Tabela Mestre em Um Unico Delta , atraves de
um Unico DataSetProvider para que o processo de resolving fique
atomico ... Vc esta fazendo desta Forma ?????

As vezes vc Esta dando dois apllayUpdates ( Um para cdsDetalhes ,
Outro para CdsMestre) e o Delta ja esta vazio , pq ja foi resolvido pelo
provider... É isto que estou tentando te dizer

entendeu agora ??


GOSTEI 0
Jean Wetter

Jean Wetter

23/03/2009

Também tenho esse problema.

eu faço um while pra percorrer um client e incluir pra mim no cdsDetalhe os itens.

Como vc disse em cada ´volta´ do while eu dou um post e no evento afetrpost eu tenho o apllyupdates.

Porém não dá esse erro sempre...

Se poder me dá uma luz...

Atenciosamente

Jean Wetter 8)


GOSTEI 0
Jean Wetter

Jean Wetter

23/03/2009

Kra,

A mensagem de erro existe pois o seu DELTA (datasetProvider) ja fez a transaçao e assim já o limpou e dessa forma vc tenta fazer a transação denovo.

Provavelmente deve está usando um post e um ApplyUpdates, sendo que o post somente que é o certo pois o client detalhe não deve forçar a gravação no banco e sim mestre já faz isso automaticamente.

Se tiver fazendo algo diferente disso é só falar...

Atenciosamente

Jean Wetter 8)


GOSTEI 0
POSTAR