Passa al contenuto principale

COPYDBDATA

DesktopWeb

Copia i record selezionati dalla tabella o dalla query sorgente alla tabella destinazione. I record sono selezionati mediante il criterio indicato dal parametro SELEZIONI[].

Parametri

ParametroDefinizioneI/OInformazioniVersione traduttoreSMP
TABELLASORGINDesktopWeb
TIPORECSORGINDesktopWeb
QUERYSORGLongINDesktopWeb
TABELLADESTINObbligatorioDesktopWeb
TIPORECDESTINDesktopWeb
GRUPPOSORGStringaINDesktopWeb
GRUPPODESTStringaINDesktopWeb
VIRTUALESORGInteroINDesktopWeb
VIRTUALEDESTInteroINDesktopWeb
INDINDesktopWeb
SELEZIONIINDesktopWeb
SELEZIONIESTESEINDesktopWeb
NUMRECORDLongOUTDesktopWeb
ASSEGNAINRipetibileDesktopWeb
ERROREINDesktopWeb
IDENTITYINSERTInteroIN28.1DesktopWeb
TABLOCKBooleanoIN29.1DesktopWeb

TABELLASORG

INInputValore non necessarioValore non necessarioDesktopWeb
SottoParametri

Nome del DFX della tabella sorgente da cui reperire le caratteristiche della tabella, se sono indicati il dizionario dati e la sua versione fa riferimento la 'fotografia' del DFX alla determinata versione del dizionario dati indicata.

TIPORECSORG

INInputValore non necessarioValore non necessarioDesktopWeb

Tipo record della tabella sorgente da utilizzare per la lettura della tabella. Se omesso si utilizza il primo (o unico) tipo record definito per la tabella.

QUERYSORG

LongINInputValore non necessarioValore non necessarioDesktopWeb

Indica come sorgente dei dati la query. I record letti dalla query sono inseriti nella tabella destinazione. Ogni campo della tabella destinazione è valorizzato con il campo avente alias uguale al nome interno, oppure dall'espressione definita dall'attributo ASSEGNA.

warning

Dalla versione 19.3 d'ambiente se la query sorgente specifica un ordinamento e la tabella destinazione ha un campo autoincrementale, l'ambiente preserva l'ordinamento. Detto in altri termini verrà inserito la clausola ORDER BY nella istruzione SQL INSERT ... SELECT.

TABELLADEST

INInputObbligatorioObbligatorioValore non necessarioValore non necessarioDesktopWeb
SottoParametri

Nome del DFX della tabella di destinazione da cui reperire le caratteristiche della tabella, se sono indicati il dizionario dati e la sua versione fa riferimento la 'fotografia' del DFX alla determinata versione del dizionario dati indicata.

TIPORECDEST

INInputValore non necessarioValore non necessarioDesktopWeb

Tipo record della tabella destinazione da utilizzare per la scrittura della tabella. Se omesso si utilizza il primo (o unico) tipo record definito per la tabella.

GRUPPOSORG

StringaINInputValore non necessarioValore non necessarioDesktopWeb

Definisce il valore del campo speciale DBGruppo dei record estratti dalla tabella sorgente o dalla query sorgente. Se non specificato si utilizza il valore di BCContextInfo.GetGruppo.

GRUPPODEST

StringaINInputValore non necessarioValore non necessarioDesktopWeb

Definisce il valore del campo speciale DBGruppo dei record inseriti nella tabella destinazione. Se non specificato si utilizza il valore di BCContextInfo.GetGruppo.

VIRTUALESORG

InteroINInputValore non necessarioValore non necessarioDesktopWeb

Il parametro permette la sovrapposizione tra la gestione delle tabelle su DB e la gestione delle tabelle in Struttura Dinamica relativamente alla sorgente dei dati.

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

VIRTUALEDEST

InteroINInputValore non necessarioValore non necessarioDesktopWeb

Il parametro permette la sovrapposizione tra la gestione delle tabelle su DB e la gestione delle tabelle in Struttura Dinamica relativamente alla destinazione dei dati.

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

