Ir ao conteúdo
  • Cadastre-se

TixaB

Membro Júnior
  • Posts

    2
  • Cadastrado em

  • Última visita

posts postados por TixaB

  1. Fiz um sistema no Delphi XE8, que utiliza o ClientDataSet. No meu computador roda Ok. 
    Quando instalo em outro computador, da o seguinte erro:


    Access violation at address 0080635B in module 'AutomacaoC.exe'. Read of address 00000000, 
    quando executa o seguinte comando:

      

    cdsForm.CreateDataSet;
      
    cdsForm.EmptyDataSet;
      
    cdsForm.Open;

    Alguem pode me ajudar?

  2. Tenho duas tabelas em DBF. TDados e TItens.

    TDados tem +/- 120.000 itens

    TItens tem +/- 300.000 itens

    Fiz a conversão (rotina propria) DBF para FDB.

    a Tabela TItens esta relacionada a Tabela TDados.

    no Clipper abria as duas tabelas bem rápido, no

    Firebird esta demorando bastante (bem mais demorado que no

    DBF).

     

    Ex.:


      // firebird - esta rotina demora bastante.

     with DMArq do
          begin
             zqTrans.SQL.Clear;
             zqTrans.SQL.Add('Select MAX(PedNum) as ULTIMO From Dados');
              zqTrans.Open;                                                                               // aqui demora bastante................
             sCodigo := zqTrans.FieldByName('Ultimo').asString;
                   try
                      sCodigo := FormatFloat('000000000000000', StrToFloat(sCodigo) + 1);
                   except
                      sCodigo := '1';
                   end;
          end;


       // dbf - esta rotina é bem rapida
      with DMArqSce.qItemCod do
          begin
             Close;
             DataBaseName := Drive_IniR + '\Sistema\Estoque\' + Nr_Ite;
             Sql.Clear;
             Sql.Add('Select PedNum from TDados order by PedNum');


             Open;
             Last;
         
             sCod := FieldByName('IteCod').asString;
             sCod := Copy(FormatFloat('0000000000', StF(sCod)), 1, 8);
             cCod := StrToFloat(sCod);
             OCpf := IntToStr(Trunc(ccod) + 1);
            CodBar := FormatFloat('00000000', cCod + 1);
            ocpf := IntToStr(StrToInt(Calc_dig(OCpf)));


            result := oCpf; // qItemCod.FieldByName('IteCod').asString;


             Close;
          end;

    Assim todas as consultas (abrindo toda a tabela - Open) como filtros, no firebird, são bem mais demorados que no DBF.

    Isto é normal?

    o Firebird não deveria ser mais rápido que o DBF?

    o que eu posso fazer para melhorar o Desempenho?

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

Ebook grátis: Aprenda a ler resistores e capacitores!

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!