Ir para conteúdo
  • Cadastre-se

NILSON BRASIL

Membros
  • Total de ítens

    4
  • Registro em

  • Última visita

Posts postados por NILSON BRASIL

  1. NÃO ESTOU CARREGANDO NENHUMA DLL PELO SISTEMA. SERÁ QUE PODE SER AS CHAVE PRIVADA/PUBLICA

    ESTOU SOMENTE COM ESSE PROBLEMA NA AQUI NA POLING.

    OBRIGADO

    na procedure abaixo, passei na chave 6 letras, será q tem que ser 4.

    procedure TfsH.ACBrAAC1GetChave(var Chave: String); <- AQUI EU PASSEI UMA CHAVE COM 6 LETRAS.

    no O eECFc está validando beleza a chave

    DEIXA EU TE PASSA O MEU CÓDIGO:

    function TfPrincipal.GeraMD5: string;

    var

    Arquivo : TextFile;

    NomeArq, ArqTexto, aMD5: string;

    F : TSearchRec;

    Ret : Integer;

    begin

    Result := '';

    try

    // Apaga arquivo anterior

    ArqTexto := 'Listamd5.txt';

    if FileExists(ArqTexto) then

    DeleteFile(ArqTexto);

    // cria o arquivo TXT na mesma pasta do sistema

    AssignFile(Arquivo, ArqTexto);

    ReWrite(Arquivo);

    // lista todos os arquivo exe da pasta do aplicativo e gera o MF5

    Ret := FindFirst(ExtractFilePath(Application.ExeName)+'\*.exe', faAnyFile, F);

    try

    while Ret=0 do

    begin

    if F.Attr and faDirectory<>faDirectory then

    begin

    NomeArq := ExtractFilePath(Application.ExeName)+F.Name;

    aMD5 := MD5Print(MD5File(NomeArq));

    WriteLn(Arquivo, NomeArq+' - '+aMD5);

    end;

    Ret := FindNext(F);

    end; //verificar com homologador

    Ret := FindFirst(ExtractFilePath(Application.ExeName)+'\*.dll', faAnyFile, F);

    while Ret=0 do

    begin

    if F.Attr and faDirectory<>faDirectory then

    begin

    if (UpperCase(F.Name)= uppercase('DarumaFrameWork.dll')) or

    (UpperCase(F.Name)= uppercase('LeituraMFDBin.dll')) or

    (UpperCase(F.Name)= uppercase('lebin.dll')) or

    (UpperCase(F.Name)= uppercase('BemaFI32.dll')) or

    (UpperCase(F.Name)= uppercase('Bematech.dll')) or

    (UpperCase(F.Name)= uppercase('BemaMFD2.dll')) or

    (UpperCase(F.Name)= uppercase('BemaMFD.dll')) or

    (UpperCase(F.Name)= uppercase('elgin.dll')) or

    (UpperCase(F.Name)= uppercase('InterfaceEpson.dll')) or

    (UpperCase(F.Name)= uppercase('CONVECF.dll')) or

    (UpperCase(F.Name)= uppercase('DLLG2.dll')) or

    (UpperCase(F.Name)= uppercase('sign_bema.dll')) or

    (UpperCase(F.Name)= uppercase('MSJET35.dll')) then

    begin

    NomeArq := ExtractFilePath(Application.ExeName)+F.Name;

    aMD5 := MD5Print(MD5File(NomeArq));

    WriteLn(Arquivo, NomeArq+' - '+aMD5);

    end;

    end;

    Ret := FindNext(F);

    end;

    finally

    FindClose(F);

    end;

    Closefile(Arquivo);

    // gera MD5 do arquivo texto

    finally

    cMD5txt := MD5Print(MD5File(ArqTexto));

    end;

    end;

    procedure TfPrincipal.ChamaMD5;

    var

    F : TSearchRec;

    Ret : Integer;

    begin

    GeraMD5;

    with fsH.ACBrAAC1.IdentPAF.OutrosArquivos.New do

    begin

    Nome := 'c:\infobrasil\infopdv\exec\infopdv.exe';

    MD5 := MD5Print(MD5File(Nome));

    end;

    Ret := FindFirst(ExtractFilePath(Application.ExeName)+'\*.dll', faAnyFile, F);

    while Ret=0 do

    begin

    if F.Attr and faDirectory<>faDirectory then

    begin

    if (UpperCase(F.Name)= uppercase('lebin.dll')) or

    (UpperCase(F.Name)= uppercase('LeituraMFDBin.dll')) or

    (UpperCase(F.Name)= uppercase('DarumaFrameWork.dll')) or

    (UpperCase(F.Name)= uppercase('BemaFI32.dll')) or

    (UpperCase(F.Name)= uppercase('Bematech.dll')) or

    (UpperCase(F.Name)= uppercase('BemaMFD2.dll')) or

    (UpperCase(F.Name)= uppercase('BemaMFD.dll')) or

    (UpperCase(F.Name)= uppercase('elgin.dll')) or

    (UpperCase(F.Name)= uppercase('InterfaceEpson.dll')) or

    (UpperCase(F.Name)= uppercase('CONVECF.dll')) or

    (UpperCase(F.Name)= uppercase('DLLG2.dll')) or

    (UpperCase(F.Name)= uppercase('sign_bema.dll')) or

    (UpperCase(F.Name)= uppercase('MSJET35.dll')) then

    begin

    with fsH.ACBrAAC1.IdentPAF.OutrosArquivos.New do

    begin

    Nome := ExtractFilePath(Application.ExeName)+F.Name;

    end;

    end;

    end;

    Ret := FindNext(F);

    end;

    with fsH.ACBrPAF1.PAF_N do

    begin

    RegistroN1.RAZAOSOCIAL := fsH.ACBrAAC1.IdentPAF.Empresa.RazaoSocial;

    RegistroN1.UF := fsH.ACBrAAC1.IdentPAF.Empresa.Uf;

    RegistroN1.CNPJ := fsH.ACBrAAC1.IdentPAF.Empresa.CNPJ;

    RegistroN1.IE := fsH.ACBrAAC1.IdentPAF.Empresa.IE;

    RegistroN1.IM := fsH.ACBrAAC1.IdentPAF.Empresa.IM;

    RegistroN2.NOME := fsH.ACBrAAC1.IdentPAF.Paf.Nome;

    RegistroN2.VERSAO := fsH.ACBrAAC1.IdentPAF.Paf.Versao;

    RegistroN2.LAUDO := fsH.ACBrAAC1.IdentPAF.NumeroLaudo;

    end;

    with fsH.ACBrAAC1.IdentPAF.ArquivoListaAutenticados do

    begin

    Nome := 'ListaMD5.txt';

    MD5 := fsH.ACBrEAD1.MD5FromFile('c:\infobrasil\infopdv\exec\listamd5.txt');

    end;

    fsH.ACBrPAF1.Path :='C:\INFOBRASIL\INFOPDV\EXEC\';

    fsH.ACBrPAF1.SaveFileTXT_N('PAF_LISTAMD5.TXT');

    fsH.ACBrAAC1.SalvarArquivo;

  2. with fsH.ACBrPAF1.PAF_N do
    
        begin
    
        RegistroN1.RAZAOSOCIAL := fsH.ACBrAAC1.IdentPAF.Empresa.RazaoSocial;
    
        RegistroN1.UF          := fsH.ACBrAAC1.IdentPAF.Empresa.Uf;
    
        RegistroN1.CNPJ        := fsH.ACBrAAC1.IdentPAF.Empresa.CNPJ;
    
        RegistroN1.IE          := fsH.ACBrAAC1.IdentPAF.Empresa.IE;
    
        RegistroN1.IM          := fsH.ACBrAAC1.IdentPAF.Empresa.IM;
    
        RegistroN2.NOME        := fsH.ACBrAAC1.IdentPAF.Paf.Nome;
    
        RegistroN2.VERSAO      := fsH.ACBrAAC1.IdentPAF.Paf.Versao;
    
        RegistroN2.LAUDO       := fsH.ACBrAAC1.IdentPAF.NumeroLaudo;
    
        end;
    
      with fsH.ACBrAAC1.IdentPAF.ArquivoListaAutenticados do
    
        begin
    
        Nome := 'ListaMD5.txt';
    
        MD5  := fsH.ACBrEAD1.MD5FromFile('c:\infobrasil\infopdv\exec\listamd5.txt');
    
        end;
    
      fsH.ACBrPAF1.Path :='C:\INFOBRASIL\INFOPDV\EXEC\';
    
      fsH.ACBrPAF1.SaveFileTXT_N('PAF_LISTAMD5.TXT');
    
      fsH.ACBrAAC1.SalvarArquivo;
    
    

    pq as dlls de impressora fiscal que tem mais 13 letras gera o md5 ( todo com 0 ). notei que gera exception.

  3. TENHO ESSAs PROCEDUREs

    CREATE OR ALTER PROCEDURE SET_CONTEXTO (

    ib_chave integer)

    as

    BEGIN

    RDB$SET_CONTEXT('USER_SESSION', 'IB_KEY', :IB_CHAVE);

    END

    CREATE OR ALTER PROCEDURE VENDAS_CALC_HASH (

    loj_codigo integer,

    ven_numero integer)

    returns (

    ven_hash bigint)

    as

    begin

    select hash( RDB$GET_CONTEXT('USER_SESSION', 'IB_KEY' )

    ||loj_codigo

    ||ven_coo

    ||ven_ccf

    ||ven_totalbruto

    ||ven_totaldesc

    ||ven_totalcanc

    ||ven_percdesc

    ||ven_totalliquido

    ||ven_quant

    ||ven_totalacresc

    )

    from

    vendas ven

    where ven.loj_codigo = :loj_codigo and

    ven_numero = :ven_numero

    into

    :ven_hash ;

    suspend;

    end

    e tambem essa trigger

    CREATE OR ALTER PROCEDURE VENDAS_CALC_HASH (

    loj_codigo integer,

    ven_numero integer)

    returns (

    ven_hash bigint)

    as

    begin

    select hash( RDB$GET_CONTEXT('USER_SESSION', 'IB_KEY' )

    ||loj_codigo

    ||ven_coo

    ||ven_ccf

    ||ven_totalbruto

    ||ven_totaldesc

    ||ven_totalcanc

    ||ven_percdesc

    ||ven_totalliquido

    ||ven_quant

    ||ven_totalacresc

    )

    from

    vendas ven

    where ven.loj_codigo = :loj_codigo and

    ven_numero = :ven_numero

    into

    :ven_hash ;

    suspend;

    end

    entao executa essa procedure via delphi, EXECUTE PROCEDURE SET_CONTEXTO(1010)

    e não gera o hash no firebird, o q estou fazendo de errado. obg. nilson brasil

×
×
  • Criar Novo...

Informação Importante

Colocamos cookies em seu dispositivo para ajudar a tornar este site melhor. Você pode ajustar suas configurações de cookies, caso contrário, assumiremos que você está bem para continuar.