DBSEEK HELP?

Fórum sobre a linguagem CA-Clipper.

Moderador: Moderadores

pena
Usuário Nível 3
Usuário Nível 3
Mensagens: 331
Registrado em: 06 Jul 2004 18:08
Localização: CACHOEIRA DO SUL-RS

DBSEEK HELP?

Mensagem por pena »

Pessoal fiquei muito tempo sem usar clipper, na verdade é minigui x harbour, mas o conceito é o mesmo, e estou apanhando , nao sei oque estou fazendo errado

tenho um indice

Código: Selecionar todos

   Form_Principal.Label_Mensagens.Value:="Aguarde Indexando Itens - Data 6"
   INDEX ON STR(PRODUTO,6)+DTOS(DATA) TAG CUPOM
e na rotina fiz assim, ou seja, de tal produto, tenho que ler de tras pra frente, mas nao ta rolando, nao sei o que ta acontecendo

Código: Selecionar todos

      vdatafinal:=ctod("31/12/2030")
      Itens->(DBSetOrder(6))
      Itens->(DBSeek(STR(Produtos->Codigo,6)+DTOS(vdatafinal),.F.))
      msgbox("produto "+str(produtos->codigo,6))
      msgbox("item    "+str(itens->produto,6))
      msgbox("data    "+dtos(itens->data))
      DO WHILE ! Itens->(Bof()) .AND. Produtos->Codigo=Itens->Produto .and. Itens->Data>=Frm_Inventario.T_DtaInv.Value
nao entra nunca no DO WHILE, e claro que ali no msgbox, ele ta sempre achando um codigo a mais, ou seja
se o codigo do produto é 5, ele acha o 6, e assim por diante
lucimauro
Usuário Nível 3
Usuário Nível 3
Mensagens: 465
Registrado em: 21 Set 2004 21:02
Localização: Sobral-CE

DBSEEK HELP?

Mensagem por lucimauro »

Tente algo assim :

Código: Selecionar todos

vdatafinal:=ctod("31/12/2030")
   Itens->(DBSetOrder(6))
   Itens->(DBSeek(STR(Produtos->Codigo+1,6),.T.))
   dbskip(-1)
   msgbox("produto "+str(produtos->codigo,6))
   msgbox("item  "+str(itens->produto,6))
   msgbox("data  "+dtos(itens->data))
   DO WHILE ! Itens->(Bof()) .AND. Produtos->Codigo=Itens->Produto .and. Itens->Data>=Frm_Inventario.T_DtaInv.Value
Eu nao testei é so uma sugestao.
Editado pela última vez por Pablo César em 27 Mar 2013 22:52, em um total de 3 vezes.
Razão: Mensagem editada para colocar a tag [ code ]<br>Veja como utilizar esta tag: http://www.pctoledo.com.br/forum/faq.php?mode=bbcode#f2r1
pena
Usuário Nível 3
Usuário Nível 3
Mensagens: 331
Registrado em: 06 Jul 2004 18:08
Localização: CACHOEIRA DO SUL-RS

DBSEEK HELP?

Mensagem por pena »

o conceito é esse mesmo, dbskip(-1), era pra funcionar, e muito obrigado pela atenção, e resolvi, maldito indice, exclui o indice e funcionou
Avatar do usuário
Pablo César
Usuário Nível 7
Usuário Nível 7
Mensagens: 5312
Registrado em: 31 Mai 2006 10:22
Localização: Curitiba - Paraná

DBSEEK HELP?

Mensagem por Pablo César »

Experimentou indexar com Descend(DtoS(DATA)) ? Caso você esteja indo na outra direção com Skip -1 ao invés do Skip no Do While ?
Um clip-abraço !

Pablo César Arrascaeta
Compartilhe suas dúvidas e soluções com todos os colegas aqui do fórum.
Evite enviar as dúvidas técnicas por MPs ou eMails, assim todos iremos beneficiar-nos.
Responder