LetoDBf (fork) -> LetoDb com espinafre
Moderador: Moderadores
- rubens
- Colaborador

- Mensagens: 1520
- Registrado em: 16 Ago 2003 09:05
- Localização: Nova Xavantina - MT
LetoDBf (fork) -> LetoDb com espinafre
Boa tarde..
Itamar, como seria então... ?
Obrigado
Itamar, como seria então... ?
Obrigado
"Eu e minha casa servimos ao Senhor e você
"
LetoDBf (fork) -> LetoDb com espinafre
Então o ruim é q 90% do meu sistema seja temporário ou não uso dessa forma...
Pra mim alterar tudo seria muito trabalho tento vista outros projetos.
Mas agradeço a todos.
Pra mim alterar tudo seria muito trabalho tento vista outros projetos.
Mas agradeço a todos.
Sun Tzu há mais de três mil anos cita nas epígrafes de seu livro “A Arte da Guerra“:
“Concentre-se nos pontos fortes, reconheça as fraquezas, agarre as oportunidades e proteja-se contra as ameaças”.
“Se não é vantajoso, nunca envie suas tropas; se não lhe rende ganhos, nunca utilize seus homens; se não é uma situação perigosa, nunca lute uma batalha precipitada”.
Até 2017 Desktop Console [ Legado ] Harbour | MinGW | DBF | CDX | FastReport | MySQL
Novos Projetos:
Desktop Visual Windev Desktop
Celular Android/iOS Windev Mobile
WEB Windev Web
Sejamos gratos a Deus.
“Concentre-se nos pontos fortes, reconheça as fraquezas, agarre as oportunidades e proteja-se contra as ameaças”.
“Se não é vantajoso, nunca envie suas tropas; se não lhe rende ganhos, nunca utilize seus homens; se não é uma situação perigosa, nunca lute uma batalha precipitada”.
Até 2017 Desktop Console [ Legado ] Harbour | MinGW | DBF | CDX | FastReport | MySQL
Novos Projetos:
Desktop Visual Windev Desktop
Celular Android/iOS Windev Mobile
WEB Windev Web
Sejamos gratos a Deus.
LetoDBf (fork) -> LetoDb com espinafre
Fladmir,
Um exemplo de como eu faço os indices temporários com LetoDbf
Um exemplo de como eu faço os indices temporários com LetoDbf
Código: Selecionar todos
cOrder := [ CODIGO ]
cQuery := [ ! Left( Classe_Pg, 2 ) $ "06,08,10,11,12" .AND. Empty( D_Faleci ) .AND. Empty( D_Deslig ) .AND. ! Deleted() ]
INDEX ON &cOrder. TAG A020100 FOR &cQuery. TEMPORARY ADDITIVE EVAL oClPF:Evento()
►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)
LetoDBf (fork) -> LetoDb com espinafre
Essa aqui foi meio fo.. de fazer por que é um filtro para um do while..enddo
Código: Selecionar todos
cVar1 := 'APC01->D_CL10 >= CTOD(' + ['] + DTOC( ThisForm:oDataIni:GetValue() ) + ['] + ') .AND. '
cVar2 := 'APC01->D_CL10 <= CTOD(' + ['] + DTOC( ThisForm:oDataFim:GetValue() ) + ['] + ') .AND. '
CVar3 := cVar1 + cVar2 + 'Left( APC01->Classe_Pg, 2 ) = "10"'
nRegistros := ::GravaTemp( CVar3 )
►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)
LetoDBf (fork) -> LetoDb com espinafre
Obrigado por compartilhar Alexandre.
Esse ultimo ai ta loco... eu tb qdo o negocio é complexo subdivido e vou juntando depois as partes A B C etc.
Esse ultimo ai ta loco... eu tb qdo o negocio é complexo subdivido e vou juntando depois as partes A B C etc.
Sun Tzu há mais de três mil anos cita nas epígrafes de seu livro “A Arte da Guerra“:
“Concentre-se nos pontos fortes, reconheça as fraquezas, agarre as oportunidades e proteja-se contra as ameaças”.
“Se não é vantajoso, nunca envie suas tropas; se não lhe rende ganhos, nunca utilize seus homens; se não é uma situação perigosa, nunca lute uma batalha precipitada”.
Até 2017 Desktop Console [ Legado ] Harbour | MinGW | DBF | CDX | FastReport | MySQL
Novos Projetos:
Desktop Visual Windev Desktop
Celular Android/iOS Windev Mobile
WEB Windev Web
Sejamos gratos a Deus.
“Concentre-se nos pontos fortes, reconheça as fraquezas, agarre as oportunidades e proteja-se contra as ameaças”.
“Se não é vantajoso, nunca envie suas tropas; se não lhe rende ganhos, nunca utilize seus homens; se não é uma situação perigosa, nunca lute uma batalha precipitada”.
Até 2017 Desktop Console [ Legado ] Harbour | MinGW | DBF | CDX | FastReport | MySQL
Novos Projetos:
Desktop Visual Windev Desktop
Celular Android/iOS Windev Mobile
WEB Windev Web
Sejamos gratos a Deus.
LetoDBf (fork) -> LetoDb com espinafre
Fladimir,
Consegui indexar o seu exemplo e mostrar os dados:
Obs. Substitui o Browse() por DbEdit(), mas os registro foram exibidos.
Note que eu usei leto_dbcreateTemp()
Consegui indexar o seu exemplo e mostrar os dados:
Obs. Substitui o Browse() por DbEdit(), mas os registro foram exibidos.
Note que eu usei leto_dbcreateTemp()
Código: Selecionar todos
arquivotmp := "TESTE"
cli1 := "001"
cli2 := "002"
cGrupo := "01"
leto_dbcreateTemp( "mem:clientes", aField, "DBFCDX", .T., "clientes")
INDEX ON Clientes->Codigo TAG Temp01 TO (arquivotmp) ;
FOR VAL(Clientes->Codigo) >= VAL(cli1) .and. VAL(Clientes->Codigo) <= VAL(cli2) .and.;
Clientes->MalaDireta=="S" .and. Clientes->Situacao==cGrupo ADDITIVE MEMORY
clientes->( DbAppend() )
Clientes->Codigo := "001"
clientes->Situacao := "01"
Clientes->MalaDireta := "S"
clientes->( DbCommit() )
clientes->( DbAppend() )
Clientes->Codigo := "002"
clientes->Situacao := "01"
Clientes->MalaDireta := "S"
clientes->( DbCommit() )
clientes->( DbGoTop() )
DbEdit()
►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)
LetoDBf (fork) -> LetoDb com espinafre
Interessante, vou ver se consigo voltar aos testes..
Vlw Alexandre.
Vlw Alexandre.
Sun Tzu há mais de três mil anos cita nas epígrafes de seu livro “A Arte da Guerra“:
“Concentre-se nos pontos fortes, reconheça as fraquezas, agarre as oportunidades e proteja-se contra as ameaças”.
“Se não é vantajoso, nunca envie suas tropas; se não lhe rende ganhos, nunca utilize seus homens; se não é uma situação perigosa, nunca lute uma batalha precipitada”.
Até 2017 Desktop Console [ Legado ] Harbour | MinGW | DBF | CDX | FastReport | MySQL
Novos Projetos:
Desktop Visual Windev Desktop
Celular Android/iOS Windev Mobile
WEB Windev Web
Sejamos gratos a Deus.
“Concentre-se nos pontos fortes, reconheça as fraquezas, agarre as oportunidades e proteja-se contra as ameaças”.
“Se não é vantajoso, nunca envie suas tropas; se não lhe rende ganhos, nunca utilize seus homens; se não é uma situação perigosa, nunca lute uma batalha precipitada”.
Até 2017 Desktop Console [ Legado ] Harbour | MinGW | DBF | CDX | FastReport | MySQL
Novos Projetos:
Desktop Visual Windev Desktop
Celular Android/iOS Windev Mobile
WEB Windev Web
Sejamos gratos a Deus.
LetoDBf (fork) -> LetoDb com espinafre
Fladimir,
Confirmando o que já foi disse pelo Itamar:
O que está do lado do servidor tem que existir nele.
Acho que vale a pena modificar os indices temporários, veja: a criação
Confirmando o que já foi disse pelo Itamar:
O que está do lado do servidor tem que existir nele.
Acho que vale a pena modificar os indices temporários, veja: a criação
Código: Selecionar todos
//INDEX ON Clientes->Codigo TAG Temp01 TO (arquivotmp) ;
// FOR VAL(Clientes->Codigo) >= VAL(cli1) .and. VAL(Clientes->Codigo) <= VAL(cli2) .and.;
// Clientes->MalaDireta=="S" .and. Clientes->Situacao==cGrupo ADDITIVE MEMORY
cOrder := [ Codigo ]
cQuery := [ VAL(Codigo) >= ] + Hb_NtoS( Val( cli1 ) ) + [ .AND. VAL( Codigo ) <= ] + Hb_NtoS( Val( cli2 ) ) + [ .AND. ] + ;
[ MalaDireta == "S" .AND. Situacao == '] + cGrupo + [']
INDEX ON &cOrder. TAG Temp01 TO (arquivotmp) FOR &cQuery. ADDITIVE MEMORY
Código: Selecionar todos
If Leto_File( "clientes.dbf")
DbUseArea( .T., "LETO", oASAPREV:cServidorDB + "clientes", "clientes", .T. )
Else
DbCreate( oASAPREV:cServidorDB + "clientes", aField, "LETO" )
DbUseArea( .T., "LETO", oASAPREV:cServidorDB + "clientes", "clientes", .T. )
Endif
INDEX ON Clientes->Codigo TAG Temp01 TO (arquivotmp) ;
FOR VAL(Clientes->Codigo) >= VAL(cli1) .and. VAL(Clientes->Codigo) <= VAL(cli2) .and.;
Clientes->MalaDireta=="S" .and. Clientes->Situacao==cGrupo ADDITIVE MEMORY
Descrição do erro:
Error LETO/1003 : Variable does not exist CLI1
Called from ->ORDCREATE(0)
Called from TESTE.PRG->TESTE(137)
Called from ASAPREV.PRG->(b)CLASAPREV_CHAMAROTINA(559)
Called from ASAPREV.PRG->CLASAPREV:CHAMAROTINA(559)
Called from ASAPREV.PRG->(b)CLASAPREV_ASAPREV(474)
Called from ->ONCOMMAND(868)
Called from ->(b)HMAINWINDOW(255)
Called from ->HMAINWINDOW:ONEVENT(474)
Called from ->HWG_ACTIVATEMAINWINDOW(0)
Called from ->HMAINWINDOW:ACTIVATE(430)
Called from ASAPREV.PRG->CLASAPREV:ASAPREV(530)
►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)
LetoDBf (fork) -> LetoDb com espinafre
Fazendo uma analogia com uma query em um banco relacional SELECT * FROM TABELA WHERE cWhere ORDER BY cOrder
cOrder := [ Codigo ]
cWhere := [ VAL(Codigo) >= ] + Hb_NtoS( Val( cli1 ) ) + [ .AND. VAL( Codigo ) <= ] + Hb_NtoS( Val( cli2 ) ) + [ .AND. ] + ;
[ MalaDireta == "S" .AND. Situacao == '] + cGrupo + [']
INDEX ON &cOrder. TAG Temp01 TO (arquivotmp) FOR &cWhere. ADDITIVE MEMORY
cOrder := [ Codigo ]
cWhere := [ VAL(Codigo) >= ] + Hb_NtoS( Val( cli1 ) ) + [ .AND. VAL( Codigo ) <= ] + Hb_NtoS( Val( cli2 ) ) + [ .AND. ] + ;
[ MalaDireta == "S" .AND. Situacao == '] + cGrupo + [']
INDEX ON &cOrder. TAG Temp01 TO (arquivotmp) FOR &cWhere. ADDITIVE MEMORY
►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)
LetoDBf (fork) -> LetoDb com espinafre
Uma função simples que ajuda na formação da criação do indice FormatQuotes()
Código: Selecionar todos
cOrder := [ Codigo ]
cWhere := [ VAL(Codigo) >= ] + Hb_NtoS( Val( cli1 ) ) + [ .AND. VAL( Codigo ) <= ] + Hb_NtoS( Val( cli2 ) ) + [ .AND. ] + ;
[ MalaDireta == "S" .AND. Situacao == ] + FormatQuotes( cGrupo )
Function FormatQuotes( cString )
cString := StrTran( cString, '"', "'" )
cString := ["] + cString + ["]
Return cString
►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)
LetoDBf (fork) -> LetoDb com espinafre
Bacana Alexandre, obrigado pelas informações e exemplos.
Sun Tzu há mais de três mil anos cita nas epígrafes de seu livro “A Arte da Guerra“:
“Concentre-se nos pontos fortes, reconheça as fraquezas, agarre as oportunidades e proteja-se contra as ameaças”.
“Se não é vantajoso, nunca envie suas tropas; se não lhe rende ganhos, nunca utilize seus homens; se não é uma situação perigosa, nunca lute uma batalha precipitada”.
Até 2017 Desktop Console [ Legado ] Harbour | MinGW | DBF | CDX | FastReport | MySQL
Novos Projetos:
Desktop Visual Windev Desktop
Celular Android/iOS Windev Mobile
WEB Windev Web
Sejamos gratos a Deus.
“Concentre-se nos pontos fortes, reconheça as fraquezas, agarre as oportunidades e proteja-se contra as ameaças”.
“Se não é vantajoso, nunca envie suas tropas; se não lhe rende ganhos, nunca utilize seus homens; se não é uma situação perigosa, nunca lute uma batalha precipitada”.
Até 2017 Desktop Console [ Legado ] Harbour | MinGW | DBF | CDX | FastReport | MySQL
Novos Projetos:
Desktop Visual Windev Desktop
Celular Android/iOS Windev Mobile
WEB Windev Web
Sejamos gratos a Deus.
LetoDBf (fork) -> LetoDb com espinafre
Controle de transação com LetoDbf, muito interessante:
Código: Selecionar todos
Begin Sequence With __BreakBlock()
leto_BeginTransaction(.T.)
IF Clientes->( DbAppend() )
IF ( lApp := NetErr() )
Break
ENDIF
ENDIF
Clientes->Codigo := "001"
clientes->Situacao := "01"
Clientes->MalaDireta := "S"
clientes->( DbRUnLock() )
IF Clientes->( DbAppend() )
IF ( lApp := NetErr() )
Break
ENDIF
ENDIF
Clientes->Codigo := "002"
clientes->Situacao := "01"
Clientes->MalaDireta := "S"
clientes->( DbRUnLock() )
//A=B //aqui é para provocar o erro
leto_CommitTransaction()
clientes->( DbGoTop() )
Recover
Alert("Erro incluindo registro(s)")
leto_Rollback()
RETURN Nil
End
DbEdit()
►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)
- rubens
- Colaborador

