Olá, bom dia. Pelos livros que tenho e pelos artigos que tenho lido e alguns pequenos testes para validar umas informações de artigos e livros pude constatar o seguinte. Quando a gente combina SQLConnection, SQLDataset, DatasetProvider e ClientDataset a coisa ocorre mais ou menos assim: Quando você coloca um select * from tabela no commandtext do clientdataset e manda abrir para que ele retorne os dados, ele passa o commandtext para o datasetprovider que faz o parser do SQL digitado e envia para o sqldataset que abre a conexão com o banco, pesquisa as informações, retorna os dados para o clientdaset e fecha a conexão. Quando você manda salvar (ApplyUpdates) o mesmo acontece...abre a conexão(transação) realiza a operação na base e fecha a conexão (transação). Você pode testar isso, colocando este conjunto destes componentes e ativar o clientdataset, verificar que os dados estão cacheados mostrando-os em um grid e desative a conexão no sqlconnection e verás que os dados continuam em memória ainda que a conexão com o banco esteja cortada. Voce poderia alterar esses dados e aplicar as mudanças....e eles iriam parar no banco.
Aí surge o assunto de concorrência...mas é outro assunto já. Bem, isso é o pouco de conceito que eu sei, se alguém tem um conceito diferente ou mais bem firmado, por favor, postem. []s Topolniak. De: delphi-br@yahoogrupos.com.br [mailto:[EMAIL PROTECTED] Em nome de Fellipe Henrique Enviada em: terça-feira, 4 de março de 2008 21:29 Para: delphi-br@yahoogrupos.com.br Assunto: [delphi-br] Como funciona a transação no DBExpress ou Zeos? Olá amigos, estou acostumado nos componentes derivados do IBX, onde cada DataSet, voce vincula à um transação, não importando em qual Form o DataSet esteja, porém no DBExpress como no ZeosDB, a transação é iniciada a partir da conexão, passando-se um ID. vamos a um exemplinho: FrmVenda -> Inicia Transacao 1 Chama FrmCaixa -> Grava informações usando a Transação 1 Chama FrmContaReceber -> Grava informações usando a Transação 1 FrmVenda -> Commit na Transação 1 (Gravando os dados do Caixa e Conta a Receber). Minha questão é, como vincular os datasets do Caixa e Conta à Receber, na transação iniciada no Venda? No IBX, eu só passava a propriedade Transaction, como fica no DBX e Zeos? Obrigado desde já. []s -- _________________________________ T.·.F.·.A.·. Fellipe Henrique [EMAIL PROTECTED] <mailto:fellipeh%40gmail.com> [As partes desta mensagem que não continham texto foram removidas] [As partes desta mensagem que não continham texto foram removidas]