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

 


Responder a