Tamanho máximo do DBF e Informações LETODB
Moderador: Moderadores
-
Hasse
- Usuário Nível 4

- Mensagens: 820
- Registrado em: 19 Out 2004 10:30
- Localização: Jaraguá do Sul - SC
Re: Tamanho máximo do DBF.
OK.
Leonardo:
Vou fazer os testes conforme instruções.
Itamar:
O arquivo "letodb.ini" já está configurado.
Leonardo:
Vou fazer os testes conforme instruções.
Itamar:
O arquivo "letodb.ini" já está configurado.
Hasse
CP200 / CP500 / Basic / dBase III / dBase IV / Clipper Summer / RTlink / Exospace.
Clipper 5.3b / Blinker 7.0 / CDX com TAG
xHarbour 1.2.1-6604 / Borland C++ (5.5.1) 32 bit / HBmake.
Harbour 3.2.0dev (r1412121623) / MINGW / HBM2 / MiniGui HMG 3.1.4 / IDE (Roberto Lopez).
"Conheça todas as teorias, domine todas as técnicas, mas, quando tocares uma alma humana, seja apenas outra alma humana." (C.G.Jung)
CP200 / CP500 / Basic / dBase III / dBase IV / Clipper Summer / RTlink / Exospace.
Clipper 5.3b / Blinker 7.0 / CDX com TAG
xHarbour 1.2.1-6604 / Borland C++ (5.5.1) 32 bit / HBmake.
Harbour 3.2.0dev (r1412121623) / MINGW / HBM2 / MiniGui HMG 3.1.4 / IDE (Roberto Lopez).
"Conheça todas as teorias, domine todas as técnicas, mas, quando tocares uma alma humana, seja apenas outra alma humana." (C.G.Jung)
-
Hasse
- Usuário Nível 4

- Mensagens: 820
- Registrado em: 19 Out 2004 10:30
- Localização: Jaraguá do Sul - SC
Re: Tamanho máximo do DBF.
Olá.
Conexão estabelecida:
)
Leto_File() funcionando;
FILE() funcionando;
DbUseArea() funcionando;
USE funcionando.
Coisa simples que estava faltando ( "as lamparinas ainda estão acendendo... mal chegou na penumbra..." )
Valeu mesmo, amigos. Eu sempre afirmo, este é o melhor Fórum que conheço.
Pergunta-1: o arquivo "LetoDb.ini" precisa estar só no Servidor, correto ?
No meu caso, o Path:
DataPath = D:/clipper/datafio/
Está correto ?
Pergunta-2: Quando houverem 2 partições compartilhadas. Como o LetoDb vai direcionar para o correto ? Isto seria feito no "DataPath = D:/clipper/datafio/" ?
Conexão estabelecida:
Leto_File() funcionando;
FILE() funcionando;
DbUseArea() funcionando;
USE funcionando.
Coisa simples que estava faltando ( "as lamparinas ainda estão acendendo... mal chegou na penumbra..." )
Código: Selecionar todos
REQUEST DBFCDX
RDDSETDEFAULT( "DBFCDX" )
DBSETDRIVER( "DBFCDX" )Pergunta-1: o arquivo "LetoDb.ini" precisa estar só no Servidor, correto ?
No meu caso, o Path:
DataPath = D:/clipper/datafio/
Está correto ?
Pergunta-2: Quando houverem 2 partições compartilhadas. Como o LetoDb vai direcionar para o correto ? Isto seria feito no "DataPath = D:/clipper/datafio/" ?
Hasse
CP200 / CP500 / Basic / dBase III / dBase IV / Clipper Summer / RTlink / Exospace.
Clipper 5.3b / Blinker 7.0 / CDX com TAG
xHarbour 1.2.1-6604 / Borland C++ (5.5.1) 32 bit / HBmake.
Harbour 3.2.0dev (r1412121623) / MINGW / HBM2 / MiniGui HMG 3.1.4 / IDE (Roberto Lopez).
"Conheça todas as teorias, domine todas as técnicas, mas, quando tocares uma alma humana, seja apenas outra alma humana." (C.G.Jung)
CP200 / CP500 / Basic / dBase III / dBase IV / Clipper Summer / RTlink / Exospace.
Clipper 5.3b / Blinker 7.0 / CDX com TAG
xHarbour 1.2.1-6604 / Borland C++ (5.5.1) 32 bit / HBmake.
Harbour 3.2.0dev (r1412121623) / MINGW / HBM2 / MiniGui HMG 3.1.4 / IDE (Roberto Lopez).
"Conheça todas as teorias, domine todas as técnicas, mas, quando tocares uma alma humana, seja apenas outra alma humana." (C.G.Jung)
- sygecom
- Administrador

