Risoluzione degli overload delle funzioni
In questo argomento viene descritto come vengono risolte le funzioni Entity SQL.
È possibile definire più di una funzione con lo stesso nome, a condizione che le funzioni dispongano di firme univoche.
In una situazione di questo tipo, è necessario applicare i criteri seguenti per determinare la funzione a cui una determinata espressione fa riferimento. Questi criteri vengono applicati in sequenza. Il primo criterio che si applica solo a un'unica funzione rappresenta la funzione risolta.
Numero di parametri. La funzione ha lo stesso numero di parametri specificato nell'espressione.
Corrispondenza esatta del tipo. Ogni tipo di argomento della funzione corrisponde esattamente al tipo di parametro o è costituito dal valore letterale Null.
Corrispondenza del sottotipo. Ogni tipo di argomento della funzione corrisponde esattamente al tipo di parametro o è un sottotipo del tipo di parametro oppure l'argomento è costituito dal valore letterale Null. Nel caso in cui diverse funzioni differiscano solo nel numero di conversioni dei sottotipi richieste, la funzione con il minor numero di conversioni dei sottotipi è la funzione risolta.
Corrispondenza del sottotipo o promozione del tipo. Ogni tipo di argomento della funzione corrisponde esattamente al tipo di parametro o è un sottotipo del tipo di parametro o può essere promosso al tipo di parametro oppure l'argomento è costituito dal valore letterale Null. Anche in questo caso, se diverse funzioni differiscono solo nel numero di promozioni e di conversioni dei sottotipi, la funzione con il minor numero di promozioni e di conversioni dei sottotipi è la funzione risolta.
Se nessuno di questi criteri consente la selezione di una singola funzione, l'espressione di chiamata della funzione è ambigua.
Anche nel caso in cui utilizzando queste regole sia possibile estrarre una singola funzione, gli argomenti potrebbero comunque non corrispondere ai parametri. In tal caso, viene generato un errore.
Vedere anche
Concetti
Riferimenti a Entity SQL
Panoramica su Entity SQL
Funzioni (Entity SQL)