Estou acompanhando esta thread e me parece que algo não está claro.
A transação deve existir no menor espaço de tempo, ou seja, você não vai colocar um starttransaction no OnShow do formulário de cadastro abobrinha. Você vai sim iniciar uma transação quando o processo que vai incluir as informações na tabela for disparado. Enquanto o usuário estiver no form abobrinha digitando suas informações nenhuma transação deve existir. Imagine que a transação esteja no onshow do form e o usuário vai no banheiro e depois tomar cafezinho. Neste tempo todo pelo menos 1 tabela está bloqueada. Esse tipo de tratamento tem que ser conhecido por todos os programadores de banco de dados. Pois é regra básica da boa programação para Banco de Dados! []'s De: delphi-br@yahoogrupos.com.br [mailto:[EMAIL PROTECTED] Em nome de Fellipe Henrique Enviada em: quarta-feira, 5 de março de 2008 08:16 Para: delphi-br@yahoogrupos.com.br Assunto: Re: [delphi-br] Como funciona a transação no DBExpress ou Zeos? Mas aí que está... minha aplicação é em MDI, o que acontece demais é o seguinte: o usuário clica pra incluir uma venda... e enquanto ele está incluindo a venda, ele vai em outros lugares, como por exemplo: ordem de serviço, cadastros e etc... o certo então seria antes do Venda.ApplyUpdates, eu dar um StartTransaction, e fazer tudo.. depois um Commit, assim enquanto ele estiver incluindo a venda, nao abriu nenhuma transação, e o que ele fizer nas outras telas, não será influenciado por esta transacao da venda.. o que me preocupou de inicio foi isso, ele só comitar os cadastros e O.S. depois que comitar a Venda neste exemplo. []s Em 05/03/08, Joao Morais <[EMAIL PROTECTED] <mailto:post%40joaomorais.com.br> > escreveu: > > Fellipe Henrique wrote: > > Bom Eduardo, os dois componentes usam CDS, então acredito que ao abrir > um > > cadastro (dar um open no CDS) ele não starta a transação, e ao dar o > > ApplyUpdate, aí sim que ele inicia e comita a transação, não é? bom, se > for > > aí sim, porque a transacão é questão de milisegundos, o que não > acarretará > > problemas... > > > > Pra entender melhor.. se eu der um StartTransaction, e tudo que eu fizer > em > > qualquer dataset no sistema, está vinculado nesta transação. Correto? > > Cada connection do Zeos possui um transaction. Então a sentença correta > seria: tudo o que for feito em um connection estará implicitamente na > mesma transação. > > -- > Joao Morais > > -- _________________________________ 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]