- Mensagens: 7131
- Registrado em: 21 Jul 2006 10:12
- Localização: Alvorada-RS
- Contato:
Re: Tamanho máximo do DBF.
Olá Hasse,
1º-Seria definir duas porta diferentes para cada Letodb.ini no servidor, ou seja você terá dois modulos de server rodando no lado servidor e no letodb.ini você defini um com Port = 2812 e outro com Port = 2813.
2º-Seria ter uma pasta monitorada e definida no letodb.ini em DataPath = e dentro dessa pasta você tem as duas pasta que serão monitoradas, claro que para isso você terá que usar no seus sistemas o direcionamento da pasta definida em DataPath= em diante.
Isso mesmo , apenas no lado servidor.Hasse escreveu: Pergunta-1: o arquivo "LetoDb.ini" precisa estar só no Servidor, correto ?
Correto.No meu caso, o Path:
DataPath = D:/clipper/datafio/
Está correto ?
Bom, na pratica não testei, mas teoricamente falando você tem dua saidas.Pergunta-2: Quando houverem 2 partições compartilhadas. Como o LetoDb vai direcionar para o correto ? Isto seria feito no "DataPath = D:/clipper/datafio/" ?
1º-Seria definir duas porta diferentes para cada Letodb.ini no servidor, ou seja você terá dois modulos de server rodando no lado servidor e no letodb.ini você defini um com Port = 2812 e outro com Port = 2813.
2º-Seria ter uma pasta monitorada e definida no letodb.ini em DataPath = e dentro dessa pasta você tem as duas pasta que serão monitoradas, claro que para isso você terá que usar no seus sistemas o direcionamento da pasta definida em DataPath= em diante.
Leonardo Machado
xHarbour.org + Hwgui + PostgreSql
xHarbour.org + Hwgui + PostgreSql
Re: Tamanho máximo do DBF.
Olá Amigos,
Só para deixar registrado tenho um DBF com 7.200.000 e 800 megas com 2 indices CDX.
Abre e reindexa que nem uma pena.
Xharbour 1.2.0 Linux.
Só para deixar registrado tenho um DBF com 7.200.000 e 800 megas com 2 indices CDX.
Abre e reindexa que nem uma pena.
Xharbour 1.2.0 Linux.
-
Hasse
- Usuário Nível 4

