Brug af variabler i SQL-forespørgsler

Du kan bruge variabelobjekter i en SQL-forespørgsel samt strengeværdier. Hvis der bruges variabler i en SQL-forespørgsel, skal forespørgslen skrives om en formel startende med et lighedstegn (=) og indeholde strenge sammenkædet med &-tegnet.

Du kan bruge variabler i stedet for et tabelnavn eller kombinere dem med delsætningen WHERE i stedet for filterværdier.

Brug af en variabel til tabelnavnet

I stedet for at angive et specifikt tabelnavn kan du oprette en variabel til et tabelnavn og køre en udvalgt sætning for variablen:

="SELECT * FROM "&GlobalVariables.TableName.Text
	 

Dette svarer til:

SELECT * FROM [TableName]
	 

Brug af en variabel til en filterværdi

Du kan oprette en variabel, som skal indeholde et produktnavn:

="SELECT * FROM Products WHERE ProductName =’"&
		GlobalVariables.ProductName.Text&"’"
	 

Det svarer til denne Select fra tabellen Products:

SELECT * FROM Products WHERE ProductName= ’Widget’
	 

Hvis en variabel returnerer en strengeværdi, skal den angives i enkelte anførselstegn (’). Hvis variablen returnerer en numerisk værdi, er dette ikke nødvendigt. Eksempel:

="SELECT * FROM Products WHERE ProductID="&
		GlobalVariables.ProductID.Text
	 

Databasespecifik syntaks

Der er forskel på, hvordan databaseudbydere implementerer SQL. Relationslister defineres af SQL-sætninger. Rapportdesignere kan være nødt til at skrive flere versioner af den samme sætning for at sikre, at listedefinitionen fungerer med forskellige typer dataforbindelse.

Hvis du bruger variabler i SQL-forespørgsler, afhænger den påkrævede syntaks af den type database, forespørgslen er skrevet til. For eksempel skrives denne sætning i standard-SQL:

=" SELECT Id, AccCde FROM LdgA where AccCde like '"&GlobalVariables.GV_WhereClause.Text&"' "

For en Oracle-database er sætningen:

=" SELECT ""Id"", ""AccCde"" FROM DES.LDGA where ""AccCde"" like '"&GlobalVariables.GV_WhereClause.Text&"' "

For en DB2-database er sætningen:

=" SELECT ""Id"", ""AccCde"" FROM ADMIN_DEV.""LdgA"" where ""AccCde"" like '"&GlobalVariables.GV_WhereClause.Text&"' "