Variablen in SQL-Abfragen verwenden

Sie können in einer SQL-Abfrage sowohl Variablenobjekte als auch Werte von Zeichenfolgen verwenden. Um Variablen in einer SQL-Abfrage zu verwenden, muss die Abfrage als Formel geschrieben sein, die mit dem Gleichheitszeichen (=) beginnt und deren Zeichenfolge mit Und-Zeichen (&) verknüpft ist.

Sie können Variablen statt eines Tabellennamens oder in Verbindung mit einer WHERE-Klausel anstelle von Filterwerten verwenden.

Variable für den Tabellennamen verwenden

Anstatt einen ausdrücklichen Tabellennamen festzulegen, können Sie eine Variable erstellen, die einen Tabellennamen enthält und folgendermaßen eine SELECT-Anweisung für die Variable ausführen:

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

Dies entspricht:

SELECT * FROM [TableName]
	 

Variable für einen Filterwert verwenden

Sie können eine Variable erstellen, die einen Produktnamen enthält:

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

Dies entspricht dem folgenden Select-Ergebnis aus der Tabelle Products:

SELECT * FROM Products WHERE ProductName= ’Widget’
	 

Beachten Sie, dass Variablen, die Zeichenfolgenwerte zurückgeben, in einfache Anführungszeichen gesetzt sein müssen ('). Wenn die Variable einen numerischen Wert zurückgibt, ist dies nicht erforderlich. Beispiel:

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

Datenbankspezifische Syntax

Es gibt Unterschiede in der Art der SQL-Implementierung bei Datenbank-Providern. Relationale Listen werden durch SQL-Anweisungen definiert. Somit müssen Berichts-Designer gegebenenfalls mehrere Versionen der gleichen Anweisung schreiben, um sicherzustellen, dass die Listendefinition bei unterschiedlichen Typen von Datenverbindungen ordnungsgemäß erfolgt.

Falls Sie Variablen in SQL-Abfragen verwenden, hängt die erforderliche Syntax vom Typ der Datenbank ab, für welche die Abfrage geschrieben wird. Diese Anweisung ist beispielsweise in Standard-SQL geschrieben:

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

Für eine Oracle-Datenbank würde die Anweisung lauten:

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

Für eine DB2-Datenbank würde die Anweisung lauten:

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