[firebase-br] GPRE

eduardo eduardo em icontroller.com.br
Seg Maio 16 15:23:08 -03 2005


Oi Euler

Até onde eu sei, o FB não trabalha com dois Databases ao mesmo tempo.
O que vc está pretendendo fazer é um PUMP de um Database para outro. 
Isto é possível em outros SGDB como MSSQL e ORACLE, mas não no FB até o 
2.0 (que eu saiba).

[]s Eduardo

euler sig wrote:
> Olá a todos.
> Estou desenvolvendo um programa que utiliza acesso direto às API´s 
> IB/Firebird. Inicialmente tenho efetuado testes utilizando um pequeno 
> programa em C, que posteriormente é processado pelo GPRE (utilitário que 
> acompanha o IB/Firebird) - A listagem está abaixo.
> O problema é o seguinte: tenho dois bancos com a mesma estrutura e 
> tabelas. Um contém tabelas "populadas" e o outro totalmente vazio. 
> Preciso incluir as linhas das tabelas de um para o outro, mas não quero 
> utilizar FETCH porque é muito lento.
> Utilizando INSERT INTO... SELECT é muito + rápido. Este exemplo pode ser 
> executado em Win ou Linux. A linha de comando é a seguinte:
> 
> gpre test.e -c -manual -no_lines -either_case -user sysdba -password 
> masterkey
> 
> Obtenho o seguinte erro:
> Inconsistent database specifier
> 
> Se eu utilizar FETCH, incluindo linha a linha funciona. Mas o desempenho 
> é muito baixo.
> 
> Abaixo o cod. fonte (TEST.E) que é processado pelo GPRE, devendo gerar o 
> arquivo TEST.C:
> 
> #include <ibase.h>
> #include <stdio.h>
> #include <stdlib.h>
> 
> int main( int argc, char *argv[] ) {
> 
>    EXEC SQL SET DATABASE db1 = "test.fdb";
>    EXEC SQL SET DATABASE db2 = "test2.fdb";
> 
>    EXEC SQL CONNECT ALL USER 'SYSDBA' PASSWORD 'masterkey';
> 
>    EXEC SQL SET TRANSACTION;
> 
>    /* aqui ocorre o problema */
>    EXEC SQL INSERT INTO db2.TEST SELECT * FROM db1.TEST;
> 
>    EXEC SQL COMMIT;
>  
>    EXEC SQL DISCONNECT ALL;
> 
>    return( 0 );
> }
> 
> 
> Se alguém tiver alguma dica !
> Euler Jr.
> ______________________________________________
> FireBase-BR (www.firebase.com.br) - Hospedado em www.bavs.com.br
> Para editar sua configuração na lista, use o endereço 
> http://mail.firebase.com.br/mailman/listinfo/lista_firebase.com.br
> Para consultar mensagens antigas: http://firebase.com.br/pesquisa
> 





Mais detalhes sobre a lista de discussão lista