- Mensagens: 1520
- Registrado em: 16 Ago 2003 09:05
- Localização: Nova Xavantina - MT
LetoDBf (fork) -> LetoDb com espinafre
Boa tarde...
Sobre a criação de índices temporários tb tem essa observação no manual..
Sobre a criação de índices temporários tb tem essa observação no manual..
Rubens# Using temporary index orders [ created in Server OS temporary path ] are only possible in
mode: NO_Save_Wa = 1.
"Eu e minha casa servimos ao Senhor e você
"
- Itamar M. Lins Jr.
- Administrador

- Mensagens: 7928
- Registrado em: 30 Mai 2007 11:31
- Localização: Ilheus Bahia
- Curtiu: 1 vez
LetoDBf (fork) -> LetoDb com espinafre
Ola!
Saudações,
Itamar M. Lins Jr.
Que forma ? Não muda nada no seu comando. Fica Igual, somente a parte de CLI1,CLI2,cGrupo que vc precisa troca antes para o conteúdo da variável, qualquer sentença SQL não é assim ?Pra mim alterar tudo seria muito trabalho tento vista outros projetos.
Código: Selecionar todos
cQuery := ... + " ' " + cli1 + " ' " + ...
cQuery := ... + " ' " + cGrupo + " ' " + ...
Itamar M. Lins Jr.
Saudações,
Itamar M. Lins Jr.
Itamar M. Lins Jr.
LetoDBf (fork) -> LetoDb com espinafre
Fui pesquisar aki pra ver qts linhas teria q trocar até q não é muito

