[firebase-br] Ajuda - INSERT INTO em bancos de dados diferentes com delphi

Julio F. Figueiredo tuskinhu em gmail.com
Seg Abr 4 11:48:12 -03 2016


​acho q sim, essa proc faz isso, embora sejam no mesmo server vc pode
apontar pra nuvem:
essa proc fica num banco local e pra executar passo os dados de um outro
banco, no seu caso pode ser o da nuvem

CREATE OR ALTER procedure STP_CARREGA_LOG (
    NOME_BANCO varchar(100),
    USUARIO varchar(20),
    SENHA varchar(20),
    ANOS smallint)
returns (
    CONTA integer,
    T_INI timestamp,
    T_FIM timestamp)
as
declare variable V_SQL varchar(500);
declare variable V_SQL2 varchar(500);
declare variable V_SQL3 varchar(500);
declare variable SUBDOC integer;
declare variable USER_LOG integer;
declare variable COD_LOG integer;
declare variable COD_OPER integer;
declare variable DATA date;
declare variable DESCR varchar(300);
declare variable DOC integer;
declare variable HORA time;
declare variable ID_MOD integer;
declare variable DIAS integer;
begin
  Dias = Anos * 365;
  V_SQL = 'SELECT LOG.log, LOG.cod_operacao, LOG.data, LOG.descricao,
LOG.documento, LOG.subdocumento, ' ||
                 'LOG.Hora, LOG.id_modulo, LOG.usuario FROM LOG WHERE
(current_date - LOG.DATA) > ' ||
                 Cast (Dias as varchar(6));
  conta = 0;
  t_ini = Current_Timestamp;

  for
   EXECUTE STATEMENT
     :v_sql
   ON EXTERNAL :nome_banco  -- caminho completo 'localhost:d:\db\db.fdb'
   AS USER :usuario
   PASSWORD :senha
   Into
      :cod_log,
      :cod_oper,
      :data,
      :descr,
      :doc,
      :subdoc,
      :hora,
      :id_mod,
      :user_log
   DO
   begin
     conta = conta + 1;
     v_sql2 = 'update Log set CONTROLE = ''G'' where log = ' ||
cast(cod_log as varchar(20));

     Insert Into LOG (LOG, data, hora, id_modulo, usuario, cod_operacao,
descricao, documento, subdocumento)
     Values (:cod_log, :data, :hora, :id_mod, :user_log, :cod_oper, :descr,
:doc, :subdoc);

     EXECUTE STATEMENT :v_sql2
     ON EXTERNAL :nome_banco
     AS USER :usuario
     PASSWORD :senha;
   end

   v_sql3 = 'delete from Log where CONTROLE = ''G'' ';

   EXECUTE STATEMENT :v_sql3
   ON EXTERNAL :nome_banco
   AS USER :usuario
   PASSWORD :senha;

   t_fim = Current_Timestamp;

   suspend;
end​


________________________________________
Att,
*Julio F. Figueiredo*
*Analista de Sistemas*

Em 2 de abril de 2016 23:30, Carlos Midia <carlosmidia2013 em gmail.com>
escreveu:

> Boa noite, pessoal é possível usando o delphi e firebird dar um
> INSERT INTO no banco local pegando da tabela de outros banco de dados que
> no meu caso está hospedado em um servidor na nuvem.
>
> tipo:
> INSERT INTO ESTOQUE (ESTOQUE.IDEMPRESA, ESTOQUE.IDPRODUTO,
> ESTOQUE.QUANTIDADE)
>
> SELECT 1,PRODUTOS.ID,PRODUTOS.QUANTIDADE FROM PRODUTOS
>
> a tabela de produtos está em outro banco de dados
> ______________________________________________
> 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://www.firebase.com.br/pesquisa_lista.html
>



Mais detalhes sobre a lista de discussão lista