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&"' "