Daria pra fazer em uns 3 a 5 dias.
Mas como disse o projeto q contém essas linhas não teria necessidade de alteração pq uso processamento já no servidor e acesso TS e são monousuários, não multi empresa.
Como estou envolvido em outros projetos, vou avaliar se mudo ou permaneço dessa forma.
Agradeço aos amigos aki do fórum, em especial desse post pelas dicas e auxilio em testes/ideias.
Vlw galera.
Abraço.

Daria pra fazer em uns 3 a 5 dias.
Mas como disse o projeto q contém essas linhas não teria necessidade de alteração pq uso processamento já no servidor e acesso TS e são monousuários, não multi empresa.
Como estou envolvido em outros projetos, vou avaliar se mudo ou permaneço dessa forma.
Agradeço aos amigos aki do fórum, em especial desse post pelas dicas e auxilio em testes/ideias.
Vlw galera.
Abraço.
Sun Tzu há mais de três mil anos cita nas epígrafes de seu livro “A Arte da Guerra“:
“Concentre-se nos pontos fortes, reconheça as fraquezas, agarre as oportunidades e proteja-se contra as ameaças”.
“Se não é vantajoso, nunca envie suas tropas; se não lhe rende ganhos, nunca utilize seus homens; se não é uma situação perigosa, nunca lute uma batalha precipitada”.
Até 2017 Desktop Console [ Legado ] Harbour | MinGW | DBF | CDX | FastReport | MySQL
Novos Projetos:
Desktop Visual Windev Desktop
Celular Android/iOS Windev Mobile
WEB Windev Web
Sejamos gratos a Deus.
“Concentre-se nos pontos fortes, reconheça as fraquezas, agarre as oportunidades e proteja-se contra as ameaças”.
“Se não é vantajoso, nunca envie suas tropas; se não lhe rende ganhos, nunca utilize seus homens; se não é uma situação perigosa, nunca lute uma batalha precipitada”.
Até 2017 Desktop Console [ Legado ] Harbour | MinGW | DBF | CDX | FastReport | MySQL
Novos Projetos:
Desktop Visual Windev Desktop
Celular Android/iOS Windev Mobile
WEB Windev Web
Sejamos gratos a Deus.