Página 1 de 1

hbmemio

Enviado: 23 Set 2009 08:45
por Itamar M. Lins Jr.
Ola!
Para quem está precisando de mais velocidade na criação de dbf's temporários.
Esses arquivos são criados na RAM. Diferente dos criados com dbCreateTemp().
É uma saída para armazenar as query's em SQL por exemplo.

Código: Selecionar todos

  REQUEST HB_IODMEM

      PROC main()
        LOCAL nI
        FIELD F1

        DBCREATE("mem:test", {{"F1", "N", 9, 0}},, .T., "memarea")
        FOR nI := 1 TO 1000
          DBAPPEND();  F1 := HB_RANDOM() * 1000000
        NEXT
        INDEX ON F1 TAG f1
        DBEVAL({|| QOUT(F1)})
        DBCLOSEAREA()
        DBDROP("mem:test")  // Free memory resource
      RETURN
Saudações,
Itamar M. Lins Jr.

Re: hbmemio

Enviado: 06 Out 2009 14:32
por sygecom
Parece que colocaram no xHarbour, isso é bom para todos.

Re: hbmemio

Enviado: 07 Out 2009 12:21
por marcos.gurupi
Esse eh um novo recurso no xhb ? Qual a versao ?

Marcos Roberto.

Re: hbmemio

Enviado: 08 Out 2009 14:51
por sygecom
Isso é um novo recurso sim, e está disponível apenas na versão do xharbour da CVS ou do SVN do Harbour.

Re: hbmemio

Enviado: 08 Out 2009 23:08
por marcos.gurupi
Seria abusar se vc descreve-se para q serve esse novo recurso.

Obrigado.

Marcos Roberto

Re: hbmemio

Enviado: 14 Out 2009 15:35
por TerraSoftware
pelo que eu entendi é uma funcao pra criar arquivos dbf´s temporarios na memoria, visto que estes arquivos nao seram gravados fisicamente no hd, eles sao mais rapidos.

Se eu estiver errado, favor corrigir.

Re: hbmemio

Enviado: 14 Out 2009 15:53
por Maligno
Tudo em memória, como no Firebird, imagino.

Re: hbmemio

Enviado: 14 Out 2009 18:22
por marcos.gurupi
Kra entaum isso nao eh um recurso eh "O RECURSO" teria q ser implementado no xharbour logo, logo.

Marcos Roberto.

Re: hbmemio

Enviado: 14 Out 2009 19:52
por asimoes
Marcos,
marcos.gurupi escreveu:Kra entaum isso nao eh um recurso eh "O RECURSO" teria q ser implementado no xharbour logo, logo.
Já está implementado somente CVS.

2009-10-05 16:40 UTC+0100 Miguel Angel Marchuet <miguelangel@marchuet.net>
* makefile.bc
* mdir.bat
* common.mak
* compile.mak
* contrib\Makefile
+ contrib\filemem\filemem.c
+ contrib\filemem\makefile
+ contrib\filemem\tests\test.prg
+ Added memory file subsytem developed by Mindaugas Kavaliauskas for harbour.
the files with prefix "mem:" in his named will be opened and created in memory
if filemem.lib is added and REQUEST HB_MEMIO.



Fiz o teste com programa que vem na contrib, é rápido, muito rápido. é o seguinte:
Levou 4 segundos na minha máquina para fazer o append de 1.000.000 de registros com indexação

Código: Selecionar todos

REQUEST HB_MEMIO

PROC Main()
   LOCAL nI
   FIELD F1

   DBCREATE("mem:test", {{"F1", "N", 9, 0}},, .T., "memarea")
   cls
   ? time()
   FOR nI := 1 TO 1000000
     DBAPPEND();  F1 := HB_RANDOM() * 1000000
   NEXT
   INDEX ON F1 TAG f1
   ? time() // =4 segundos
   inkey(0)
   DBEVAL({|| QOUT(F1)})
   DBCLOSEAREA()
   DBDROP("mem:test")  // Free memory resource

   RETURN

[]´s

Re: hbmemio

Enviado: 15 Out 2009 04:55
por marcos.gurupi
Perfeito! Considerando as outras migracoes de vensao do xhb vou esperar mais um pouco, atualmente estou usando a ver. 1.0 e quando usava a ver. 0.99.50 e posteriormente 0.99.70, tive varios problemas para migrar para 1.0 entaum vou aguardar mais um pouco para migrar de 1.0 para 1.2. Obrigado pela resposta.

Marcos Roberto

Re: hbmemio

Enviado: 02 Nov 2009 19:58
por sygecom
Olá Marcos,
Uma boa pratica é vir trazendo seu sistema compatível com sua versão estável e com uma versão que vai usar mais adiante, claro que isso exige um certo trabalho no começo, mas depois que pega a pratica acaba virando automático, eu tenho sistema pequeno que serve para testar todas as minhas necessidades de sistema, ou seja tenho um pouco de cada que tenho em todo o meu sistema e venho deixando meu sistema sempre compatível com ambas versão do xharbour e inclusive com Harbour que no momento é o que tenho mais usado. Pode fazer isso tudo com diretiva: #IfnDef __XHARBOUR__ e por ai vai...É apenas uma idéia.

Re: hbmemio

Enviado: 23 Nov 2009 19:02
por lugab
Meu sistema usa muito a criação de arqv.temporário.

Pena que eu uso o xharbour 1.0.0 e tenho receio de migrar pro mais novo, diante de tantos problemas relatados aqui no fórum !!!

Re: hbmemio

Enviado: 25 Nov 2009 19:35
por sygecom
Que tantos problemas ? As vez o pessoal nem testa direito e condenando, tem que testar ver, analisar, depois que compila com Harbour + MSVC nunca mais larga essa dupla. Alias nunca mais não, eu tive que largar em alguns aplicativos meus por causa do SQLRDD, mas por que não tive opção.