Procura com RDD CDX

Fórum sobre a linguagem CA-Clipper.

Moderador: Moderadores

casr
Usuário Nível 1
Usuário Nível 1
Mensagens: 9
Registrado em: 21 Ago 2004 22:16

Procura com RDD CDX

Mensagem 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?
Dudu_XBase
Membro Master
Membro Master
Mensagens: 1071
Registrado em: 25 Ago 2003 16:55

Mensagem 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.


________________________________________________________________________________________________________
(Aow Saudade) Clipper 5.2e, Blinker 7, RDD SIXNSX, DBFCDX /Xharbour 1.0, Rdd Mediator (Mysql) Free , RDD Sqlrdd (Sql Server) Comercial
(Hoje) C# Python Sql Server e Oracle




Avatar do usuário
rochinha
Administrador
Administrador
Mensagens: 4664
Registrado em: 18 Ago 2003 20:43
Localização: São Paulo - Brasil
Contato:

Mensagem 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 :?)
Responder