[firebase-br] AS USER :IN_USER PASSWORD :IN_PWD -- just for example WITH autonomous TRANSACTION -- note autonomous transaction

Rafael Barberi Moreira rafaelbmoreira em qtux.com.br
Quinta Outubro 2 16:56:22 -03 2025


Olá boa tarde,

Recebi esta mensagem e pode ter conteúdo sensível e vindo por engano.

A intenção é informar, estou desconsiderando a mensagem.

Boa sorte em seus trabalhos.

Att,

Rafael




Em qui., 2 de out. de 2025 às 16:51, Mário Reis via lista <
lista em firebase.com.br> escreveu:

> Gladiston,
> Esta construção é de Confiança?!
> A ideia é trazer da base de produção os dados atuais e passá-los para uma
> base noa que estou migrando.
> Ora abaixo o Valor que está voltandoa da base externa(produção)
> Pessoas.Altura é '0.02'  mas na verdade nesta base de migração que
> exite esse valor em altura na base de produção o valor em consulta direta é
> 1.72 ou 1.51 ou 1.55, 1.52
> Assim não dá para confiar assim há alguma outra forma de resolver isto as
> dua tabelas são PESSOAS então em memória confunde-se só poderá ser um bug
>
> CREATE PROCEDURE CONSULTA_EXTERNA_PESSOAS(
>   IN_USER TYPE OF USERID,
>   IN_PWD VARCHAR(20),
>   IN_ID SMALLINT)
> RETURNS(
>   OUT_CONTA INTEGER,
>   OUT_ID BIGINT,
>   OUT_NOME VARCHAR(50),
>   OUT_APELIDO VARCHAR(20),
>   OUT_DTADM TYPE OF COLUMN SOCIOS.DATADM,
>   WPESSOA_ID TYPE OF COLUMN PESSOAS.PESSOA_ID,
>   WTITULO_ID TYPE OF COLUMN PESSOAS.TITULO_ID,
>   WAPELIDO TYPE OF COLUMN PESSOAS.APELIDO,
>   WNOME TYPE OF COLUMN PESSOAS.NOME,
>   WTIPO_ID TYPE OF COLUMN PESSOAS.TIPO_ID,
>   WNOBI TYPE OF COLUMN PESSOAS.NOBI,
>   WARQIDENT TYPE OF COLUMN PESSOAS.ARQIDENT,
>   WDATEMIBI TYPE OF COLUMN PESSOAS.DATEMIBI,
>   WSEXO TYPE OF COLUMN PESSOAS.SEXO,
>   WESTCIVIL TYPE OF COLUMN PESSOAS.ESTCIVIL,
>   WDAT_NASC TYPE OF COLUMN PESSOAS.DAT_NASC,
>   WNIF TYPE OF COLUMN PESSOAS.NIF,
>   WRFEMIT_NIF TYPE OF COLUMN PESSOAS.RFEMIT_NIF,
>   WDATNIF TYPE OF COLUMN PESSOAS.DATNIF,
>   WNOSEGSOCIAL TYPE OF COLUMN PESSOAS.NOSEGSOCIAL,
>   WRFEMIT_SEGSOC TYPE OF COLUMN PESSOAS.RFEMIT_SEGSOC,
>   WDATSEGSOC TYPE OF COLUMN PESSOAS.DATSEGSOC,
>   WCONCNASC_ID TYPE OF COLUMN PESSOAS.CONCNASC_ID,
>   WFREGNASC_ID TYPE OF COLUMN PESSOAS.FREGNASC_ID,
>   WPROFISSO_ID TYPE OF COLUMN PESSOAS.PROFISSO_ID,
>   WEMPRESA_ID TYPE OF COLUMN PESSOAS.EMPRESA_ID,
>   WRELACAO_ID TYPE OF COLUMN PESSOAS.RELACAO_ID,
>   WENTMST_ID TYPE OF COLUMN PESSOAS.ENTMST_ID,
>   WSITUAC_ID TYPE OF COLUMN PESSOAS.SITUAC_ID,
>   WSINDICATO_ID TYPE OF COLUMN PESSOAS.SINDICATO_ID,
>   WILHA_ID TYPE OF COLUMN PESSOAS.ILHA_ID,
>   WNASC_RES TYPE OF COLUMN PESSOAS.NASC_RES,
>   WUSERID TYPE OF COLUMN PESSOAS.USERID,
>   WESTACAO TYPE OF COLUMN PESSOAS.ESTACAO,
>   WDATA TYPE OF COLUMN PESSOAS."DATA",
>   WHORA TYPE OF COLUMN PESSOAS.HORA,
>   WSITU TYPE OF COLUMN PESSOAS.SITU,
>   WACCAO TYPE OF COLUMN PESSOAS.ACCAO,
>   WDEPENDE_ID TYPE OF COLUMN PESSOAS.DEPENDE_ID,
>   WDD TYPE OF COLUMN PESSOAS.DD,
>   WCC TYPE OF COLUMN PESSOAS.CC,
>   WFF TYPE OF COLUMN PESSOAS.FF,
>   WDATA_C TYPE OF COLUMN PESSOAS.DATA_C,
>   WNOBI12 TYPE OF COLUMN PESSOAS.NOBI12,
>   WNACIONALIDADE TYPE OF COLUMN PESSOAS.NACIONALIDADE,
>   WNMPAI TYPE OF COLUMN PESSOAS.NMPAI,
>   WINDEVTPAI TYPE OF COLUMN PESSOAS.INDEVTPAI,
>   WNMMAE TYPE OF COLUMN PESSOAS.NMMAE,
>   WINDEVTMAE TYPE OF COLUMN PESSOAS.INDEVTMAE,
>   WNUTSNS TYPE OF COLUMN PESSOAS.NUTSNS,
>   WLOC_PEDIDO TYPE OF COLUMN PESSOAS.LOC_PEDIDO,
>   WVERSAOCARTAO TYPE OF COLUMN PESSOAS.VERSAOCARTAO,
>   WESTADOCARTAO TYPE OF COLUMN PESSOAS.ESTADOCARTAO,
>   WDATVALIDAD TYPE OF COLUMN PESSOAS.DATVALIDAD,
>   WALTURA TYPE OF COLUMN PESSOAS.ALTURA,
>   WDTHRPRT TYPE OF COLUMN PESSOAS.DTHRPRT,
>   WDHPRINT TYPE OF COLUMN PESSOAS.DHPRINT,
>   WCCUSTOS TYPE OF COLUMN PESSOAS.CCUSTOS,
>   WID_PES_LOC TYPE OF COLUMN PESSOAS.PESSOA_ID)
> AS
> DECLARE VARIABLE SDB VARCHAR(255);
> DECLARE VARIABLE SSQL VARCHAR(25000);
> DECLARE VARIABLE CONTA INTEGER;
> DECLARE VARIABLE XSQLCODE INTEGER;
> DECLARE VARIABLE XGDSCODE INTEGER;
> DECLARE VARIABLE XSQLSTATE VARCHAR(100);
> DECLARE VARIABLE SNOTE VARCHAR(100);
> BEGIN
>
>  OUT_CONTA=1;
>
> -- APLICAÇÃO EM PRODUÇÃO
>  sDB='HostProducao.pt/3052:D:\Firebird\Fb30\Dados\GestACRA.FDB';
>
>  --' WHERE P.PESSOA_ID >= '||TRIM(CAST(:IN_ID AS VARCHAR(15)))||
>  --  sSql=
>  --   ' Select P.Pessoa_id, P.Nome, P.Apelido, S.NOSOC_ID, s.DATADM From
> Pessoas P '||
>  --   ' Inner Join Socios S on S.Socios_ID=P.Pessoa_Id '||
>  --   ' Where S.NOSOC_ID >= '||TRIM(CAST( IN_ID AS VARCHAR(15)) ) ;
>  --  ' INNER JOIN SOCIOS S ON S.SOCIOS_ID=P.PESSOA_ID '|| NO.S1 --5513
> ID-8526 ... 8751
>
>
> sSql = TRIM(
> ' SELECT '||
> ' COALESCE(P.PESSOA_ID, 0) AS PESSOA_ID, '||
> ' COALESCE(P.TITULO_ID, 0) AS TITULO_ID, '||
> ' COALESCE(P.APELIDO, '''') AS APELIDO, '||
> ' COALESCE(P.NOME, ''SEM NOME'') AS NOME, '||
> ' COALESCE(P.TIPO_ID, '''') AS TIPO_ID, '||
> ' COALESCE(P.NOBI, '''') AS NOBI, '||
> ' COALESCE(P.ARQIDENT, '''') AS ARQIDENT, '||
> ' COALESCE(P.DATEMIBI, DATE ''1900-01-01'') as DATEMIBI, '||
> ' COALESCE(P.SEXO, '' '') AS SEXO, '||
> ' COALESCE(P.ESTCIVIL, '' '') AS ESTCIVIL, '||
> ' COALESCE(P.DAT_NASC, DATE ''1900-01-01'') as DAT_NASC, '||
> ' COALESCE(P.NIF, ''000000000'') AS NIF, '||
> ' COALESCE(P.RFEMIT_NIF, '''') AS RFEMIT_NIF, '||
> ' COALESCE(P.DATNIF, DATE ''1900-01-01'') as DATNIF, '||
> ' COALESCE(P.NOSEGSOCIAL, ''00000000000'') AS NOSEGSOCIAL, '||
> ' COALESCE(P.RFEMIT_SEGSOC, '''') AS RFEMIT_SEGSOC, '||
> ' COALESCE(P.DATSEGSOC, DATE ''1900-01-01'') as DATSEGSOC, '||
> ' COALESCE(P.CONCNASC_ID, 0) AS CONCNASC_ID, '||
> ' COALESCE(P.FREGNASC_ID, 0) AS FREGNASC_ID, '||
> ' COALESCE(P.PROFISSO_ID, 0) AS PROFISSO_ID, '||
> ' COALESCE(P.EMPRESA_ID, 0) AS EMPRESA_ID, '||
> ' COALESCE(P.RELACAO_ID, 0) AS RELACAO_ID, '||
> ' COALESCE(P.ENTMST_ID, 0) AS ENTMST_ID, '||
> ' COALESCE(P.SITUAC_ID, '' '') AS SITUAC_ID, '||
> ' COALESCE(P.SINDICATO_ID, 0) AS SINDICATO_ID, '||
> ' COALESCE(P.ILHA_ID, 0) AS ILHA_ID, '||
> ' COALESCE(P.NASC_RES, '' '') AS NASC_RES, '||
> ' COALESCE(P.USERID, '''') AS USERID, '||
> ' COALESCE(P.ESTACAO, '''') AS ESTACAO, '||
> ' COALESCE(P."DATA", DATE ''1900-01-01'') AS "DATA", '||
> ' COALESCE(P.HORA, TIME ''00:00:00'') AS HORA, '||
> ' COALESCE(P.SITU, '' '') AS SITU, '||
> ' COALESCE(P.ACCAO, ''000'') AS ACCAO, '||
> ' COALESCE(P.DEPENDE_ID, 0) AS DEPENDE_ID, '||
> ' COALESCE(P.DD, 0) AS DD, '||
> ' COALESCE(P.CC, 0) AS CC, '||
> ' COALESCE(P.FF, 0) AS FF, '||
> ' COALESCE(P.DATA_C, DATE ''1900-01-01'') AS DATA_C, '||
> ' COALESCE(P.NOBI12, '''') AS NOBI12, '||
> ' COALESCE(P.NACIONALIDADE, '''') AS NACIONALIDADE, '||
> ' COALESCE(P.NMPAI, '''') AS NMPAI, '||
> ' COALESCE(P.INDEVTPAI, '''') AS INDEVTPAI, '||
> ' COALESCE(P.NMMAE, '''') AS NMMAE, '||
> ' COALESCE(P.INDEVTMAE, '''') AS INDEVTMAE, '||
> ' COALESCE(P.NUTSNS, '''') AS NUTSNS, '||
> ' COALESCE(P.LOC_PEDIDO, '''') AS LOC_PEDIDO, '||
> ' COALESCE(P.VERSAOCARTAO, '''') AS VERSAOCARTAO, '||
> ' COALESCE(P.ESTADOCARTAO, '''') AS ESTADOCARTAO, '||
> ' COALESCE(P.DATVALIDAD, TIMESTAMP ''1900-01-01 00:00:00'') AS DATVALIDAD,
> '||
> ' COALESCE(P.ALTURA, 0)  AS ALTURA, '||
> ' COALESCE(P.DTHRPRT, '''') AS DTHRPRT, '||
> ' COALESCE(P.DHPRINT, TIMESTAMP ''1900-01-01 00:00:00'') AS DHPRINT, '||
> ' COALESCE(P.CCUSTOS, 0) AS CCUSTOS '||
> ' FROM PESSOAS P '||
> ' WHERE P.PESSOA_ID BETWEEN 8530 AND 8666  '||
> ' ORDER BY P.PESSOA_ID'
> ) ;
>
>
>
>   FOR
>    EXECUTE STATEMENT
>       ( :sSql )
>       ON EXTERNAL DATA SOURCE :sDB
>       AS USER :IN_USER PASSWORD :IN_PWD -- just for example
>       WITH autonomous TRANSACTION -- note autonomous transaction
>       INTO
>      :wPESSOA_ID, :wTITULO_ID, :wAPELIDO, :wNOME, :wTIPO_ID, :wNOBI,
> :wARQIDENT, :wDATEMIBI, :wSEXO,
>      :wESTCIVIL, :wDAT_NASC, :wNIF, :wRFEMIT_NIF, :wDATNIF,
> :wNOSEGSOCIAL,:wRFEMIT_SEGSOC,
>      :wDATSEGSOC, :wCONCNASC_ID, :wFREGNASC_ID, :wPROFISSO_ID,
> :wEMPRESA_ID, :wRELACAO_ID,
>      :wENTMST_ID, :wSITUAC_ID, :wSINDICATO_ID, :wILHA_ID, :wNASC_RES,
> :wUSERID, :wESTACAO, :wDATA,
>      :wHORA, :wSITU, :wACCAO, :wDEPENDE_ID, :wDD, :wCC, :wFF, :wDATA_C,
> :wNOBI12, :wNACIONALIDADE,
>      :wNMPAI, :wINDEVTPAI,:wNMMAE, :wINDEVTMAE, :wNUTSNS, :wLOC_PEDIDO,
> :wVERSAOCARTAO, :wESTADOCARTAO,
>      :wDATVALIDAD, :wALTURA, :wDTHRPRT, :wDHPRINT, :wCCUSTOS
>   DO
>   BEGIN
>
>  --Não insere repetidos
>     conta=ROW_COUNT   ;
>     OUT_NOME=:wNOME ;
>     OUT_APELIDO=:wAPELIDO;
>     OUT_ID =:wPessoa_id;
>
>     if (:wALTURA<>0) then
>      If (:wALTURA=0.02) then  --   <= tem bug e não é meu ALTURA=0.02 é na
> base local  - sem falar que eu não estou consultando a base local Só se
> internamente o sistema faz isso, mas
>                                                    -não é  percetível. Na
> base EXTER=> wALTURA=1.52;    --
> :sDB='HostProducao.pt/3052:D:\Firebird\Fb30\Dados\GestACRA.FDB';
>
>    EXECUTE PROCEDURE PESSOAS_INS_UPD(
>       :wPESSOA_ID,
>       :wTITULO_ID,
>       :wAPELIDO,
>       :wNOME,
>       :wTIPO_ID,
>       :wNOBI,
>       :wARQIDENT,
>       :wDATEMIBI,
>       :wSEXO,
>       :wESTCIVIL,
>       :wDAT_NASC,
>       :wNIF,
>       :wRFEMIT_NIF,
>       :wDATNIF,
>       :wNOSEGSOCIAL,
>       :wRFEMIT_SEGSOC,
>       :wDATSEGSOC,
>       :wCONCNASC_ID,
>       :wFREGNASC_ID,
>       :wPROFISSO_ID,
>       :wEMPRESA_ID,
>       :wRELACAO_ID,
>       :wENTMST_ID,
>       :wSITUAC_ID,
>       :wSINDICATO_ID,
>       :wILHA_ID,
>       :wNASC_RES,
>       :wUSERID,
>       :wESTACAO,
>       :wDATA,
>       :wHORA,
>       :wSITU,
>       :wACCAO,
>       :wDEPENDE_ID,
>       :wDD,
>       :wCC,
>       :wFF,
>       :wDATA_C,
>       :wNOBI12,
>       :wNACIONALIDADE,
>       :wNMPAI,
>       :wINDEVTPAI,
>       :wNMMAE,
>       :wINDEVTMAE,
>       :wNUTSNS,
>       :wLOC_PEDIDO,
>       :wVERSAOCARTAO,
>       :wESTADOCARTAO,
>       :wDATVALIDAD,
>       :wALTURA,
>       :wDTHRPRT,
>       :wDHPRINT,
>       :wCCUSTOS
>       )   ;
>
>
>    OUT_CONTA=:OUT_CONTA + 1;
>
>  -- DO SUSPEND;
> WHEN ANY DO
>  IN AUTONOMOUS TRANSACTION DO
>   BEGIN
>     xsqlcode=SQLCODE;
>     xgdscode=GDSCODE;
>     xSQLSTATE=SQLSTATE;
>
>    sNote='Falha ao importar';
>   INSERT INTO IMPORT_ERROR_LOG (
>     SSOURCE_FILE,
>     PPK_SOURCE,
>     ISQLCODE,
>     IGDSCODE,
>     SSQLSTATE,
>     NOTE)
>   VALUES (
>     :SDB,
>     CAST(:wPESSOA_ID AS VARCHAR(50)),
>     :xSQLCODE,
>     :xGDSCODE,
>     :XSQLSTATE,
>     :sNOTE);
>  END
>
>
>  END
>
>
>
>
> END;
> Com os meus melhores cumprimentos
> Mário Agostinho Reis
> 919262146
>
> Esta mensagem contém informação de natureza confidencial e é
> exclusivamente dirigida ao(s) destinatário(s) indicado(s). Se, por engano,
> receber este email agradecemos que não o copie nem o reenvie e que nos
> notifique do ocorrido através do email de resposta.
> ______________________________________________
> 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