Passa al contenuto principale

DEFQUERYREL_LV

31.1DesktopWeb
warning
La specifica è deprecata nei sorgenti con STRICT maggiore o uguale a 3, al suo posto vedere specifica DEFQUERYJOIN

Permette di definire una relazione tra tabelle se questa non è presente nel dizionario dati.

Parametri

ParametroDefinizioneI/OInformazioniVersione traduttoreSMP
IDQUERYLongINObbligatorioDesktopWeb
OBBLIGATORIAInteroINDesktopWeb
OPERATOREJOINStringaINDesktopWeb
TABELLAPADREINDesktopWeb
TABELLAFIGLIOINDesktopWeb
TIPORECPADREStringaINDesktop
TIPORECFIGLIOStringaINDesktop
CAMPOPADREStringaINDesktopWeb
CAMPOFIGLIOStringaINDesktopWeb
ERROREInteroINDesktop
CRITERIOINDesktop
COSTANTEVariabiliINDesktopWeb
FORMULAINDesktop

IDQUERY

LongINInputObbligatorioObbligatorioValore non necessarioValore non necessarioDesktopWeb

Identificatore della query ottenuto tramite @DEFQUERY.

OBBLIGATORIA

InteroINInputValore non necessarioValore non necessarioDesktopWeb

Identifica se la relazione di esistenza del record è obbligatoria (non sono ammessi valori nulli): corrisponde all'applicazione della clausola INNER JOIN tra le due tabelle oggetto della relazione.
Il default per la relazione è opzionale (ovvero di documentazione): corrisponde all'applicazione della clausola LEFT OUTER JOIN tra le due tabelle oggetto della relazione.

warning

Se è indicato anche il parametro OPERATOREJOIN, viene restituito errore in traduzione, in quanto il parametro OBBLIGATORIA corrisponde a OPERATOREJOIN[INNER]. Per questo motivo, il parametro OBBLIGATORIA è da considerarsi deprecato e sostituibile con OPERATOREJOIN[INNER], tranne nei casi in cui il parametro sia una variabile di tipo numerico e non la costante '1' (uno).

Parametro con valori ammessi, si possono utilizzare i seguenti valori:

ValoreDescrizione
0Relazione opzionale (LEFT OUTER JOIN)
1Relazione obbligatoria (INNER JOIN)

OPERATOREJOIN

StringaINInputValore non necessarioValore non necessarioDesktopWeb

Consente di definire il tipo di operatore di JOIN da utilizzare per la relazione. Se non è indicato l'operatore si considera l'operatore che deriva dal parametro OBBLIGATORIA[], ovvero JOIN se la relazione è obbligatoria, LEFT OUTER JOIN se la relazione è opzionale.

Parametro con valori ammessi, si possono utilizzare i seguenti valori:

ValoreDescrizione
INNERDefinizione operatore INNER JOIN
JOINDefinizione operatore INNER JOIN
LEFTDefinizione operatore LEFT OUTER JOIN
RIGHTDefinizione operatore RIGHT OUTER JOIN
FULLDefinizione operatore FULL OUTER JOIN
CROSSDefinizione operatore CROSS JOIN (utilizzabile solo su @DEFQUERYTABLE)

TABELLAPADRE

INInputValore non necessarioValore non necessarioDesktopWeb
SottoParametri

Indica la tabella padre nella relazione.

TABELLAFIGLIO

INInputValore non necessarioValore non necessarioDesktopWeb
SottoParametri

Identifica la tabella figlio nella relazione.

TIPORECPADRE

StringaINInputValore non necessarioValore non necessarioDesktop

Identifica il tipo record relativo al dfx padre (nel caso di multi-tipo record).
Se non indicato, viene considerato l'unico tipo record presente nel dfx padre.

TIPORECFIGLIO

StringaINInputValore non necessarioValore non necessarioDesktop

Identifica il tipo record relativo al dfx figlio (nel caso di multi-tipo record).
Se non indicato, viene considerato l'unico tipo record presente nel dfx figlio.

CAMPOPADRE

StringaINInputValore non necessarioValore non necessarioDesktopWeb

Indica il campo della tabella padre che partecipa alla relazione.

CAMPOFIGLIO

StringaINInputValore non necessarioValore non necessarioDesktopWeb

Indica il campo della tabella figlia che partecipa alla relazione.

ERRORE

InteroINInputValore non necessarioValore non necessarioDesktop
SottoParametri

Consente al programma di intercettare e gestire l'errore restituito dalla funzione.

suggerimento

Utilizzare uno dei metodi GetLastError*() della classe BCContextInfo per ottenere le informazioni dell'errore.

CRITERIO

INInputValore non necessarioValore non necessarioDesktop

Consente di definire l'operatore di confronto tra i campi della relazione.

COSTANTE

VariabiliINInputValore non necessarioValore non necessarioDesktopWeb

In taluni casi il campo della tabella figlia non deve essere confrontato con un campo della tabella padre ma piuttosto con un valore costante. In questo caso si omette l'attributo CAMPOPADRE e si indica il valore costante mediante quest'attributo.
Lo stesso ragionamento è applicabile nel caso in cui è il campo padre a dover essere confrontato con un valore costante.

FORMULA

INInputValore non necessarioValore non necessarioDesktop

In taluni casi uno dei due campi in relazione non è il campo effettivo della tabella, ma un campo derivante da una formula applicata sullo stesso. In questo caso si omette uno dei due campi in relazione (ovvero o il parametro CAMPOPADRE, o il parametro CAMPOFIGLIO) e al suo posto si definisce il parametro FORMULA.

warning

Non è possibile sostituire entrambi i campi della relazione con formule, uno dei due deve essere il campo effettivo della tabella.