ER-funktionen VALUEINLARGE
Funktionen VALUEINLARGE
afgør, om det angivne input af typen Int64 eller Heltal svarer til en værdi for et angivet element på den angivne liste. Funktionen returnerer en Boolesk værdi som værende SAND, hvis det angivne input svarer til resultatet af kørslen med det angivne udtryk for mindst én post på den angivne liste. Ellers returneres en Boolesk værdi på FALSK. Hvis du vil forstå forskellen med VALUEIN
-funktionen, skal du se afsnittet Bemærkninger til brug senere i denne artikel.
Syntaks
VALUEINLARGE (input, list, list item expression)
Argumenter
input
: Felt
Den gyldige sti til et datakildeelement af typen Postliste. Værdien af dette element bliver sammenlignet.
list
: Liste over poster
Den gyldige sti til en datakilde af datatypen Postliste.
list item expression
: Betingelse
Et gyldigt betinget udtryk, der enten peger på eller indeholder et enkelt felt fra den angivne liste, som skal bruges til sammenligningen.
Returnerede værdier
Boolesk
Den resulterende Booleske værdi.
Bemærkninger til brug
Når det angivne input repræsenterer en Int64- eller Heltal-type for et datakildeelement, vil det kald, der kan oversættes til en direkte SQL-sætning, blive konverteret til en midlertidig SQL-tabel, og matchning udføres i databasen ved at udføre en enkelt EXISTS JOIN
-forespørgsel. Ellers virker denne funktion som funktionen VALUEIN
.
Når det angivne input repræsenterer et datakildeelement, der er designet som et andet element end Int64- og Heltal-typen, opstår der en fejl, på designtidspunktet om, at VALUEINLARGE
-funktionen ikke kan anvendes til det konfigurerede ER-udtryk.
Når VALUEINLARGE
-funktionsudtrykket udføres, og der bruges mere end én midlertidig tabel i området for denne udførelse, opstår der en kørselsfejl.
Eksempel
Du definerer følgende datakilder i din modeltilknytning:
- Datakilden In for typen Tabelpost.
- Denne datakilde refererer til Intrastat-tabellen.
- Indstillingen På tværs af firma er angivet til Nej.
- Datakilden InMemory af typen Beregnet felt.
- Denne datakilde indeholder udtrykket
WHERE (In, In.Port <> "")
.
- Denne datakilde indeholder udtrykket
- Datakilden InFiltered af typen Beregnet felt.
- Denne datakilde indeholder udtrykket
FILTER (In, VALUEINLARGE(In.RecId, InMemory, InMemory.RecId)
.
- Denne datakilde indeholder udtrykket
Når datakilden InFiltered kaldes i konteksten af firmaet DEMF, oprettes der en ny midlertidig tabel i programdatabasen, den indsamlede liste over postidentifikationskoder i hukommelsen indsættes i denne tabel, og følgende SQL-sætning genereres for at returnere filtrerede poster i Intrastat-tabellen.
SELECT … from Intrastat T1
WHERE ((T1.PARTITION=?) AND (T1.DATAAREAID IN (N'DEMF'))) AND
EXISTS (SELECT 'x' FROM tempdb."DBO".? T2 WHERE ((T2.PARTITION=?) AND (T1.RecId=T2.RecId)))