Jump to content
Fivewin Brasil

Dbf e Cdx em Memória


vagner

Recommended Posts

Olá Pessoal icon_smile_big.gif

Bo, eu estava procurando algo para agilizar meus arquivos temporários, pois havia demora na montagem dos dbf e cdx, sabia que em harbour havia uma função, porém não tinha encontrado nada em xharbour, aí andei dando uma fuçada e encontrei icon_smile_big.gif, bom desde a 808 , não sei nas anteriores icon_smile_wink.gif

Na nova versão do xHarbour já existe uma função é a Hb_DbCreateTemp(), não declarada icon_smile_wink.gif


DbCreate("Mem:test", aTemp,, .T., "FluxoTempo") -> Usado sem a nova versão do xHarbour

Hb_DbCreateTemp("FluxoTempo", aTemp) -> Usado com a Nova Versão do xHarbour

DBDROP("Mem:test") // Free memory resource -> Usado sem a nova versão do xHarbour

Pode ser criado índices em memória tb :D

id=red>

id=code>

id=code>


aTemp := {}

AaDd(aTemp,{"Tip_Docu","C", 2,0})

AaDd(aTemp,{"Tip_Doc2","C", 1,0})

AaDd(aTemp,{"Num_Titu","C", 7,0})

AaDd(aTemp,{"Dta_Docu","D", 8,0})

AaDd(aTemp,{"Dta_Venc","D", 8,0})

AaDd(aTemp,{"Dta_Flux","D", 8,0})

AaDd(aTemp,{"Vlr_Flux","N",13,2})

AaDd(aTemp,{"Dta_Pgto","D", 8,0})

AaDd(aTemp,{"Vlr_Pgto","N",13,2})

AaDd(aTemp,{"Num_Docu","C",50,0})

AaDd(aTemp,{"Oficial_","L", 1,0})

AaDd(aTemp,{"Cod_Clie","C", 4,0})

AaDd(aTemp,{"Nom_Clie","C",40,0})

AaDd(aTemp,{"Cod_Stat","C",40,0})

id=code>id=code>


Hb_DbCreateTemp("FluxoTempo", aTemp)

Appen From "SeuArquivoDbfNormal"

Inde On Tip_Doc2+Num_Titu Tag "01" To ("Teste") Memory

Inde On Tip_Doc2+DtoS(Dta_Docu)+Num_Titu Tag "02" To ("Teste") Memory Additive

Inde On Tip_Doc2+Cod_Clie+Num_Titu Tag "03" To ("Teste") Memory Additive

Inde On Tip_Doc2+Nom_Clie+Num_Titu Tag "04" To ("Teste") Memory Additive

Inde On Tip_Doc2+DtoS(Dta_Venc) + Num_Titu Tag "05" To ("Teste") Memory Additive

Inde On Tip_Doc2+DtoS(Dta_Flux) + Num_Titu Tag "06" To ("Teste") Memory Additive

Inde On Tip_Doc2+StrZero(Vlr_Flux,13,2) Tag "07" To ("Teste") Memory Additive

Inde On Tip_Doc2+DtoS(Dta_Pgto) + Num_Titu Tag "08" To ("Teste") Memory Additive

Inde On Tip_Doc2+StrZero(Vlr_Pgto,13,2) Tag "09" To ("Teste") Memory Additive

id=code>id=code>

Quais as vantagens que eu ví, muito mais rápido a montagem, pode se dar um seek, appen, delete, skip, normalmente como um dbf qualquer, inclusive depois pode se dar um copy to outro dbf icon_smile_wink.gif

Aqueles que trabalhando com array (assim como eu, pois não querem ficar montando temporário para tudo) é uma boa solução icon_smile_wink.gif

Vagner Wirts

"Ele não sabendo que era impossível, foi lá e fez"

P.S.: Quem puder testar e reportar se melhorou ou não, fico grato

Link to comment
Share on other sites

Olá Pessoal icon_smile_big.gif

Bo, eu estava procurando algo para agilizar meus arquivos temporários, pois havia demora na montagem dos dbf e cdx, sabia que em harbour havia uma função, porém não tinha encontrado nada em xharbour, aí andei dando uma fuçada e encontrei icon_smile_big.gif, bom desde a 808 , não sei nas anteriores icon_smile_wink.gif

Na nova versão do xHarbour já existe uma função é a Hb_DbCreateTemp(), não declarada icon_smile_wink.gif


DbCreate("Mem:test", aTemp,, .T., "FluxoTempo") -> Usado sem a nova versão do xHarbour

