Página 1 de 1

Procura com RDD CDX

Enviado: 17 Jan 2005 13:25
por casr
Pessoal,

estou em fase de inicio de uso do DBFCDX, e em meus sistemas a minha busca as vezes é feita com base em dados de outro DBF.
O DBF anterior está sendo fechado e com isso o comando.
Select Debitos
SEEK Clientes->Nome

não está funcionando. Ele dá erro dizendo que o Alias Clientes não existe.
o q pode ser?

Enviado: 18 Jan 2005 01:48
por Dudu_XBase
Boa Noite !
Verifique se o banco que esta sendo fechado não é o clientes.
Debugue seu sistema e verifique !
Tb pode ser que o alias para usar o banco clientes seja outro verifique.
O seek com o rdd CDX não tem problemas usando essa sintaxe.

Enviado: 18 Jan 2005 03:38
por rochinha
Amiguinho

O melhor método de trabalho com arquivos ainda é com o uso de variáveis, neste caso, veja:

Código: Selecionar todos

use clientes index clientes new // NEW abre uma nova area sem SELECT
use debitos index debitos new 

sele clientes
go top
do while .not. eof()
     m->cliente := clientes->nome // guarda o nome do cliente na variavel
     sele debitos                           // seleciona debitos
     set order to 1                        // caso tenha mais indices aponte para o mesmo
     seek m->cliente                     // pesquisa pelo nome do cliente
     if found()
        do while .not. eof()              // encontrou executa até o fim... 
             if debitos->cliente = m->cliente // é o cliente imprime os dados
                ? debitos->data, debitos->valor
             endif
             skip // pula para o proximo registro de debitos
        enddo
     endif
     skip // pula para o proximo registro de clientes
enddo
Veja que usei o NEW para referenciar a abertura em uma area vazia. sem seu uso o arquivo DEBITOS seria aberto na mesma area de CLIENTES.

Com esta rotina voce não terá mais duvidas.

@braços :?)