在 SQL 查询中使用变量
可在 SQL 查询和字符串值中使用变量对象。若要在 SQL 查询中使用变量,必须以公式的形式编写查询,必须以等号 (=) 开头,还必须含有用 & 连接的字符串。
可以使用变量替代表名称,也可将其与 WHERE 子句一同使用,替代筛选器值。
变量用于表名称
可不指定明确的表名称,转而创建变量以存储表名称,然后对变量执行选择语句:
="SELECT * FROM "&GlobalVariables.TableName.Text
以上代码相当于:
SELECT * FROM [TableName]
变量用于筛选器值
可创建变量以存储产品名称:
="SELECT * FROM Products WHERE ProductName =’"&
GlobalVariables.ProductName.Text&"’"
以上代码相当于下面的从“产品”表中选择的语句:
SELECT * FROM Products WHERE ProductName= ’Widget’
如果变量返回的是字符串值,则必须在其两侧添加单引号 (’)。如果变量返回的是数值,则不必执行上述操作。例如:
="SELECT * FROM Products WHERE ProductID="&
GlobalVariables.ProductID.Text
特定于数据库的语法
数据库提供程序实施 SQL 有不同的方法。关系列表由 SQL 语句定义。因此,报告设计器必须写入同一语句的若干版本,以确保列表定义能够用于不同类型的数据连接。
如果在 SQL 查询中使用变量,则所需的语法将取决于写入查询的数据库类型。例如,此语句以标准的 SQL 形式写入:
=" SELECT Id AccCde FROM LdgA where AccCde like '"&GlobalVariables.GV_WhereClause.Text&"' "
对于 Oracle 数据库,语句为:
=" SELECT Id, AccCde FROM LdgA where AccCde like '"&GlobalVariables.GV_WhereClause.Text&"' "
对于 DB2 数据库,语句为:
=" SELECT ""Id"", ""AccCde"" FROM ADMIN_DEV.""LdgA"" where ""AccCde"" like '"&GlobalVariables.GV_WhereClause.Text&"' "