DEFQUERYREL_LV
Permette di definire una relazione tra tabelle se questa non è presente nel dizionario dati.
Parametri
| Parametro | Definizione | I/O | Versione traduttore | SMP | |
|---|---|---|---|---|---|
| IDQUERY | Long | ||||
| OBBLIGATORIA | Intero | ||||
| OPERATOREJOIN | Stringa | ||||
| TABELLAPADRE | |||||
| TABELLAFIGLIO | |||||
| TIPORECPADRE | Stringa | ||||
| TIPORECFIGLIO | Stringa | ||||
| CAMPOPADRE | Stringa | ||||
| CAMPOFIGLIO | Stringa | ||||
| ERRORE | Intero | ||||
| CRITERIO | |||||
| COSTANTE | Variabili | ||||
| FORMULA |
IDQUERY
Identificatore della query ottenuto tramite @DEFQUERY.
OBBLIGATORIA
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.
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:
| Valore | Descrizione |
|---|---|
0 | Relazione opzionale (LEFT OUTER JOIN) |
1 | Relazione obbligatoria (INNER JOIN) |
OPERATOREJOIN
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:
| Valore | Descrizione |
|---|---|
INNER | Definizione operatore INNER JOIN |
JOIN | Definizione operatore INNER JOIN |
LEFT | Definizione operatore LEFT OUTER JOIN |
RIGHT | Definizione operatore RIGHT OUTER JOIN |
FULL | Definizione operatore FULL OUTER JOIN |
CROSS | Definizione operatore CROSS JOIN (utilizzabile solo su @DEFQUERYTABLE) |
TABELLAPADRE
Indica la tabella padre nella relazione.
TABELLAFIGLIO
Identifica la tabella figlio nella relazione.
TIPORECPADRE
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
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
Indica il campo della tabella padre che partecipa alla relazione.
CAMPOFIGLIO
Indica il campo della tabella figlia che partecipa alla relazione.
ERRORE
Consente al programma di intercettare e gestire l'errore restituito dalla funzione.
Utilizzare uno dei metodi GetLastError*() della classe BCContextInfo per ottenere le informazioni dell'errore.
CRITERIO
Consente di definire l'operatore di confronto tra i campi della relazione.
COSTANTE
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
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.
Non è possibile sostituire entrambi i campi della relazione con formule, uno dei due deve essere il campo effettivo della tabella.