Clipper On Line • Ver Tópico - Hb_DbCreateTemp e indices Cdx

Hb_DbCreateTemp e indices Cdx

Projeto Harbour - Compilador de código aberto compatível com o Clipper.

Moderador: Moderadores

 

Hb_DbCreateTemp e indices Cdx

Mensagempor Nascimento » 23 Ago 2020 14:41

Amigos eu estou tentando desde ontem usar essa função Hb_DbCreateTemp()

com indices cdx, observo que cria o banco de dados mais não consigo abrir o cdx, ao menos acho que não cria
este é um pequeno exemplo que achei no forum, então descidi testar até agora sem exito

Function Main()
   local i := 0
   local aDbf := {}
   aadd(adbf,   {"itemcd", "c",   10, 0})
   aadd(adbf,   {"itemnm", "c",   40,   0})
   aadd(adbf,   {"rate",   "n",    8, 2})
   
   if !hb_dbcreatetemp("curItem", adbf,"DBFCDX")
     Alert("Banco Nao foi criado")
      return nil
   endif
   
   if select("curItem") = 0
      use curItem new
   endif
   select curItem

   FOR i := 1 To 10
     append blank
     curItem->itemcd := "CD_" + STRZERO( i, 7)
     curItem->itemnm := "Compact Disc Number " + STR( i, 15)
     curItem->rate := i
     unlock
   NEXT
// ja tentei de varias formas
   index on itemcd tag 'cd'  to 'curItem'  memory
   set inde to curItem  memory
   dbedit()
   Return Nil

A arte de programar é simplesmente fazer seus pensamentos serem interpretados por uma maquina :) clipper 5.3 /harbour/minigui
Avatar de usuário

Nascimento
Usuário Nível 4

Usuário Nível 4
 
Mensagens: 711
Data de registro: 19 Jul 2008 12:11
Cidade/Estado: OLINDA-PE
Curtiu: 110 vezes
Mens.Curtidas: 76 vezes

Hb_DbCreateTemp e indices Cdx

Mensagempor asimoes » 24 Ago 2020 10:06

►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)
Avatar de usuário

asimoes
Colaborador

Colaborador
 
Mensagens: 4919
Data de registro: 26 Abr 2007 16:48
Cidade/Estado: RIO DE JANEIRO-RJ
Curtiu: 341 vezes
Mens.Curtidas: 258 vezes

Hb_DbCreateTemp e indices Cdx

Mensagempor asimoes » 24 Ago 2020 11:03

Nas minhas pastas harbour achei isso:
Não é temporário mas atente para o tipo:

   aStru := {}
   
   aAdd( aStru, {"AUTO",   "+", 4, 0} )
   aAdd( aStru, {"CODIGO", "C", 4, 0} )
   aAdd( aStru, {'VarChar100'    , 'Q', 100, 0 })
   //aAdd( aStru, {'Image10'       , 'P', 10, 0 })
   aAdd( aStru, {'VarBin100'  , 'VarBinary', 100, 0 })
   DbCreate( "testdbf", aStru, "DBFCDX", .T., "MYALIAS" )
   
   MYALIAS->( DbAppend() )
   MYALIAS->CODIGO := '0001'
   MYALIAS->VarChar100 := 'ALEXANDRE'
   MYALIAS->VarBin100 := 100
   
   MYALIAS->( DbAppend() )
   MYALIAS->CODIGO := '0002'
   MYALIAS->VarChar100 := 'ALEXANDRE SIMOES'
   MYALIAS->VarBin100 := 100
►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)
Avatar de usuário

asimoes
Colaborador

Colaborador
 
Mensagens: 4919
Data de registro: 26 Abr 2007 16:48
Cidade/Estado: RIO DE JANEIRO-RJ
Curtiu: 341 vezes
Mens.Curtidas: 258 vezes

Hb_DbCreateTemp e indices Cdx

Mensagempor asimoes » 24 Ago 2020 11:06

teste com hb32 funcionou:
 aStruct:={{ "VEND", "C", 14, 0 },;
             { "VARCHAR100", "Q", 100, 0 },;
             { "FILX", "C", 02, 0 } }


   HB_DBCreateTemp("teste", aStruct)
►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)
Avatar de usuário

