Duvida DataSet

Delphi

23/06/2004

estou usando o DBX para me conectar no banco ... tenho um SQLConnection, um SQLDataSet e um DataSource ... qdo tento linkar uma grid ao datasource, ocorre o seguinte erro: operation not allowed on a unidirectional dataset. Pq esse erro ocorre ???

desde ja vlw!!


Fvilela

Fvilela

Curtidas 0

Respostas

Afarias

Afarias

23/06/2004

Pq, pelo que eu sei sobre o DBX, ele não possui DataSets Bi-direcionais!! Ou seja, os data-sets não mantem um buffer com os registros retirados do banco de dados para navegação.

Para ter esta funcionalidade use um ClientDataSet associado ao SQLDataSet ou SQLQuery


T+


GOSTEI 0
Vinicius2k

Vinicius2k

23/06/2004

É exatamente por isso q o afarias explicou, porém com um adendo...

Entre a SQLQuery e o ClientDataSet existe a necessidade do Provider que na verdade é quem vai fazer o buffer para navegação...
Em resumo, a arquitetura de conexão mais recomendada, é exatamente a mesma usada para 3 camadas, a qual vc já está habituado Fernando... a diferença é que todos os componentes estarão no DataModule da aplicação cliente...

Espero ter ajudado...
T+


GOSTEI 0
Fvilela

Fvilela

23/06/2004

Ajudaram sim ... obrigado.


GOSTEI 0
Afarias

Afarias

23/06/2004

Só um detalhe Vina, que não sei se foi isso q quiz dizer, mas::

existe a necessidade do Provider que na verdade é quem vai fazer o buffer para navegação...


Na verdade o Provider não mantem o Buffer, este é mantido pelo ClientDataSet -- o ClientDataSet pode criar este buffer de diversas fontes, como arquivos ou o Provider (e ai, de um DataSet)

O Provider durante a consulta (Open do CDS) tem como única função, resgatar os registros do DataSet e enviar para o CDS que então os armazena em seu Buffer (Data)


Abração!
T+


GOSTEI 0
Vinicius2k

Vinicius2k

23/06/2004

:oops:
se vc não me corrigisse ia ficar uma grande besteira escrita aqui...
eu quis dizer [b:1a0d992c04]trazer para o buffer[/b:1a0d992c04] e não [b:1a0d992c04]fazer o buffer[/b:1a0d992c04]
desculpe o erro Fernando !

valeu afarias ! :wink:
T+


GOSTEI 0
Afarias

Afarias

23/06/2004

hehehehe... pior q eu tinha imaginado isso!! :D


Abraço
T+


GOSTEI 0
POSTAR