Página 1 de 1
Pesquisa no BD
Enviado: 08 Jan 2010 11:49
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
Re: Pesquisa no BD
Enviado: 08 Jan 2010 12:18
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
Re: Pesquisa no BD
Enviado: 08 Jan 2010 15:28
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.
Re: Pesquisa no BD
Enviado: 08 Jan 2010 16:19
por alxsts
Olá!
Sinceramente não vejo a necessidade de se usar Descend nesta questão.
Re: Pesquisa no BD
Enviado: 08 Jan 2010 20:15
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
Re: Pesquisa no BD
Enviado: 08 Jan 2010 21:35
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.
Re: Pesquisa no BD
Enviado: 08 Jan 2010 22:38
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??
Re: Pesquisa no BD
Enviado: 08 Jan 2010 22:56
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:
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.