Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.

SQL Anywhere 11.0.1 (中文) » SQL Anywhere 服务器 - 编程 » SQL Anywhere 数据访问 API » SQL Anywhere 嵌入式 SQL » 使用主机变量

 

声明主机变量

主机变量是通过将它们放入声明部分来定义的。按照 ANSI 嵌入式 SQL 标准,主机变量是通过用以下内容围绕常规 C 变量声明定义的:

EXEC SQL BEGIN DECLARE SECTION;
/* C variable declarations */
EXEC SQL END DECLARE SECTION;

然后,可以使用这些主机变量代替任意 SQL 语句中的值常量。在数据库服务器执行语句时,会使用主机变量的值。注意,主机变量不能用于代替表或列的名称:此参数需要动态 SQL。在 SQL 语句中,变量名以冒号 (:) 为前缀,以便与语句中允许使用的其它标识符区别开。

在 SQL 预处理器中,只在 DECLARE SECTION 内部扫描 C 语言代码。因此,在 DECLARE SECTION 内,不允许使用 TYPEDEF 类型和结构,但允许使用变量的初始化程序。

示例

下面的示例代码阐释了主机变量在 INSERT 语句中是如何使用的。这些变量由程序填充,然后插入到数据库中:

EXEC SQL BEGIN DECLARE SECTION;
long employee_number;
char employee_name[50];
char employee_initials[8];
char employee_phone[15]; 
EXEC SQL END DECLARE SECTION;
/* program fills in variables with appropriate values
*/
EXEC SQL INSERT INTO Employees
VALUES (:employee_number, :employee_name,
:employee_initials, :employee_phone );

有关更广泛的示例,请参见静态游标示例