FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour Relacionando 2 DBF
Posts: 479
Joined: Fri Feb 16, 2007 10:29 AM
Relacionando 2 DBF
Posted: Tue Nov 25, 2008 01:08 PM
Compañeros:

No logro relacionar 2 dbf. Llevo 2 horas y estoy liado.

Tengo 2 DBF:
AFORO && Dbf padre
ZONA && Dbf hija

ambas con un campo en común
ZONA,N,2,0

Indexo de la siguiente forma:
 select 2 ; use aforo    alias aforo    shared
   index on tran(tendido,'##') tag TAFORO  
   index on tran(tendido,'##')+tran(zona,'##')+tran(fila,'##') tag TZFAFORO    
   index on sol+tran(tendido,'##')+sector tag TSAFORO  
   index on tran(zona,'##') tag ZAFORO
 select 7 ; use zona     alias zona     shared 
   index on tran(zona,'##') tag Nzona


Para abrir y relacionar hago lo siguiente:
    select 7 ; use zona     alias zona     shared ; set index to zona
    select 2 ; use aforo    alias aforo    shared ; set index to aforo
               DBSETRELATION("zona",{|| aforo->zona},"aforo->zona")


Tal y como está hago un dbrelation() y no me devuelve nada pero todos los registros de PADRE me los muestra relacionado con el 1er. registro de HIJA. Si en el DBSETRELATION le quito las comillas a "zona", dbrelation() me devuelve la relacion pero los registros de PADRE me los muestra relacionado vacios.

¿ Como sería ? Utilizo FWH807 y xHarbour 27/June/2008
Mil gracias.
Lorenzo
Posts: 28
Joined: Sat Oct 29, 2005 12:01 AM
yo los aplico asi con CDX o Netx
Posted: Tue Nov 25, 2008 03:59 PM

Sele dgfolios
Set relation to idcol into colonias

Saludos

Posts: 479
Joined: Fri Feb 16, 2007 10:29 AM
Relacionando 2 DBF
Posted: Tue Nov 25, 2008 05:18 PM

tosko, agradezco tu sugerencia, que aunque algo escueta ya la probé y no funciona....

Seguí las indiciaciones en este foro: http://fivetechsoft.com/forums/viewtopi ... t=relation

pero sigo sin lograrlo.

A la espera de sugerencias, saluda
Lorenzo

Posts: 133
Joined: Fri Nov 30, 2007 11:34 AM
Relacionando 2 DBF
Posted: Tue Nov 25, 2008 06:16 PM
Lorenzo.
Ten cuidadp con el orden de apertura de las bases de datos ya que para relacionar dos bases de datos es fundamnetal abrir primero la hija. Un ejemplo.


DbUseArea(.T.,,"Facturas")
Facturas->(DbSetIndex("I1FActur"))

DbUseArea(.T.,,"Siniestr")
Siniestr->(DbSetIndex("I1Sini"))

DbSelectArea("Facturas")

SET RELATION TO Facturas->NumControl INTO Siniestr


Un saludo. Fernando
Saludos. Fernando

Continue the discussion