[firebase-br] commit ou rollback em um script.

Siro siro em protej.com.br
Qui Jul 3 12:49:26 -03 2014


Rodrigo.

Este é um problema que tenho (rollback) que contornar quanto faço 
atualização do metadata.
Antes de executar qualquer script, faço um backup, pois caso ocorra 
erro, tenho que retornar a versão que executou ou não, corretamente o 
primeiro script.
Não é de "meu conhecimento" que é possível executar Rollback em DDL, "se 
não me engano" foi postado aqui uma informação sobre isto.
Caso isto seja possível, gostaria de saber onde encontrar material para 
estudos.
Utilizo Delphi com FibScript (FibPlus) para atualização do metadata e a 
possibilidade de rollback seria muito bem vinda.

Gladiston

Tenho muitos scripts que aprendi a criar, em baseando no  Ibexpert que 
utilizo(Customer), como por exemplo a manipulação de tabelas do sistema, 
mas dai ter que licenciar a distribuição do script. Não entendi.
Por favor se eu estiver entendendo erroneamente,  me oriente.

Desde já agradeço


Siro

Em 02/07/2014 11:31, Rodrigo Gomes da Silva escreveu:
> Siro,
>
> Simplesmente não funciona DDL e depois um DML na mesma transação. Se vc
> cria tabela e depois consegue povoar, então o engine ou script que vc ta
> usando faz um commit do DDL, impossibilitando de dar um rollback de antes
> da criação da tabela caso tiver algum problema com os dados.
>
> Se vc cria uma tabela e não da este commit não consegue fazer nenhum acesso
> a ela, nem pra inclusão de dados, nem mesmo pra consulta dela vazia.
>
>
> Em 1 de julho de 2014 18:34, Siro <siro em protej.com.br> escreveu:
>
>> Não podem ou não devem?
>> Pq faço isto a muito tempo e nunca tive problemas.
>>
>> Criar "Tabela".
>> Povoar "Tabela".
>> Criar "Campo", Alterar "Campo".
>> Inserir dados referente aos Campos
>> Etc...
>>
>>
>>
>> Em 18/06/2014 14:32, Gladiston Santana escreveu:
>>
>>   Colega,
>>> Scripts DDL (create table e afins) não podem ser inseridos junto com DML
>>> (update, insert...).
>>> Então você simplesmente roda o script de DDL e commita no final, recomendo
>>> que gere o arquivo texto .sql e rode-o com o isql.exe <seuarquivo.sql, se
>>> não ocorrer o erro então submeter os insert/update/delete de dados de que
>>> precisa.
>>> Se precisar manipular dados entre servidores distintos do tipo se falhar
>>>>>> também deve falhar cá, o chamado two phase commit, voce precisa de
>>> componentes especiais como o AnyDac.
>>>
>>>
>>> Em 18 de junho de 2014 09:55, Carlos Midia <carlosmidia2013 em gmail.com>
>>> escreveu:
>>>
>>>   Bom dia a todos, mensalmente faço atualizações no banco de dados dos
>>>> clientes em gostaria de saber como faço para:
>>>>
>>>> tipo tenho 30 scripts ai se passar todos sem erro ele dar um commit
>>>> e se der algum erro ele dar um  rollback .
>>>>
>>>>
>>>> tipo como colocar esses scripts em um bloco de comando ao qual se der
>>>> erro
>>>> em algum comando deixar o banco de dados intato como era antes.
>>>>
>>>>
>>>> meus comandos são tipo:
>>>>
>>>> criar tabela
>>>> excluir tabela
>>>> criar trigger
>>>> excluir trigger
>>>> insert
>>>>
>>>> e etc...
>>>> ______________________________________________
>>>> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
>>>> Para saber como gerenciar/excluir seu cadastro na lista, use:
>>>> http://www.firebase.com.br/fb/artigo.php?id=1107
>>>> Para consultar mensagens antigas: http://firebase.com.br/pesquisa
>>>>
>>>>
>>>
>> ______________________________________________
>> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
>> Para saber como gerenciar/excluir seu cadastro na lista, use:
>> http://www.firebase.com.br/fb/artigo.php?id=1107
>> Para consultar mensagens antigas: http://firebase.com.br/pesquisa
>>
> ______________________________________________
> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
> Para saber como gerenciar/excluir seu cadastro na lista, use: http://www.firebase.com.br/fb/artigo.php?id=1107
> Para consultar mensagens antigas: http://firebase.com.br/pesquisa
>





Mais detalhes sobre a lista de discussão lista