Pesquisa no BD

Fórum sobre a linguagem CA-Clipper.

Moderador: Moderadores

Mano
Usuário Nível 1
Usuário Nível 1
Mensagens: 11
Registrado em: 08 Jan 2010 11:18
Localização: parana

Pesquisa no BD

Mensagem por Mano »

Estou com dificuldade no Clipper 5

Preciso um comando (sequencia) que busque
no Bd atraves do codigo informado ultimo registro feito de acordo com o codigo e data

EX: do DBF

COD,N,5,0 DTEntrada,D Unid,N,10,0 V_uni,N,10,2 V_total,N,10,2
1 25/12/09 5 1,00 5,00
2 26/12/09 3 3,00 9,00
1 28/12/09 6 1,00 6,00
3 28/12/09 7 1,00 7,00
1 29/12/09 2 2,00 4,00 preciso que localize este registro atravÉs do cod informado, e mostre na tela somente o 4,00 e o armazene em uma variável
6 30/12/09 4 2,00 8,00
Editado pela última vez por Mano em 08 Jan 2010 13:51, em um total de 5 vezes.
alxsts
Colaborador
Colaborador
Mensagens: 3092
Registrado em: 12 Ago 2008 15:50
Localização: São Paulo-SP-Brasil

Re: Pesquisa no BD

Mensagem por alxsts »

Olá!

Seja bem-vindo ao Fórum!

Você não forneceu muitos detalhes.Creio que para solucionar a questão, basta criar um índice e depois utilizá-lo na pesquisa.

Código: Selecionar todos

   // cria um índice para a tabela (suponho que o campo cod seja caracter. Se não for, use STR( cod, <tamanho-campo>) )

   USE Tabela EXCLUSIVE NEW
   INDEX ON cod + DTOS( DTEntrada ) TO ix

Recomenda-se criar uma rotina separada para indexação dee arquivos.

Pesquisa:

Código: Selecionar todos

   LOCAL nCod := SPACE(6), dDtEntrada :+ Date(), GetList := {}

   USE Tabela SHARED NEW
   SET INDEX TO Ix

   CLS

   @ 10, 10 SAY "Código         " GET cCod PICT "@!"
   @ 12, 10 SAY "Data Entrada" GET dDtEntrada

   READ

   IF Tabela->( DbSeek( cCod + dDtEntrada ) )
      Alert( "Produto encontrado" )
   ELSE
      Alert( "Produto NÃO encontrado" )
   ENDIF
[]´s
Alexandre Santos (AlxSts)
Avatar do usuário
gvc
Colaborador
Colaborador
Mensagens: 1270
Registrado em: 23 Ago 2005 10:57

Re: Pesquisa no BD

Mensagem por gvc »

Como vc não informou a versão do Clipper que esta usando, vamos por partes:

Clipper 5.3x tem a opção de pesquisa da última ocorrencia da chave de pesquisa. Essa te resolve o problema imediatamente.

dbseek(<chave>, <softseek>, <descend>)

Se vc esta com alguma versão anterior, tera que montar a chave de indexação e pesquisa usando a função descend.

index on str(cod, 5) + descend(dtos(dtentrada)) to arqind

Qdo vc for pesquisar, terá que colocar a chave da mesma forma que foi montada no indice.

Boa sorte. Espero ter ajudado.
"TRS-80/Sincler/Apple/PC - Clipper Winter 85, tlink 1.0 [pc 10 MHz - 640K] {NEZ 8000 2Kb RAM}"
{POG - Programação Orientada a Gambiarra}
alxsts
Colaborador
Colaborador
Mensagens: 3092
Registrado em: 12 Ago 2008 15:50
Localização: São Paulo-SP-Brasil

Re: Pesquisa no BD

Mensagem por alxsts »

Olá!

Sinceramente não vejo a necessidade de se usar Descend nesta questão.
[]´s
Alexandre Santos (AlxSts)
Avatar do usuário
gvc
Colaborador
Colaborador
Mensagens: 1270
Registrado em: 23 Ago 2005 10:57

Re: Pesquisa no BD

Mensagem por gvc »

alxsts escreveu:Sinceramente não vejo a necessidade de se usar Descend nesta questão.
Mano escreveu:Preciso um comando (sequencia) que busque no Bd atraves do codigo informado ultimo registro feito de acordo com o codigo e data
"TRS-80/Sincler/Apple/PC - Clipper Winter 85, tlink 1.0 [pc 10 MHz - 640K] {NEZ 8000 2Kb RAM}"
{POG - Programação Orientada a Gambiarra}
alxsts
Colaborador
Colaborador
Mensagens: 3092
Registrado em: 12 Ago 2008 15:50
Localização: São Paulo-SP-Brasil

Re: Pesquisa no BD

Mensagem por alxsts »

Olá!

Perfeito GVC. Você tem razão.

Eu olhei o exemplo de dados fornecido e não atentei para a questão do último registro de um código em uma data. Aliás, o exemplo não foi muito claro.

Resta saber que versão ele utiliza.
[]´s
Alexandre Santos (AlxSts)
Mano
Usuário Nível 1
Usuário Nível 1
Mensagens: 11
Registrado em: 08 Jan 2010 11:18
Localização: parana

Re: Pesquisa no BD

Mensagem por Mano »

Desculpe nao informar a versao do Clipper
A versão que uso é Clipper(R) 5.3b Intl. (Rev. 338) (1997.04.25)
tenho outras versões tbm afinal qual e a melhor??
alxsts
Colaborador
Colaborador
Mensagens: 3092
Registrado em: 12 Ago 2008 15:50
Localização: São Paulo-SP-Brasil

Re: Pesquisa no BD

Mensagem por alxsts »

Olá!
gvc escreveu:Clipper 5.3x tem a opção de pesquisa da última ocorrencia da chave de pesquisa. Essa te resolve o problema imediatamente.
Sendo assim, sugiro que você crie o índice e siga a orientação do colega GVC postada acima:

Código: Selecionar todos

dbseek(<chave>, <softseek>, <descend>)
A versão 5.3b foi a última lançada. Porém, a 5.2e é a mais utilizada por ser considerada a mais estável.
[]´s
Alexandre Santos (AlxSts)
Responder