- Mensagens: 820
- Registrado em: 19 Out 2004 10:30
- Localização: Jaraguá do Sul - SC
Re: Tamanho máximo do DBF.
Olá.
Sygecom: A tua sugestão funcionou perfeitamente. Veja o código que usei:
Mais perguntas:
1-No mesmo executável, preciso acessar arquivos remotos (via LetoDB) e também arquivos no HD local. Como proceder ?
2-No caso das funções Leto_BeginTransaction(), Leto_RollBack(), Leto_CommitTransaction(): Imagino que sejam de uso opcional ? É que eu tentei gravar dados sem eles e funcionou.
3-Se usada a Leto_BeginTransaction(), dados enviados via função PutFile(), estes dados ficariam aguardando no Buffer até receber a Leto_CommitTransaction() ?
4-Se a Leto_RollBack() for usada antes do CommitTransaction() os dados do Buffer seriam zerados e nenhum dados gravado no HD ?
5-Como ficam estes dados, se antes do Leto_CommitTransaction(), a conexão fosse perdida por algum motivo fora do nosso controle ? Os dados são gravados ?
Em tempo: Acredito que conseguimos fazer uma baita salada de assuntos neste tópico. Não seria uma boa idéia separar os assuntos em 2 tópicos ?
Sygecom: A tua sugestão funcionou perfeitamente. Veja o código que usei:
Código: Selecionar todos
Function Main()
LOCAL cServerIP1 := '//10.0.0.3:2812'
LOCAL cServerIP2 := '//10.0.0.3:2813'
LOCAL cPath1 := '/clipper/datafio/'
LOCAL cPath2 := '/clipper/datafio/safe/'
LOCAL cFile1 := 'Cadastro'
LOCAL cFile2 := 'Safe'
REQUEST LETO
RDDSETDEFAULT( "LETO" )
REQUEST DBFCDX
RDDSETDEFAULT( "DBFCDX" )
DBSETDRIVER( "DBFCDX" )
Clear
IF ( leto_Connect( cServerIP1 ) ) == -1
? 'NÆo h conexÆo com o Servidor:=' + cServerIP1
Return .F.
ELSE
? 'ConexÆo estabelecida com o Servidor:=' + cServerIP1
ENDIF
Inkey( 0.1 )
?
cArq1 := cPath1 + cFile1
DBUseArea( .T., 'DBFCDX', cArq1, cFile1 , .F. )
? dbf()
Inkey( 0.1 )
?
IF ( leto_Connect( cServerIP2 ) ) == -1
? 'NÆo h conexÆo com o Servidor:=' + cServerIP2
Return .F.
ELSE
? 'ConexÆo estabelecida com o Servidor:=' + cServerIP2
ENDIF
Inkey( 0.1 )
?
cArq2 := cPath2 + cFile2
DBUseArea( .T., 'DBFCDX', cArq2, cFile2, .F. )
? dbf()
Inkey( 0.1 )
?
DbSelectAr( cFile1 )
? dbf()
?
DbSelectAr( cFile2 )
? dbf()
?
? "Encerrando a conexÆo atual...."
Leto_Disconnect()
Inkey( 0.1 )
*
Return( nil )1-No mesmo executável, preciso acessar arquivos remotos (via LetoDB) e também arquivos no HD local. Como proceder ?
2-No caso das funções Leto_BeginTransaction(), Leto_RollBack(), Leto_CommitTransaction(): Imagino que sejam de uso opcional ? É que eu tentei gravar dados sem eles e funcionou.
3-Se usada a Leto_BeginTransaction(), dados enviados via função PutFile(), estes dados ficariam aguardando no Buffer até receber a Leto_CommitTransaction() ?
4-Se a Leto_RollBack() for usada antes do CommitTransaction() os dados do Buffer seriam zerados e nenhum dados gravado no HD ?
5-Como ficam estes dados, se antes do Leto_CommitTransaction(), a conexão fosse perdida por algum motivo fora do nosso controle ? Os dados são gravados ?
Em tempo: Acredito que conseguimos fazer uma baita salada de assuntos neste tópico. Não seria uma boa idéia separar os assuntos em 2 tópicos ?
Hasse
CP200 / CP500 / Basic / dBase III / dBase IV / Clipper Summer / RTlink / Exospace.
Clipper 5.3b / Blinker 7.0 / CDX com TAG
xHarbour 1.2.1-6604 / Borland C++ (5.5.1) 32 bit / HBmake.
Harbour 3.2.0dev (r1412121623) / MINGW / HBM2 / MiniGui HMG 3.1.4 / IDE (Roberto Lopez).
"Conheça todas as teorias, domine todas as técnicas, mas, quando tocares uma alma humana, seja apenas outra alma humana." (C.G.Jung)
CP200 / CP500 / Basic / dBase III / dBase IV / Clipper Summer / RTlink / Exospace.
Clipper 5.3b / Blinker 7.0 / CDX com TAG
xHarbour 1.2.1-6604 / Borland C++ (5.5.1) 32 bit / HBmake.
Harbour 3.2.0dev (r1412121623) / MINGW / HBM2 / MiniGui HMG 3.1.4 / IDE (Roberto Lopez).
"Conheça todas as teorias, domine todas as técnicas, mas, quando tocares uma alma humana, seja apenas outra alma humana." (C.G.Jung)
- Itamar M. Lins Jr.
- Administrador