Hb_DbCreateTemp("FluxoTempo", aTemp) -> Usado com a Nova Versão do xHarbour

DBDROP("Mem:test") // Free memory resource -> Usado sem a nova versão do xHarbour

Pode ser criado índices em memória tb :D

id=red>

id=code>

id=code>


aTemp := {}

AaDd(aTemp,{"Tip_Docu","C", 2,0})

AaDd(aTemp,{"Tip_Doc2","C", 1,0})

AaDd(aTemp,{"Num_Titu","C", 7,0})

AaDd(aTemp,{"Dta_Docu","D", 8,0})

AaDd(aTemp,{"Dta_Venc","D", 8,0})

AaDd(aTemp,{"Dta_Flux","D", 8,0})

AaDd(aTemp,{"Vlr_Flux","N",13,2})

AaDd(aTemp,{"Dta_Pgto","D", 8,0})

AaDd(aTemp,{"Vlr_Pgto","N",13,2})

AaDd(aTemp,{"Num_Docu","C",50,0})

AaDd(aTemp,{"Oficial_","L", 1,0})

AaDd(aTemp,{"Cod_Clie","C", 4,0})

AaDd(aTemp,{"Nom_Clie","C",40,0})

AaDd(aTemp,{"Cod_Stat","C",40,0})

id=code>id=code>


Hb_DbCreateTemp("FluxoTempo", aTemp)

Appen From "SeuArquivoDbfNormal"

Inde On Tip_Doc2+Num_Titu Tag "01" To ("Teste") Memory

Inde On Tip_Doc2+DtoS(Dta_Docu)+Num_Titu Tag "02" To ("Teste") Memory Additive

Inde On Tip_Doc2+Cod_Clie+Num_Titu Tag "03" To ("Teste") Memory Additive

Inde On Tip_Doc2+Nom_Clie+Num_Titu Tag "04" To ("Teste") Memory Additive

Inde On Tip_Doc2+DtoS(Dta_Venc) + Num_Titu Tag "05" To ("Teste") Memory Additive

Inde On Tip_Doc2+DtoS(Dta_Flux) + Num_Titu Tag "06" To ("Teste") Memory Additive

Inde On Tip_Doc2+StrZero(Vlr_Flux,13,2) Tag "07" To ("Teste") Memory Additive

Inde On Tip_Doc2+DtoS(Dta_Pgto) + Num_Titu Tag "08" To ("Teste") Memory Additive

Inde On Tip_Doc2+StrZero(Vlr_Pgto,13,2) Tag "09" To ("Teste") Memory Additive

id=code>id=code>

Quais as vantagens que eu ví, muito mais rápido a montagem, pode se dar um seek, appen, delete, skip, normalmente como um dbf qualquer, inclusive depois pode se dar um copy to outro dbf icon_smile_wink.gif

Aqueles que trabalhando com array (assim como eu, pois não querem ficar montando temporário para tudo) é uma boa solução icon_smile_wink.gif

Vagner Wirts

"Ele não sabendo que era impossível, foi lá e fez"

P.S.: Quem puder testar e reportar se melhorou ou não, fico grato

Link to comment
Share on other sites

Faz algum tempo que existe o RDD ARRAYRDD, ou seja, é um DBF em memória, esse recurso também é usado como ponte para os SGDBs via RDD.

A cautela é para aqueles que usam um PC antigo, com uma vaga "lembrança" de memória, 32 MB x o volume a ser armazenado.

========================================

REQUEST ARRAYRDD

function main

...

dbCreate( "arrtest.dbf", aStruct, "ARRAYRDD" )

USE arrtest.dbf VIA "ARRAYRDD"

Virtualmente,

Eric Developer Systems

Freelance/Consultorias

www.magaldi.eti.br

Link to comment
Share on other sites

Olá Eric.

Pode até ser que tenha no Harbour, porém não encontrei no XHarbou, nem nas libs do xHarbour para poder fazer um teste icon_smile_big.gif

E como eu disse é em memória, então máquinas que tenham pouca memória nem com array é bom trabalhar icon_smile_big.gif

Vagner Wirts

"Ele não sabendo que era impossível, foi lá e fez"

VII Encontro está chegando icon_smile_big.gif, não perca icon_smile_big.gif

Link to comment
Share on other sites

Olá Vagner, esta tudo bem, vc esta meio que sumido aqui da comunidade, e como vai a família.

Abraços.

Beto

Msn: betovsp@hotmail.com

FWH 9.08+xHarbour 1.2.1+Mymake+@Say

