DEFQUERYCOLUMN
Permette di definire le colonne che devono essere restituite dall'esecuzione della query.
Consente di definire uno o più colonne sulla stessa specifica.
Parametri
| Parametro | Definizione | I/O | Versione traduttore | SMP | |
|---|---|---|---|---|---|
| IDQUERY | Long | ||||
| ESPR | |||||
| VAR | Variabile | ||||
| ERRORE | Intero | ||||
| NOOUTPUT | Intero | ||||
| ETICHETTA | Stringa |
IDQUERY
Identificatore della query ottenuto tramite @DEFQUERY.
L'utilizzo del parametro esclude l'utilizzo del parametro QUERY
ESPR
Indicazione del campo di una tabella della query.
Dalla versione 22.0 del traduttore è possibile fare in modo che siano scaricati tutti i campi della tabella indicando il carattere '' (asterisco) per il nome del campo. (es: ESPR[<nome tabella>.])
Dalla versione 23.2 del traduttore è possibile fare in modo che siano scaricati tutti gli alias dei campi della tabella, per la lettura tramite variabili di tipo oggetto e di tipo collezione, utilizzando la sintassi ESPR[<nome tabella>.* AS [*]]. In questo caso l'alias attribuito al campo è il nome breve.
VAR
Indica la variabile di programma che è associata al campo eventualmente dimensionata
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.
NOOUTPUT
Indica se la colonna NON deve apparire nel resultset
Parametro con valori ammessi, si possono utilizzare i seguenti valori:
| Valore | Descrizione |
|---|---|
0 | la colonna appare nel resultset |
1 | la colonna non appare nel resultset |
ETICHETTA
Individua l'eventuale etichetta da usare per la specifica @RUNQUERY per etichettare il campo.
Esempi
Definizione
DIM IdQuery[INT]
'@DEFQUERY IDQUERY[IdQuery] NOME["BCRIF_DEFQUERYCOLUMN_2"]
'@DEFQUERYFROM IDQUERY[IdQuery] TABELLA[BLDART]
'@DEFQUERYJOIN IDQUERY[IdQuery] TABELLA[BLDFAMIGLIA] TABELLAPADRE[BLDART] _
REL[BLDFAMIGLIA.COD = BLDART.CODFAM] _
OPERATOREJOIN["INNER"]
'@DEFQUERYCOLUMN IDQUERY[IdQuery] ESPR[BLDART.PREZZO AS [PrezzoMedio]] _
ESPR[BLDART.COD AS [NumeroArticoli]] _
ESPR[BLDFAMIGLIA.COD AS [CodFamiglia]] _
ESPR[BLDFAMIGLIA.DES AS [DesFamiglia]]
' Statement SQL generato
'
' SELECT BLDArticoli.CodArt AS [CodArt]
' ,BLDArticoli.DesArt AS [DesArt]
' ,BLDFamiglie.CodFamiglia AS [CodFamiglia]
' ,BLDFamiglie.DesFamiglia AS [DesFamiglia]
' FROM BLDArticoli AS [BLDArticoli]
' INNER JOIN BLDFamiglie AS [BLDFamiglie] ON (
' BLDFamiglie.CodFamiglia = BLDArticoli.CodFamiglia
' AND (BLDFamiglie.DBGruppo = BLDArticoli.DBGruppo)
' )
' WHERE (BLDArticoli.DBGruppo = 'GG')
'
' Risultato della query
'
' CodArt DesArt CodFamiglia DesFamiglia
' --------- --------------- -------------- --------------
' 001 Articolo 001 01 Famiglia 01
' 007 Articolo 007 01 Famiglia 01
' 013 Articolo 013 01 Famiglia 01
' 019 Articolo 019 01 Famiglia 01
' 025 Articolo 025 01 Famiglia 01
' 026 Articolo 026 01 Famiglia 01
' 027 Articolo 027 01 Famiglia 01
' 002 Articolo 002 02 Famiglia 02
' 008 Articolo 008 02 Famiglia 02
' 014 Articolo 014 02 Famiglia 02
' ...
Definizione con raggruppamenti
DIM IdQuery[INT]
'@DEFQUERY IDQUERY[IdQuery] NOME["BCRIF_DEFQUERYCOLUMN_2"]
'@DEFQUERYFROM IDQUERY[IdQuery] TABELLA[BLDART]
'@DEFQUERYJOIN IDQUERY[IdQuery] TABELLA[BLDFAMIGLIA] TABELLAPADRE[BLDART] _
REL[BLDFAMIGLIA.COD = BLDART.CODFAM] _
OPERATOREJOIN["INNER"]
'@DEFQUERYCOLUMN IDQUERY[IdQuery] ESPR[AVG(BLDART.PREZZO) AS [PrezzoMedio]] _
ESPR[COUNT(BLDART.COD) AS [NumeroArticoli]] _
ESPR[GROUPBY(BLDFAMIGLIA.COD) AS [CodFamiglia]] _
ESPR[GROUPBY(BLDFAMIGLIA.DES) AS [DesFamiglia]]
' Statement SQL generato
'
' SELECT AVG(BLDArticoli.Prezzo) AS [PrezzoMedio]
' ,COUNT(BLDArticoli.CodArt) AS [NumeroArticoli]
' ,BLDFamiglie.CodFamiglia AS [CodFamiglia]
' ,BLDFamiglie.DesFamiglia AS [DesFamiglia]
' FROM BLDArticoli AS [BLDArticoli]
' INNER JOIN BLDFamiglie AS [BLDFamiglie] ON (
' BLDFamiglie.CodFamiglia = BLDArticoli.CodFamiglia
' AND (BLDFamiglie.DBGruppo = BLDArticoli.DBGruppo)
' )
' WHERE (BLDArticoli.DBGruppo = 'GG')
' GROUP BY BLDFamiglie.CodFamiglia
' ,BLDFamiglie.DesFamiglia
'
' Risultato della query
'
' PrezzoMedio NumeroArticoli CodFamiglia DesFamiglia
' -------------- ----------------- -------------- --------------
' 54.890000 7 01 Famiglia 01
' 47.470000 5 02 Famiglia 02
' 36.756000 5 03 Famiglia 03
' 45.466666 3 04 Famiglia 04
' 38.561250 8 05 Famiglia 05
' 129.000000 1 06 Famiglia 06