Passa al contenuto principale

SETQUERYWHERE

31.2DesktopWeb

Tramite questa funzione è possibile definire sia il filtro sulla query (clausola WHERE) che il filtro sul raggruppamento della query (clausola HAVING), se presente.

note

È possibile raggruppare in una sola specifica tutte le condizioni di filtro relative alla query. Se è necessario definire anche le condizioni di filtro per raggruppamenti, le specifiche dovranno diventare due:

  • una per le condizioni di filtro per la query: si usa il parametro ESPR[] ed il risultato finisce nella clausola WHERE;

  • l'altra per le condizioni di filtro sul raggruppamento: si usa il parametro ESPRHAVING[] ed il risultato finisce nella clausola HAVING.

Parametri

ParametroDefinizioneI/OInformazioniVersione traduttoreSMP
IDQUERYLongINObbligatorioDesktopWeb
ESPRINRipetibileDesktopWeb
ESPRHAVINGINRipetibileDesktopWeb
IDESPRStringaINRipetibileDesktopWeb
ERROREInteroINDesktopWeb

IDQUERY

LongINInputObbligatorioObbligatorioValore non necessarioValore non necessarioDesktopWeb

Identificatore della query ottenuto tramite @DEFQUERY.

ESPR

INInputRipetibileRipetibileValore non necessarioValore non necessarioDesktopWeb

Dichiarazione della condizione, all'interno dell'espressione è possibile utilizzare una subquery (o sottoquery).

ESPRHAVING

INInputRipetibileRipetibileValore non necessarioValore non necessarioDesktopWeb

Dichiarazione della condizione per il raggruppamento

IDESPR

StringaINInputRipetibileRipetibileValore non necessarioValore non necessarioDesktopWeb

Dichiarazione dell'identificatore dell'espressione.
Se non specificato e se la condizione è semplice, si assume come identificatore il primo campo dell'espressione. L'espressione è semplice quando prevede un campo, un operatore di confronto e un valore da testare (o due a seconda dell'operatore di confronto).

ERRORE

InteroINInputValore non necessarioValore non necessarioDesktopWeb
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.

Esempi

Definizione

 DIM idQuery[INT]
'@DEFQUERY IDQUERY[idQuery] NOME["BCRIF_SETQUERYWHERE_2"]

'@DEFQUERYFROM IDQUERY[idQuery] TABELLA[BLDART]

'@DEFQUERYJOIN IDQUERY[idQuery] TABELLA[BLDMARCA] TABELLAPADRE[BLDART] _
REL[BLDMARCA.COD = BLDART.CODMARCA] _
OPERATOREJOIN["INNER"]

'@DEFQUERYCOLUMN IDQUERY[idQuery] ESPR[BLDART.COD AS [CodArt]] _
ESPR[BLDART.DES AS [DesArt]] _
ESPR[BLDART.CODMARCA AS [CodMarca]] _
ESPR[BLDMARCA.DES AS [DesMarca]]

'@DEFQUERYWHERE IDQUERY[idQuery] ESPR[BLDART.COD <= "005" Or BLDART.COD >= "020"] IDESPR["CodArtFilter"] _
ESPR[BLDART.CODMARCA <> "03"]

'@DEFQUERYORDERBY IDQUERY[idQuery] ESPR[BLDART.COD]

'@SETQUERYWHERE IDQUERY[idQuery] ESPR[BETWEEN(BLDART.COD,"005","015") > 0] IDESPR["CodArtFilter"]



' Statement SQL generato prima della '@SETQUERYWHERE | Statement SQL generato dopo la 'SETQUERYWHERE
' |
' SELECT BLDArticoli.CodArt AS [CodArt] | SELECT BLDArticoli.CodArt AS [CodArt]
' ,BLDArticoli.DesArt AS [DesArt] | ,BLDArticoli.DesArt AS [DesArt]
' ,BLDArticoli.CodMarca AS [CodMarca] | ,BLDArticoli.CodMarca AS [CodMarca]
' ,BLDMarche.DesMarca AS [DesMarca] | ,BLDMarche.DesMarca AS [DesMarca]
' FROM BLDArticoli AS [BLDArticoli] | FROM BLDArticoli AS [BLDArticoli]
' INNER JOIN BLDMarche AS [BLDMarche] ON ( | INNER JOIN BLDMarche AS [BLDMarche] ON (
' BLDMarche.CodMarca = BLDArticoli.CodMarca | BLDMarche.CodMarca = BLDArticoli.CodMarca
' AND (BLDMarche.DBGruppo = BLDArticoli.DBGruppo) | AND (BLDMarche.DBGruppo = BLDArticoli.DBGruppo)
' ) | )
' WHERE ( | WHERE (
' ( | (
' BLDArticoli.CodArt <= '005' | BLDArticoli.CodArt BETWEEN '005'
' OR BLDArticoli.CodArt >= '020' | AND '015'
' ) | )
' AND (BLDArticoli.CodMarca <> '03') | AND (BLDArticoli.CodMarca <> '03')
' ) | )
' AND (BLDArticoli.DBGruppo = 'GG') | AND (BLDArticoli.DBGruppo = 'GG')
' ORDER BY [CodArt] ASC | ORDER BY [CodArt] ASC
' |
' Risultato della query | Risultato della query
' |
' CodArt DesArt CodMarca DesMarca | CodArt DesArt CodMarca DesMarca
' --------- --------------- ----------- ----------- | --------- --------------- ----------- -----------
' 001 Articolo 001 01 Marca 01 | 005 Articolo 005 01 Marca 01
' 002 Articolo 002 02 Marca 02 | 006 Articolo 006 02 Marca 02
' 004 Articolo 004 04 Marca 04 | 008 Articolo 008 04 Marca 04
' 005 Articolo 005 01 Marca 01 | 009 Articolo 009 01 Marca 01
' 020 Articolo 020 04 Marca 04 | 010 Articolo 010 02 Marca 02
' 021 Articolo 021 01 Marca 01 | 012 Articolo 012 04 Marca 04
' 022 Articolo 022 02 Marca 02 | 013 Articolo 013 01 Marca 01
' 024 Articolo 024 04 Marca 04 | 014 Articolo 014 02 Marca 02
' 025 Articolo 025 02 Marca 02 |
' 026 Articolo 026 02 Marca 02 |
' ... |