Newsgroup: it.comp.lang.vo-clipper
Titolo: DBFCDX e archivi FOX2x

Salve a tutti premetto che in clipper non sono una cima, ma mi trovo 
costretto a modificare un prg.
L'ambiente di sviluppo che ho installato è il segente:
-Clipper 5.2e
-Gli Include sono tutti al 07/02/95 05.25
-DBFCDX.LIB è 05.25 del 07/02/95
Programma per link e il BLinker ver 3.01
Cosa fa il programma:
	il programma legge gli archivi di un altro prg e li elabora in 
	modo da ottenere un tracciato di export in formato testo che viene 
	letto da un OS UNIX
Il Problema:
	Il "SET RELATION TO" non funziona correttamente.
Source:
<Inizio>
Dichiarazioni variabili e apertura file......
SELECT pnt_nota
SET INDEX TO pnt_sue1
SET RELATION TO pncodca2 INTO caus_fat
SET RELATION TO pnsotcon INTO pia_cont ADDITIVE
.....
DO WHILE DTOS(pnt_nota->pndatreg)+STR(pnt_nota->pnnumrer,6,0)=stringa
.....
 
		     	SKIP ALIAS pnt_nota	   
		     	LOOP			   
		   ELSE				   
			.......
		     	QUIT			   
		   ENDIF			   
		ENDIF	
 
------------>	&& Errore è Qui
              wait "Contropartita: "+contr
              wait "Sottoconto: "+pia_cont->pc_conto
		contr="00" + val_to_str(VAL(LEFT(pia_cont->pc___cee,5)),5)
.....
ENNDO
.....
<Fine>
L'errore è che la contropartita risulta "0000000" e non il valore 
corretto "0042009", questo perchè non fa la connessione con il 
sottoconto quindi non utilizza la "SET RELATION TO"
Ho controllato gli archivi, ma non ho tovato niente di strano, mi potete 
dare dei consigli.
Grazie a tutti...Marco

Grazie a tutti...Marco
Prego, buon lavoro.
by(e) Doriano.
by(e) Doriano
e-mail: d.bio~n~dell@pla~n~
etsec.com
        Per rispondere, togli ~ 

 campo PNCODCA2, la stessa cosa deve avvenire per PIA_CONT e PNSOTCON
Ho verficato gli indici sono:
-CAUS_FAT ha indice su cod_caus 
-PIA_CONT ha un indice su pc_conto
ed entrambi sono attivi.
Ho notato che la funzione RECNO() restituisce sempre 251, cosa strana 
visto che il num record deve cambiare ad ogni registrazione
ciao...Marco

 ha scritto nel messaggio
news:MPG.14cce1beb...@news.interbusiness.it...


ciao...Marco
by(e) Doriano



Scusa, ma non č assolutamente vero !!
Il formato del comando SET RELATION č:
SET RELATION TO <expr> INTO <alias>
L'importante č che sull'area definita da <alias>
sia attivo un indice la cui chiave sia definita come <expr>
I nomi dei campi non contano.
Il risultato di SET RELATION č identico a quello ottenuto
effettuando a mano la SEEK, in effetti Clipper fa esattamente quello !!
Ciao
Paolo Ramozzi
paolo....@soft-com.it
www.soft-com.it


www.soft-com.it
by(e) Doriano


 campi devono essere uguali per entrambe le tabelle.
Non è vero, Doriano. I nomi dei campi possono anche essere diversi in
quanto in
SET RELATION TO expkey INTO alias
la expkey farà in generale riferimento alla tabella principale e
l'importante è che nell'area di lavoro secondaria sia attivo un indice
sul quale abbia senso una SEEK fatta con il valore di expkey.
EMG


No, non necessariamente.
<exp> è una qualsiasi espressione valida. Es.:
SET RELATION TO Left(Field,1,4) INTO MYDBF
Perchè funzioni MYDBF deve avere semplicemente un indice
con una chiave alfanumerica di 4 caratteri.
Comunque concordo con qanto dici e spesso anch'io preferivo
gestirmi le relazioni a mano con la SEEK