- Mensagens: 7928
- Registrado em: 30 Mai 2007 11:31
- Localização: Ilheus Bahia
- Curtiu: 1 vez
Re: Tamanho máximo do DBF.
Ola!
1a. Questão.
É só setar no comando dbusearea. Por exemplo, DbUseArea(.t.,'DBFCDX','c:\dados\estoq.dbf','eq',.f.)
Lembrando que se for via DBFCDX não pode ser acessado simultaneamente via LETO.
2a)É opcional
3a)Só testando.
4a)Creio que não.
5a)Só testando uma vez que é opcional.
Código: Selecionar todos
Não precisa destas linhas.
REQUEST DBFCDX
RDDSETDEFAULT( "DBFCDX" )
DBSETDRIVER( "DBFCDX" )
E essa deve ser assim:
DBUseArea( .T., 'LETO', cArq1, cFile1 , .F. ) //Não 'DBFCDX'
É só setar no comando dbusearea. Por exemplo, DbUseArea(.t.,'DBFCDX','c:\dados\estoq.dbf','eq',.f.)
Lembrando que se for via DBFCDX não pode ser acessado simultaneamente via LETO.
2a)É opcional
3a)Só testando.
4a)Creio que não.
5a)Só testando uma vez que é opcional.
Saudações,
Itamar M. Lins Jr.
Itamar M. Lins Jr.
Re: Tamanho máximo do DBF.
Sendo remoto: (não esquecer de liberar a porta 2813 no roteador/modem) Eu uso o dyndns (www.dyndns.com) para acesso remoto.1-No mesmo executável, preciso acessar arquivos remotos (via LetoDB) e também arquivos no HD local. Como proceder ?
Código: Selecionar todos
//Acesso Remoto:
cServer1:='//xxxx.dyndns.org:2813/'
//Acesso local:
cServer2:='//192.168.0.1:2812/' ou
cServer2:='//localhost:2812/'
lRemoto:=.T.
lLocal :=.T.
//-------------------------------------------------------------------
IF leto_Connect( cServer1 ) == -1
Alert( "Não consegui acessar o servidor remoto..." )
lRemoto:=.F.
ENDIF
IF leto_Connect( cServer2 ) == -1
Alert( "Não consegui acessar o servidor local..." )
lLocal:=.F.
ENDIF
if lRemoto
DBUseArea(.T.,,cServer1+'MAINFILE','MAINFILE',.T.)
SET INDEX TO (cServer1 + "MAINCDX")
endif
if lLocal
DBUseArea(.T.,,cServer2+'TELEPHON','TELEPHON',.T.)
SET INDEX TO (cServer2 + "TELECDX")
endif ►Harbour 3.x | Minigui xx-x | HwGui◄
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
- sygecom
- Administrador