asimoes
Colaborador

Colaborador
 
Mensagens: 4919
Data de registro: 26 Abr 2007 16:48
Cidade/Estado: RIO DE JANEIRO-RJ
Curtiu: 341 vezes
Mens.Curtidas: 258 vezes

Hb_DbCreateTemp e indices Cdx

Mensagempor Nascimento » 24 Ago 2020 11:19

asimoes escreveu:teste com hb32 funcionou:
 aStruct:={{ "VEND", "C", 14, 0 },;
             { "VARCHAR100", "Q", 100, 0 },;
             { "FILX", "C", 02, 0 } }


   HB_DBCreateTemp("teste", aStruct)


a criação da dbf funciona normal, estou falando a criação do indice

index on blabla tag blabla

set index blabla // aqui da o erro
A arte de programar é simplesmente fazer seus pensamentos serem interpretados por uma maquina :) clipper 5.3 /harbour/minigui
Avatar de usuário

Nascimento
Usuário Nível 4

Usuário Nível 4
 
Mensagens: 711
Data de registro: 19 Jul 2008 12:11
Cidade/Estado: OLINDA-PE
Curtiu: 110 vezes
Mens.Curtidas: 76 vezes

Hb_DbCreateTemp e indices Cdx

Mensagempor asimoes » 24 Ago 2020 13:23

Nascimento escreveu:a criação da dbf funciona normal, estou falando a criação do indice

index on blabla tag blabla

set index blabla // aqui da o erro


Experimenta:

INDEX ON CAMPO TAG TESTE

TESTE->( OrdSetFocus(1) )

ou

TESTE->( OrdSetFocus("TESTE") )

Já fiz o teste aqui
►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)
Avatar de usuário

asimoes
Colaborador

Colaborador
 
Mensagens: 4919
Data de registro: 26 Abr 2007 16:48
Cidade/Estado: RIO DE JANEIRO-RJ
Curtiu: 341 vezes
Mens.Curtidas: 258 vezes

Hb_DbCreateTemp e indices Cdx

Mensagempor JoséQuintas » 24 Ago 2020 13:30

E tem a função de deletar tag da RDD.
Não lembro o nome, porque não lembro nem de ter usado.
Assim apaga sem nem saber o nome do arquivo físico.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg, multithread, dbfcdx, ADO+MySql, PNotepad
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar de usuário

JoséQuintas
Membro Master

Membro Master
 
Mensagens: 18161
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1215 vezes

Hb_DbCreateTemp e indices Cdx

Mensagempor JoséQuintas » 24 Ago 2020 13:33

ASimões:
Acabei excluindo a mensagem que pareceu duplicada
Mas depois pensei que poderia ter alterado pra dbSetOrder().
Desculpe, e avise caso eu tenha feito besteira.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg, multithread, dbfcdx, ADO+MySql, PNotepad
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar de usuário

JoséQuintas
Membro Master

Membro Master
 
Mensagens: 18161
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1215 vezes

Hb_DbCreateTemp e indices Cdx

Mensagempor asimoes » 24 Ago 2020 13:38

Pra funcionar direito ai no seu sistema:
INDEX ON VEND TAG TESTE1 TO TESTE TEMPORARY ADDITIVE

INDEX ON FILX TAG TESTE2 TO TESTE TEMPORARY ADDITIVE
   
TESTE->( DbSetOrder(1) )

OU
   
TESTE->( DbSetOrder("TESTE1") )

OU
   
TESTE->( OrdSetFocus(2) )

OU
   
TESTE->( OrdSetFocus("TESTE2") )
►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)
Avatar de usuário

asimoes
Colaborador

Colaborador
 
Mensagens: 4919
Data de registro: 26 Abr 2007 16:48
Cidade/Estado: RIO DE JANEIRO-RJ
Curtiu: 341 vezes
Mens.Curtidas: 258 vezes

Hb_DbCreateTemp e indices Cdx

Mensagempor asimoes » 24 Ago 2020 13:42

TEMPORARY ADDITIVE para criar os indices em memória
►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)
Avatar de usuário

asimoes
Colaborador

Colaborador
 
