[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