Sử dụng biến trong câu lệnh truy vấn SQL

Bạn có thể sử dụng đối tượng biến trong câu lệnh truy vấn SQL cũng như giá trị chuỗi. Để sử dụng biến trong câu lệnh truy vấn SQL, truy vấn phải được ghi dưới dạng công thức, bắt đầu bằng ký hiệu (=) và chứa các chuỗi được ghép nối bằng dấu và (&).

Bạn có thể sử dụng biến ở vị trí tên bảng hoặc kết hợp chúng với mệnh đề WHERE, tại vị trí giá trị bộ lọc.

Sử dụng biến cho tên bảng

Thay vì xác định tên bảng rõ ràng, bạn có thể tạo biến để giữ tên bảng và chạy câu lệnh chọn trên biến:

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

Điều đó tương đương với:

SELECT * FROM [TableName]
	 

Sử dụng biến cho giá trị bộ lọc

Bạn có thể tạo biến để giữ tên sản phẩm:

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

Điều này có thể tương đương với việc Chọn này từ bảng Sản phẩm:

SELECT * FROM Products WHERE ProductName= ’Widget’
	 

Trong đó, biến sẽ trả về giá trị chuỗi thì biến phải được đính kèm trong một dấu ngoặc kép ('). Trong đó, biến trả về một giá trị số không cần thiết. Ví dụ:

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

Cú pháp dành riêng cho cơ sở dữ liệu

Có sự khác biệt theo cách mà nhà cung cấp cơ sở dữ liệu thực hiện SQL. Danh sách liên quan được xác định theo câu lệnh SQL. Vì vậy, trình thiết kế báo cáo có thể phải ghi một số phiên bản của cùng câu lệnh để đảm bảo rằng định nghĩa danh sách sẽ hoạt động với các loại kết nối dữ liệu khác nhau.

Nếu bạn sử dụng các biến trong câu lệnh truy vấn SQL, cú pháp yêu cầu sẽ phụ thuộc vào loại cơ sở dữ liệu mà truy vấn được ghi. Ví dụ: câu lệnh này được ghi trong SQL tiêu chuẩn:

=" SELECT Id, AccCde FROM LdgA trong đó AccCde giống như '"&GlobalVariables.GV_WhereClause.Text&"' "

Đối với cơ sở dữ liệu Oracle, câu lệnh sẽ là:

=" SELECT ""Id"", ""AccCde"" FROM DES.LDGA trong đó ""AccCde"" giống như '"&GlobalVariables.GV_WhereClause.Text&"' "

Đối với cơ sở dữ liệu DB2, câu lệnh sẽ là:

=" SELECT ""Id"", ""AccCde"" FROM ADMIN_DEV.""LdgA"" trong đó ""AccCde"" giống như '"&GlobalVariables.GV_WhereClause.Text&"' "