Hb_DbCreateTemp e indices Cdx

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

Moderador: Moderadores

Avatar do usuário
Nascimento
Usuário Nível 4
Usuário Nível 4
Mensagens: 763
Registrado em: 19 Jul 2008 12:11
Localização: OLINDA-PE

Hb_DbCreateTemp e indices Cdx

Mensagem por Nascimento »

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

Código: Selecionar todos

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 do usuário
asimoes
Colaborador
Colaborador
Mensagens: 4919
Registrado em: 26 Abr 2007 16:48
Localização: RIO DE JANEIRO-RJ

Hb_DbCreateTemp e indices Cdx

Mensagem por asimoes »

►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 do usuário
asimoes
Colaborador
Colaborador
Mensagens: 4919
Registrado em: 26 Abr 2007 16:48
Localização: RIO DE JANEIRO-RJ

Hb_DbCreateTemp e indices Cdx

Mensagem por asimoes »

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

Código: Selecionar todos

   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 do usuário
asimoes
Colaborador
Colaborador
Mensagens: 4919
Registrado em: 26 Abr 2007 16:48
Localização: RIO DE JANEIRO-RJ

Hb_DbCreateTemp e indices Cdx

Mensagem por asimoes »

teste com hb32 funcionou:

Código: Selecionar todos

 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 do usuário
Nascimento
Usuário Nível 4
Usuário Nível 4
Mensagens: 763
Registrado em: 19 Jul 2008 12:11
Localização: OLINDA-PE

Hb_DbCreateTemp e indices Cdx

Mensagem por Nascimento »

asimoes escreveu:teste com hb32 funcionou:

Código: Selecionar todos

 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 do usuário
asimoes
Colaborador
Colaborador
Mensagens: 4919
Registrado em: 26 Abr 2007 16:48
Localização: RIO DE JANEIRO-RJ

Hb_DbCreateTemp e indices Cdx

Mensagem por asimoes »

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 do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Hb_DbCreateTemp e indices Cdx

Mensagem por JoséQuintas »

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 mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"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 do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Hb_DbCreateTemp e indices Cdx

Mensagem por JoséQuintas »

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 mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"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 do usuário
asimoes
Colaborador
Colaborador
Mensagens: 4919
Registrado em: 26 Abr 2007 16:48
Localização: RIO DE JANEIRO-RJ

Hb_DbCreateTemp e indices Cdx

Mensagem por asimoes »

Pra funcionar direito ai no seu sistema:

Código: Selecionar todos

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 do usuário
asimoes
Colaborador
Colaborador
Mensagens: 4919
Registrado em: 26 Abr 2007 16:48
Localização: RIO DE JANEIRO-RJ

Hb_DbCreateTemp e indices Cdx

Mensagem por asimoes »

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 do usuário
asimoes
Colaborador
Colaborador
Mensagens: 4919
Registrado em: 26 Abr 2007 16:48
Localização: RIO DE JANEIRO-RJ

Hb_DbCreateTemp e indices Cdx

Mensagem por asimoes »

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 do usuário
Nascimento
Usuário Nível 4
Usuário Nível 4
Mensagens: 763
Registrado em: 19 Jul 2008 12:11
Localização: OLINDA-PE

Hb_DbCreateTemp e indices Cdx

Mensagem por Nascimento »

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 do usuário
Nascimento
Usuário Nível 4
Usuário Nível 4
Mensagens: 763
Registrado em: 19 Jul 2008 12:11
Localização: OLINDA-PE

Hb_DbCreateTemp e indices Cdx

Mensagem por Nascimento »

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 do usuário
fladimir
Colaborador
Colaborador
Mensagens: 2445
Registrado em: 15 Nov 2006 20:21

Hb_DbCreateTemp e indices Cdx

Mensagem por fladimir »

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

Código: Selecionar todos


  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 do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Hb_DbCreateTemp e indices Cdx

Mensagem por JoséQuintas »

Cadê o USE ?
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Responder