主机变量是通过将它们放入声明部分来定义的。按照 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 ); |
有关更广泛的示例,请参见静态游标示例。
Copyright © 2009, iAnywhere Solutions, Inc. - SQL Anywhere 11.0.1 |