"Ainda que nossos olhos não pudessem ver, nossos ouvidos não existissem, restaria o nosso pensamento para vermos, ouvirmos e falarmos com Deus."id=red>

Link to comment
Share on other sites

citação:

Olá Vagner, esta tudo bem, vc esta meio que sumido aqui da comunidade, e como vai a família.

Abraços.

Beto

Msn: betovsp@hotmail.com

FWH 9.08+xHarbour 1.2.1+Mymake+@Say

"Ainda que nossos olhos não pudessem ver, nossos ouvidos não existissem, restaria o nosso pensamento para vermos, ouvirmos e falarmos com Deus."id=red>


id=quote>id=quote>

Fala Beto,

Blz ?

Está tudo bem sim icon_smile_big.gif, ando sumido por causa de muito trabalho, mas ainda fico rico, ou morro tentando hehehehe

Vagner Wirts

"Ele não sabendo que era impossível, foi lá e fez"

VII Encontro está chegando icon_smile_big.gif, não perca icon_smile_big.gif

Link to comment
Share on other sites

Eric, o ARRAYRDD nao tem suporte a indices. Só se implementaram isso na ultima versao.

Alias, o recurso USRRDD é muito interessante. Eu mesmo ja utilizei ele para usar uma base BTrieve para integrar a um cliente meu, ficou muito bom. Para acessar a base BTrieve eu utilizo a mesma DLL que o sistema gerencial que ele tem, ficou perfeito, com criacao de indices, filtros, etc...

Abraço

citação:

Olá Eric.

Pode até ser que tenha no Harbour, porém não encontrei no XHarbou, nem nas libs do xHarbour para poder fazer um teste icon_smile_big.gif

E como eu disse é em memória, então máquinas que tenham pouca memória nem com array é bom trabalhar icon_smile_big.gif

Vagner Wirts

"Ele não sabendo que era impossível, foi lá e fez"

VII Encontro está chegando icon_smile_big.gif, não perca icon_smile_big.gif


id=quote>id=quote>

EMotta Sistemas

Eduardo Motta

emotta@gmail.com.br

FWH 9.09 - xHARBOUR 1.2.1

Link to comment
Share on other sites

citação:

citação:

Olá Vagner, esta tudo bem, vc esta meio que sumido aqui da comunidade, e como vai a família.

Abraços.

Beto

Msn: betovsp@hotmail.com

FWH 9.08+xHarbour 1.2.1+Mymake+@Say

"Ainda que nossos olhos não pudessem ver, nossos ouvidos não existissem, restaria o nosso pensamento para vermos, ouvirmos e falarmos com Deus."id=red>


id=quote>id=quote>

Fala Beto,

Blz ?

Está tudo bem sim icon_smile_big.gif, ando sumido por causa de muito trabalho, mas ainda fico rico, ou morro tentando hehehehe

Vagner Wirts

"Ele não sabendo que era impossível, foi lá e fez"

VII Encontro está chegando icon_smile_big.gif, não perca icon_smile_big.gif


id=quote>id=quote>

Quem trabalha muito não tem tempo pra ficar rico icon_smile_big.gif

Abraços...

Luiz Arruda-Corumba(MS)

ico.corumba@gmail.com

FiveWin Desde 2004id=blue>

[x]Harbour

xDev

WS

Não Abandone seu tópico

Retorne avisando se a dica funcionou

id=red>
Link to comment
Share on other sites

citação:

Quem trabalha muito não tem tempo pra ficar rico icon_smile_big.gif


id=quote>id=quote>

existem controvérsias icon_smile_big.gif

Alessandroid=blue>

FW20d+CL53b+Blk7+@Say+CDX

FW9.07+xHb121+PellesC+CDX

"Uma imaginação bem canalizada é fonte de grandes proezas"id=red>

Link to comment
Share on other sites

Comecei a utilizar esta funcao Hb_DbCreateTemp()em meus sistemas e fiquei maravilhado. Trabalhando com mysql juntamente com os Dbfs temporarios na memoria ficou muito bom mesmo !

Só um detalhe , antes do DBDROP(mem:test) deve-se primeiro fechar a area , senao a area fica aberta, o dbdrop() nao a

fecha . Entao o correto para eliminar o arquivo temporario seria:

test->(dbclosearea())

dbdrop(mem:test)

Valeu pela dica !

William

Xharbour 1.0 - Fwh - Sqlrdd , Mysql 5.0, PHP, WS , Timprime 4.0 , Display 2.0

Editado por - william on 18/06/2010 00:30:11

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...