Variabelen gebruiken in SQL-query's
In een SQL-query kunt u zowel variabele objecten als reekswaarden gebruiken. Om variabelen in een SQL-query te kunnen gebruiken, moet de query als een formule worden geschreven. Dat wil zeggen dat de query met het is-gelijkteken (=) moet beginnen en reeksen moet bevatten die met het en-teken (&) aaneen worden geschakeld.
U kunt variabelen gebruiken in plaats van tabelnamen of variabelen en tabelnamen combineren met een WHERE-clausule in plaats van filterwaarden.
Een variabele gebruiken voor de tabelnaam
In plaats van een expliciete tabelnaam op te geven, kunt u een variabele maken voor een tabelnaam en een SELECT-instructie op de variabele uitvoeren:
="SELECT * FROM "&GlobalVariables.TableName.Text
Deze instructie is gelijk aan:
SELECT * FROM [TableName]
Een variabele gebruiken voor een filterwaarde
U kunt bijvoorbeeld een variabele aanmaken voor een productnaam:
="SELECT * FROM Products WHERE ProductName =’"&
GlobalVariables.ProductName.Text&"’"
Dit is gelijk aan de volgende SELECT-instructie voor de tabel Producten:
SELECT * FROM Products WHERE ProductName= ’Widget’
Als een variabele een reekswaarde retourneert, moet deze tussen enkele aanhalingstekens (’) worden geplaatst. Als de variabele een numerieke waarde retourneert, is dat niet nodig. Bijvoorbeeld:
="SELECT * FROM Products WHERE ProductID="&
GlobalVariables.ProductID.Text
Databasespecifieke syntaxis
Er zijn verschillen in de manier waarop databaseproviders SQL implementeren. Relationele lijsten worden gedefinieerd door SQL-instructies. Het kan dus voorkomen dat rapportontwerpers verschillende versies van dezelfde instructie moeten schrijven om ervoor te zorgen dat de lijstdefinitie werkt met verschillende typen gegevensverbindingen.
Als u variabelen in SQL-query's gebruikt, hangt de vereiste syntaxis af van het type database waarvoor de query wordt geschreven. De volgende instructie is bijvoorbeeld geschreven in standaard-SQL:
=" SELECT Id, AccCde FROM LdgA where AccCde like '"&GlobalVariables.GV_WhereClause.Text&"' "
Voor een Oracle-database zou de instructie er als volgt uitzien:
=" SELECT ""Id"", ""AccCde"" FROM DES.LDGA where ""AccCde"" like '"&GlobalVariables.GV_WhereClause.Text&"' "
Voor een DB2-database zou de instructie er als volgt uitzien:
=" SELECT ""Id"", ""AccCde"" FROM ADMIN_DEV.""LdgA"" where ""AccCde"" like '"&GlobalVariables.GV_WhereClause.Text&"' "