Mensagens: 4919
Data de registro: 26 Abr 2007 16:48
Cidade/Estado: RIO DE JANEIRO-RJ
Curtiu: 341 vezes
Mens.Curtidas: 258 vezes

Hb_DbCreateTemp e indices Cdx

Mensagempor asimoes » 24 Ago 2020 13:47

Para excluir o indice:

OrdDestroy( <cIndexName> [, <cIndexFile>] )
►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)
Avatar de usuário

asimoes
Colaborador

Colaborador
 
Mensagens: 4919
Data de registro: 26 Abr 2007 16:48
Cidade/Estado: RIO DE JANEIRO-RJ
Curtiu: 341 vezes
Mens.Curtidas: 258 vezes

Hb_DbCreateTemp e indices Cdx

Mensagempor Nascimento » 25 Ago 2020 01:27

mais tarde estarei testando hj para poder concluir a função criei normalmente mesmo
mais tarde testo e lhes direi se funcionou, obrigados a todos por hora
att:Nascimento
JoséQuintas escreveu:ASimões:
Acabei excluindo a mensagem que pareceu duplicada
Mas depois pensei que poderia ter alterado pra dbSetOrder().
Desculpe, e avise caso eu tenha feito besteira.

tentei tambem amigo quintas não funcionou corretamente
A arte de programar é simplesmente fazer seus pensamentos serem interpretados por uma maquina :) clipper 5.3 /harbour/minigui
Avatar de usuário

Nascimento
Usuário Nível 4

Usuário Nível 4
 
Mensagens: 711
Data de registro: 19 Jul 2008 12:11
Cidade/Estado: OLINDA-PE
Curtiu: 110 vezes
Mens.Curtidas: 76 vezes

Hb_DbCreateTemp e indices Cdx

Mensagempor Nascimento » 25 Ago 2020 16:09

aparentemente até agora tudo funcionando ok
obrigado a todos!!
A arte de programar é simplesmente fazer seus pensamentos serem interpretados por uma maquina :) clipper 5.3 /harbour/minigui
Avatar de usuário

Nascimento
Usuário Nível 4

Usuário Nível 4
 
Mensagens: 711
Data de registro: 19 Jul 2008 12:11
Cidade/Estado: OLINDA-PE
Curtiu: 110 vezes
Mens.Curtidas: 76 vezes

Hb_DbCreateTemp e indices Cdx

Mensagempor fladimir » 23 Jan 2024 10:31

Testei aki funcionou a criação e os indices, porém se faço um append from (tabela fisica) para a tabela temporaria, não puxa os dados, ou seja, somente via inserção manual (append blank etc)

Alguém sabe como copiar dados a partir de outra tabela para a tabela temporaria?

Gostaria de fazer algo do tipo


  aStruct := Base->( dbstruct() )
   FechaArea('Base')

   if !hb_dbcreatetemp("Teste", aStruct)
         Alert("Cannot create temporary table: Item")
         return nil
   endif
    APPEND FROM Base FOR dataMov >= dt1 .AND. dataMov <= dt2 .AND. cancelado != 'S'
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.
Avatar de usuário

fladimir
Colaborador

Colaborador
 
Mensagens: 2436
Data de registro: 15 Nov 2006 19:21
Curtiu: 28 vezes
Mens.Curtidas: 157 vezes

Hb_DbCreateTemp e indices Cdx

Mensagempor JoséQuintas » 23 Jan 2024 12:02

Cadê o USE ?
José M. C. Quintas
Harbour 3.2, mingw, gtwvg, multithread, dbfcdx, ADO+MySql, PNotepad
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar de usuário

JoséQuintas
Membro Master

Membro Master
 
Mensagens: 18161
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1215 vezes




Retornar para Harbour

Quem está online

Usuários vendo este fórum: Nenhum usuário registrado online e 7 visitantes


Ola Amigo, espero que meu site e forum tem lhe beneficiado, com exemplos e dicas de programacao.
Entao divulgue o link da Doacao abaixo para seus amigos e redes sociais ou faça uma doacao para o site forum...
MUITO OBRIGADO PELA SUA DOACAO!
Faça uma doação para o forum
cron
v
Olá visitante, seja bem-vindo ao Fórum Clipper On Line!
Efetue o seu login ou faça o seu Registro