Funciona mas nao rola rollback se der erro nos comandos. NAO POSSO MUDAR A ORDEM DOS COMANDOS SQL pois esse é o processo de atualizacao do meu sistema
quero saber porque que a transacao nao ta enxergando a tabela sendo que esta foi criada na mesma. Obrigado ----- Original Message ----- From: Yahoo To: delphi-br@yahoogrupos.com.br Sent: Monday, July 31, 2006 10:03 AM Subject: Re: [delphi-br] Mistério na Transação com FB. // Assim vai funcionar Create Table Teste (cTeste VarChar(20)); -----------> OK 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 Insert into Teste (cTeste) Values ('Texto') ---------> ERRO!!! Transacao.Commit except Drop Table Teste (cTeste VarChar(20)); -----------> OK Transacao.Rollback end; ----- Original Message ----- From: José Otavio DTI To: delphi-br@yahoogrupos.com.br Sent: Monday, July 31, 2006 9:53 AM Subject: [delphi-br] Mistério na Transação com FB. 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] [As partes desta mensagem que não continham texto foram removidas] [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