Pesquisa no BD
Moderador: Moderadores
Pesquisa no BD
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
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

- Mensagens: 3092
- Registrado em: 12 Ago 2008 15:50
- Localização: São Paulo-SP-Brasil
Re: Pesquisa no BD
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.
Recomenda-se criar uma rotina separada para indexação dee arquivos.
Pesquisa:
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)
Alexandre Santos (AlxSts)
Re: Pesquisa no BD
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.
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}
{POG - Programação Orientada a Gambiarra}
-
alxsts
- Colaborador

- Mensagens: 3092
- Registrado em: 12 Ago 2008 15:50
- Localização: São Paulo-SP-Brasil
Re: Pesquisa no BD
Olá!
Sinceramente não vejo a necessidade de se usar Descend nesta questão.
Sinceramente não vejo a necessidade de se usar Descend nesta questão.
[]´s
Alexandre Santos (AlxSts)
Alexandre Santos (AlxSts)
Re: Pesquisa no BD
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}
{POG - Programação Orientada a Gambiarra}
-
alxsts
- Colaborador

- Mensagens: 3092
- Registrado em: 12 Ago 2008 15:50
- Localização: São Paulo-SP-Brasil
Re: Pesquisa no BD
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.
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)
Alexandre Santos (AlxSts)
Re: Pesquisa no BD
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??
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

- Mensagens: 3092
- Registrado em: 12 Ago 2008 15:50
- Localização: São Paulo-SP-Brasil
Re: Pesquisa no BD
Olá!
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.
Sendo assim, sugiro que você crie o índice e siga a orientação do colega GVC postada acima:gvc escreveu:Clipper 5.3x tem a opção de pesquisa da última ocorrencia da chave de pesquisa. Essa te resolve o problema imediatamente.
Código: Selecionar todos
dbseek(<chave>, <softseek>, <descend>)[]´s
Alexandre Santos (AlxSts)
Alexandre Santos (AlxSts)
