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: 765
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: 765
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: 20415
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP
Curtiram: 1 vez

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, multithread, gtwvg, fivewin 25.12, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui), (hmg3), (hmg extended), (oohg), PNotepad, ASP, (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: 20415
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP
Curtiram: 1 vez

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, multithread, gtwvg, fivewin 25.12, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui), (hmg3), (hmg extended), (oohg), PNotepad, ASP, (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: 765
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: 765
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: 20415
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP
Curtiram: 1 vez

Hb_DbCreateTemp e indices Cdx

Mensagem por JoséQuintas »

Cadê o USE ?
José M. C. Quintas
Harbour 3.2, mingw, multithread, gtwvg, fivewin 25.12, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui), (hmg3), (hmg extended), (oohg), PNotepad, ASP, (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