amigo, eu acho, que vc nao pode mexer em tabelas e tals, sendo q ele ainda nao foi criada... o jeito certo, e vc comitar os create tables, depois starta outra transacao para fazer as suas verificacoes e tals..
Em 31/07/06, José Otavio DTI <[EMAIL PROTECTED]> escreveu: > > Eu sei q isso funciona > Mas eu pergunto agora.... pra que serve essa droga de processo com > transacoes se eu nao posso criar uma tabela, inserir dados e dar rollback em > caso de erro??? > > eu nao posso dar commit pois antes de criar a tabela, eu tenho outros > comandos que nao podem ser commitados no caso de erro. > > Será q existe alguma regra na transacao do tipo: > Criacao de tabela deve ser comitada senao a transacao nao enxerga.. > > Que raio de transacao é essa do FB???? > > > ----- Original Message ----- > From: Fellipe Henrique > To: delphi-br@yahoogrupos.com.br > Sent: Monday, July 31, 2006 10:02 AM > Subject: Re: [delphi-br] Mistério na Transação com FB. > > > Amigo, realmente o erro vai dar, pois a tabela Teste nao existe, e esta > na > mesma transacao.. o que voce pode fazer eh apos o Create Table dar um > CommitRetaining.... assim voce comita e permanece na mesma transacao.. > ou > usar uma transacao diferente ara a criacao da tabela... > > > []s > > Em 31/07/06, José Otavio DTI <[EMAIL PROTECTED]> > escreveu: > > > > > Bom dia a todos. > > > > Estou usando um IBTransaction ligado a um IBDataBase > > Estou usando um IBQuery ligado a este Transaction para executar as > > seguintes instruções: > > > > Transacao.StarTransaction > > try > > // Instruções SQL executadas no IBQuery que está ligado a > transação > > em questão > > <instrução SQL> ---------------------------------------------> > OK > > <instrução SQL> ---------------------------------------------> > OK > > <instrução SQL> ---------------------------------------------> > OK > > Create Table Teste (cTeste VarChar(20)); -----------> OK > > Insert into Teste (cTeste) Values ('Texto') ---------> ERRO!!! > > except > > Transacao.Rollback > > end; > > Transacao.Commit > > > > O problema ocorre na hora de dar o insert... da um erro dizendo que a > > tabela Teste não existe. > > Teoricamente, era pra transação enxergar a tabela, uma vez que ela > esta > > sendo criada na mesma. > > Se eu der um commit após o create, funciona corretamente. > > Mas estou trabalhando com transacao justamente para dar o commit só no > > final.... pois se acontecer allgum erro, posso dar rollback e cancelar > > tudo... inclusive a criação da tabela. > > > > Qualquer instrução SQL nesta transação, funciona corretamente... só o > > Ceate Table não funciona. > > Ele executa o create mas a transação nao enxerga a tabela. > > > > Será que as instruções em uma transação só funcionam com as tabelas ja > > criadas? > > > > Creio que não estou trabalhando de forma errada com a conexão e seus > > parametros... pois quando dou inserts numa tabela ja criada, funciona > > corretamente... e se precisar dar Rollback também. > > > > Alguém desvenda este mistério? > > > > > > Agradeço desde já a atenção de todos. > > > > Jose Otavio > > > > [As partes desta mensagem que não continham texto foram removidas] > > > > > > > > > > -- > _________________________________ > Fellipe Henrique > [EMAIL PROTECTED] > > Borland Developer Studio 2006 Certified > > "Venham até a borda, ele disse. > Eles disseram: Nós temos medo. > Venham até a borda, ele insistiu. > Eles foram, Ele os empurrou... > E eles voaram." > (Guillaume Apollinaire) > > > > [As partes desta mensagem que não continham texto foram removidas] > > > > [As partes desta mensagem que não continham texto foram removidas] > > > -- _________________________________ Fellipe Henrique [EMAIL PROTECTED] Borland Developer Studio 2006 Certified "Venham até a borda, ele disse. Eles disseram: Nós temos medo. Venham até a borda, ele insistiu. Eles foram, Ele os empurrou... E eles voaram." (Guillaume Apollinaire) [As partes desta mensagem que não continham texto foram removidas] -- <<<<< FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM >>>>> <*> Para ver as mensagens antigas, acesse: http://br.groups.yahoo.com/group/delphi-br/messages <*> Para falar com o moderador, envie um e-mail para: [EMAIL PROTECTED] Links do Yahoo! Grupos <*> Para visitar o site do seu grupo na web, acesse: http://br.groups.yahoo.com/group/delphi-br/ <*> Para sair deste grupo, envie um e-mail para: [EMAIL PROTECTED] <*> O uso que você faz do Yahoo! Grupos está sujeito aos: http://br.yahoo.com/info/utos.html