- Mensagens: 7131
- Registrado em: 21 Jul 2006 10:12
- Localização: Alvorada-RS
- Contato:
Re: Tamanho máximo do DBF.
Olá Hasse,
Ficaria Assim:Hasse escreveu: 1-No mesmo executável, preciso acessar arquivos remotos (via LetoDB) e também arquivos no HD local. Como proceder ?
Código: Selecionar todos
Function main()
REQUEST LETO
REQUEST DBFCDX
RDDSETDEFAULT( "LETO" ) // tudo que abrir como padrão sem informar o driver vai ser pelo LETODB
DBSETDRIVER( "LETO" )
DBSELECTAREA(0) // SELECIONA A PROXIMA AREA LIVRE
DBUseArea(.T.,,cServer1+'MAINFILE','MAINFILE',.T.) // vai abrir pelo banco padrão, nesse caso usando o LETODB
DBSELECTAREA(0) // SELECIONA A PROXIMA AREA LIVRE
DBUseArea(.T.,"DBFCDX",'MAINFILE','MAINFILE',.T.) // vai abrir pelo banco LOCAL
...
...
...
Return
Sim, são opcionais, mas é um recurso deveras importante e muito bom que hoje só tem em bancos de dados Relacionais.2-No caso das funções Leto_BeginTransaction(), Leto_RollBack(), Leto_CommitTransaction(): Imagino que sejam de uso opcional ? É que eu tentei gravar dados sem eles e funcionou.
Isso mesmo, ou se você der um Leto_RollBack() ele desfaz o que foi feito até o inicio da transação.3-Se usada a Leto_BeginTransaction(), dados enviados via função PutFile(), estes dados ficariam aguardando no Buffer até receber a Leto_CommitTransaction() ?
Na verdade quando você inicia uma transação(Leto_BeginTransaction()) ele só registra no banco de dados, depois que você der um Leto_CommitTransaction(), se nesse meio tempo der algum erro ou você em vez de mandar o Leto_CommitTransaction() mandar um Leto_RollBack(), ele não envia ou desfaz o que foi feito apartir do ponto que iniciou a transação.4-Se a Leto_RollBack() for usada antes do CommitTransaction() os dados do Buffer seriam zerados e nenhum dados gravado no HD ?
Sempre que você inicia um transação( Leto_BeginTransaction()) o letodb guarda essas supostas gravações no buffer local e somente commita(grava) no banco de dados(.dbf) depois que você der um Leto_CommitTransaction().5-Como ficam estes dados, se antes do Leto_CommitTransaction(), a conexão fosse perdida por algum motivo fora do nosso controle ? Os dados são gravados ?
Bom, acho que está bem mais relacionado a LETODB do que a tamanho de DBF, vou apenas adicionar o LETODB ao nome do topico.Em tempo: Acredito que conseguimos fazer uma baita salada de assuntos neste tópico. Não seria uma boa idéia separar os assuntos em 2 tópicos ?
Leonardo Machado
xHarbour.org + Hwgui + PostgreSql
xHarbour.org + Hwgui + PostgreSql
-
Hasse
- Usuário Nível 4

- Mensagens: 820
- Registrado em: 19 Out 2004 10:30
- Localização: Jaraguá do Sul - SC
Re: Tamanho máximo do DBF.
Valeu Leonardo e Asimoes.
As explicações são muito importantes e deixaram o assunto bem claro.
Obrigado.
Concordo que o tópico pode ter seu assunto alterado.
As explicações são muito importantes e deixaram o assunto bem claro.
Obrigado.
Concordo que o tópico pode ter seu assunto alterado.
Hasse
CP200 / CP500 / Basic / dBase III / dBase IV / Clipper Summer / RTlink / Exospace.
Clipper 5.3b / Blinker 7.0 / CDX com TAG
xHarbour 1.2.1-6604 / Borland C++ (5.5.1) 32 bit / HBmake.
Harbour 3.2.0dev (r1412121623) / MINGW / HBM2 / MiniGui HMG 3.1.4 / IDE (Roberto Lopez).
"Conheça todas as teorias, domine todas as técnicas, mas, quando tocares uma alma humana, seja apenas outra alma humana." (C.G.Jung)
CP200 / CP500 / Basic / dBase III / dBase IV / Clipper Summer / RTlink / Exospace.
Clipper 5.3b / Blinker 7.0 / CDX com TAG
xHarbour 1.2.1-6604 / Borland C++ (5.5.1) 32 bit / HBmake.
Harbour 3.2.0dev (r1412121623) / MINGW / HBM2 / MiniGui HMG 3.1.4 / IDE (Roberto Lopez).
"Conheça todas as teorias, domine todas as técnicas, mas, quando tocares uma alma humana, seja apenas outra alma humana." (C.G.Jung)

