Passa al contenuto principale

GETQUERYDATA

DesktopWeb
Obsoleti

Permette di eseguire la lettura dei dati sul Database di riferimento utilizzando la query precedentemente definita mediante@DEFQUERY.
Le attività compiute dalla specifica sono:

  • se viene eseguito il posizionamento, le variabili di programma associate ai parametri della query (mediante l'uso delle specifiche @DEFQUERYPARAM, @BINDQUERYPARAM) sono lette ed utilizzate per l'interrogazione della base dati
  • i dati letti sono restituiti, riga per riga, nelle variabili di programma associate ai campi mediante la specifica @DEFQUERYCOLUMN /@BINDQUERYCOLUMN

Parametri

ParametroDefinizioneI/OInformazioniVersione traduttoreSMP
IDQUERYLongINDesktopWeb
POSIZIONAInteroRefDesktopWeb
INDINRipetibileDesktopWeb
CONTROLLIAzioneINDesktopWeb
INIZIOGRUPPOAzioneINDesktopWeb
LOOPGRUPPOAzioneINDesktopWeb
FINEGRUPPOAzioneINDesktopWeb
ORDINELETTURAInteroINDesktopWeb
ORDINAMENTOInteroINDesktopWeb
STRUTTURAINDesktopWeb
VIRTUALEInteroINDesktopWeb
POSITIONBLOCKInteroINDesktop
RECORDSLongOUTDesktopWeb
RECORDClasseINObsoletoDesktopWeb
OGGETTOClasseINDesktopWeb
ERROREINValore non necessarioDesktopWeb
RECORDSETCollezioneRefObsoletoDesktopWeb
COLLEZIONECollezioneINDesktopWeb
INDICECORRENTEInteroINDesktop
GRUPPOCORRENTEVariabileINDesktopWeb
VARCONTROLLIVariabileINDesktop
TIPORECINDesktop
VINCOLIInteroINDesktop
VELOCEInteroINValore non necessarioDesktop
AZIONEIN29.3DesktopWeb

IDQUERY

LongINInputValore non necessarioValore non necessarioDesktopWeb

Identificatore della query ottenuto tramite @DEFQUERY.

POSIZIONA

InteroRefReferenzaValore non necessarioValore non necessarioDesktopWeb

Indica la gestione del posizionamento all'interno della collezione.

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

ValoreDescrizione
0non deve essere eseguito il posizionamento (essendo già stato eseguito da una operazione precedente)
1deve essere eseguito il posizionamento con la chiave indicata sulla specifica
2deve essere eseguito il posizionamento con position-block

IND

INInputRipetibileRipetibileValore non necessarioValore non necessarioDesktopWeb

Definisce l'indice con il quale eseguire la lettura.

CONTROLLI

AzioneINInputValore non necessarioValore non necessarioDesktopWeb

Indica la routine che deve essere eseguita per la validazione del record letto.

INIZIOGRUPPO

AzioneINInputValore non necessarioValore non necessarioDesktopWeb

Indica la routine richiamata per gestire l'inizio della lettura dei record che rientrano in un gruppo.

LOOPGRUPPO

AzioneINInputValore non necessarioValore non necessarioDesktopWeb

Se presente, legge tutti i record del resultset e richiama la routine indicata per ogni record (dopo l'eventuale filtro operato dalla routine specificata dall'attributo CONTROLLI).

FINEGRUPPO

AzioneINInputValore non necessarioValore non necessarioDesktopWeb

Indica la routine richiamata per gestire la fine della lettura dei record che rientrano in un gruppo.

ORDINELETTURA

InteroINInputValore non necessarioValore non necessarioDesktopWeb

Indica l'ordine di lettura crescente o decrescente.

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

ValoreDescrizione
0Lettura dei record mediante l'indice in ordine crescente
1lattura dei record mediante l'indice in ordine decrescente

ORDINAMENTO

InteroINInputValore non necessarioValore non necessarioDesktopWeb

Indica quale indice di ordinamento utilizzare nel caso non siano stati specificati attributi IND.

STRUTTURA

INInputValore non necessarioValore non necessarioDesktopWeb
SottoParametri

Identifica la struttura sulla quale si intende eseguire l'inserimento dei dati letti dalla '@GETQUERYDATA.

note

Con il parametro MAXRECORD è possibile definire un numero massimo di record caricati sulla struttura dinamica.

VIRTUALE

InteroINInputValore non necessarioValore non necessarioDesktopWeb

Permette la sovrapposizione tra la gestione delle tabelle su DB e la gestione delle tabelle in Struttura Dinamica.

warning

L'utilizzo del parametro VIRTUALE è subordinato alla sola definizione della query tramite @DEFQUERYSPEC con parametro

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

ValoreDescrizione
0la specifica gestisce il normale accesso alla tabella del DataBase.
1la specifica gestisce l'accesso alla Struttura Dinamica in memoria, struttura definita con lo stesso nome del DFX della tabella.
2la specifica gestisce solo l'accesso alla Struttura per le operazioni di LETTURA, mentre vengono gestiti sia il DB che la Struttura per le operazioni di SCRITTURA/CANCELLAZIONE

L'utilizzo del parametro esclude l'utilizzo dei parametri: RECORDS, AZIONE

POSITIONBLOCK

InteroINInputValore non necessarioValore non necessarioDesktop
note

Dalla versione di traduttore 26.0 il funzionamento delle specifiche di accesso alla base dati GETDBDATA e GETQUERYDATA modificano il loro comportamento di default per aumentare le prestazioni.

Ritraducendo un sorgente con 26.0 il calcolo del position block non viene più effettuato, tranne nei casi: GETDBDATA / GETQUERYDATA collegato a griglia standard Valorizzazione di ZDB_OPTDB_<DFX> ( con un valore diverso da 0) per ottimizzare le letture.

warning

I sorgenti che non vengono ritradotti con il traduttore 26.0 e versioni successive non modificano il comportamento delle specifiche GETDBDATA / GETQUERYDATA.

RECORDS

LongOUTOutputValore non necessarioValore non necessarioDesktopWeb

Restituisce il numero di record presenti nel record-set restituito dall'esecuzione della query.

warning

Il parametro non è compatibile con il parametro VIRTUALE.

RECORD

ClasseINInputObsoletoObsoletoValore non necessarioValore non necessarioDesktopWeb
warning

Il parametro è stato disponibile fino alla versione 24.1, è stato sostituito dal parametro OGGETTO[].

OGGETTO

ClasseINInputValore non necessarioValore non necessarioDesktopWeb

Indica il nome della variabile di tipo oggetto che conterrà la riga della tabella letta.

ERRORE

INInputDesktopWeb
SottoParametri

Indica un'azione da eseguire nel caso in cui sia stata raggiunta la fine/inizio del file, nel caso in cui siano terminati i record che soddisfano i filtri indicati nel parametro SELEZIONI[] o nel caso in cui l'archivio non esista

RECORDSET

CollezioneRefReferenzaObsoletoObsoletoValore non necessarioValore non necessarioDesktopWeb
warning

Il parametro è stato disponibile fino alla versione 24.1, è stato sostituito dal parametro COLLEZIONE[].

COLLEZIONE

CollezioneINInputValore non necessarioValore non necessarioDesktopWeb

Indica il nome della variabile di tipo collezione che conterrà le righe restituite dalla specifica.

warning

La collezione viene svuotata prima di estrarre i dati.

L'utilizzo del parametro esclude l'utilizzo del parametro RECORDSET

INDICECORRENTE

InteroINInputValore non necessarioValore non necessarioDesktop

Indica l'indice corrente.

GRUPPOCORRENTE

VariabileINInputValore non necessarioValore non necessarioDesktopWeb

Variabile che conterrà l'indicazione del gruppo corrente all'interno delle callback di gestione dei gruppi (si sostituisce a ZDB_GRUPPOCORR_IdQuery).

VARCONTROLLI

VariabileINInputValore non necessarioValore non necessarioDesktop

La variabile su cui sono presenti i vari controlli.

TIPOREC

INInputValore non necessarioValore non necessarioDesktop

Tipo record della tabella

VINCOLI

InteroINInputValore non necessarioValore non necessarioDesktop

Permette di abilitare la gestione della profilazione se la tabella è soggetta a un vincolo di tipo elenco, inserendo in modo automatico delle clausole SQL da parte dell'ambiente, per filtrare gli elementi della tabella

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

ValoreDescrizione
0No
1Si

VELOCE

InteroINInputDesktop

Questa funzionalità permette di utilizzare il record set di ritorno dal database come se fosse una tabella i cui elementi sono accessibili mediante indice.

AZIONE

29.3INInputValore non necessarioValore non necessarioDesktopWeb
SottoParametri

Permette di indicare una callback per l'elaborazione dei dati.

L'utilizzo del parametro esclude l'utilizzo dei parametri: RECORDS, CONTROLLI

Esempi

Definizione con parametro COLLEZIONE

 DIM families[CLASSE[BLD_FAMIGLIA] COLLEZIONE]

'@DEFQUERY IDQUERY[IdQry] NOME["BCRIF_GETQUERYDATA_4"]

'@DEFQUERYFROM IDQUERY[IdQry] TABELLA[BLDFAMIGLIA]

'@DEFQUERYCOLUMN IDQUERY[IdQry] ESPR[BLDFAMIGLIA.COD AS [CodFamiglia]] _
ESPR[BLDFAMIGLIA.DES AS [DesFamiglia]] _
ESPR[BLDFAMIGLIA.CODMACRO AS [CodMacrofamiglia]] _
ESPR[BLDFAMIGLIA.DATAINIZVAL AS [DataInizioVal]] _
ESPR[BLDFAMIGLIA.DATAFINEVAL AS [DataFineVal]]

'@GETQUERYDATA IDQUERY[IdQry] COLLEZIONE[families]

Definizione con parametro AZIONE

 DIM families[CLASSE[BLD_FAMIGLIA] COLLEZIONE]
DIM fam[CLASSE[BLD_FAMIGLIA]]

'@DEFQUERY IDQUERY[IdQry] NOME["BCRIF_GETQUERYDATA_4"]

'@DEFQUERYFROM IDQUERY[IdQry] TABELLA[BLDFAMIGLIA]

'@DEFQUERYCOLUMN IDQUERY[IdQry] ESPR[BLDFAMIGLIA.COD AS [CodFamiglia]] _
ESPR[BLDFAMIGLIA.DES AS [DesFamiglia]] _
ESPR[BLDFAMIGLIA.CODMACRO AS [CodMacrofamiglia]] _
ESPR[BLDFAMIGLIA.DATAINIZVAL AS [DataInizioVal]] _
ESPR[BLDFAMIGLIA.DATAFINEVAL AS [DataFineVal]]

families.Clear()

'@GETQUERYDATA IDQUERY[IdQry] OGGETTO[fam] AZIONE[GES[PopulateCollection(fam [INOUT])]]

Definizione con ciclo di lettura dati

 DIM endRead[TIPO[BCBOOL]] = #False
DIM varPosition[INT] = 1

'@DEFQUERY IDQUERY[IdQry] NOME["BCRIF_GETQUERYDATA_4"]

While Not endRead

'@GETQUERYDATA IDQUERY[IdQry] POSIZIONA[varPosition] ERRORE[endRead = #True]

If endRead Then ExitWhile

DataElaboration()

EndWhile