IND

INInputValore non necessarioValore non necessarioDesktopWeb

Definisce l'indice con il quale eseguire la lettura.

SELEZIONI

INInputValore non necessarioValore non necessarioDesktopWeb

Indica una o più condizioni che se verificate fanno sì che il record sia selezionato

SELEZIONIESTESE

INInputValore non necessarioValore non necessarioDesktopWeb

Indica una o più condizioni che richiedono una sintassi estesa rispetto quanto possibile dal parametro SELEZIONI[]

NUMRECORD

LongOUTOutputValore non necessarioValore non necessarioDesktopWeb

Variabile numerica che riceve il numero di record copiati.

ASSEGNA

INInputRipetibileRipetibileValore non necessarioValore non necessarioDesktopWeb

Permette di indicare per un campo della tabella destinazione la formula di valorizzazione, indicando il campo, l'operatore di assegnazione (=) e l'espressione per valorizzare il campo.

L'espressione è una formula nella forma: <Operando> <Operatore> <Espressione> oppure <Funzione> (<Espressione>, <Espressione>, ...) <operatore> <espressione>. Se l'alias dei campi è uguale al nome abbreviato del campo (senza tipo record), l'assegnazione è automatica senza dover esplicitare il parametro ASSEGNA. Dettaglio gestione formula di valorizzazione nel parametro ASSEGNA[]. E' possibile indicare fino a 100 ricorrenze del parametro ASSEGNA[].

ERRORE

INInputValore non necessarioValore non necessarioDesktopWeb
SottoParametri

Indica un'azione da eseguire nel caso in cui non sia stato possibile inserire il record o perché esiste già la chiave o perché il disco è pieno.

IDENTITYINSERT

28.1InteroINInputValore non necessarioValore non necessarioDesktopWeb

Permette, solo in ambito DataBase, di definire il comportamento della specifica a fronte di un campo autoincrementale.

TABLOCK

29.1BooleanoINInputValore non necessarioValore non necessarioDesktopWeb

Permette di indicare l'operazione che blocca l'intera tabella durante l'esecuzione.

note
  • Il blocco è utile in particolari situazioni e va usato nei contesti in cui si è certi che non si fermi l'operatività dell'installazione.

Vantaggi:

  • Dimensione del log ridotta al minimo
  • Ottimizzazione della velocità (se siamo in un contesto di bassa concorrenza, come durante un aggiornamento di db).

Svantaggi:

  • La tabella è bloccata durante l'intera esecuzione, in caso di concorrenza si possono verificare dei blocchi.

Esempi

Definizione

 DIM famCodeFilter[STRING] = "01"

'@COPYDBDATA TABELLASORG[BLDFAMIGLIA] _
TABELLADEST[BLDFAMIGLIA TEMPORANEO] _
IND[0 \COD = ""\] _
SELEZIONI[FAMCOD$ = famCodeFilter]

Definizione con parametro ASSEGNA

  DIM idQuery[INT]

'@DEFQUERY IDQUERY[idQuery] NOME["BCRIF_COPYDBDATA_8"]


'@DEFQUERYFROM IDQUERY[idQuery] TABELLA[BLDFAMIGLIA]

'@DEFQUERYCOLUMN IDQUERY[idQuery] _
ESPR[BLDFAMIGLIA.COD AS [CodFamiglia]] _
ESPR[BLDFAMIGLIA.DATAINIZVAL AS [DataInizioVal]]

'@COPYDBDATA QUERYSORG[idQuery] _
TABELLADEST[BLDFAMIGLIA TEMPORANEO] _
IND[0 \COD = ""\] _
ASSEGNA[FAMCOD$ = BLDFAMIGLIA.COD] _
ASSEGNA[FAMDES$ = varAssegnaFamDes] _
ASSEGNA[FAMDATAINIZVAL = ALIAS["DataInizioVal"]] _
ASSEGNA[FAMDATAFINEVAL = FNDATE(2024,11,02)]