// 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]



-- 
<<<<< 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