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

SQL Anywhere 12.0.1 » SQL Anywhere 服务器 - 编程 » 嵌入式 SQL » 静态和动态 SQL

 

动态 SQL 语句

在 C 语言中,字符串存储在字符数组中。动态语句是用 C 语言字符串构造的。然后,可以使用 PREPARE 和 EXECUTE 语句执行这些语句。这些 SQL 语句无法按与静态语句相同的方式引用主机变量,因为在执行 C 程序时无法通过名称访问 C 语言变量。

要在语句与 C 语言变量之间传递信息,请使用名为 SQL 描述符区域 (SQLDA) 的数据结构。如果您在 EXECUTE 语句的 USING 子句中指定一组主机变量,则 SQL 预处理器会为您建立此结构。这些变量按位置对应于预准备语句相应位置中的占位符。

占位符放入语句中是为了指示要访问主机变量的位置。占位符可以是问号 (?),也可以是静态语句中的主机变量引用(主机变量名之前有一个冒号)。在后一种情况下,在语句的实际文本中使用的主机变量名仅充当占位符,指示对 SQL 描述符区域的引用。

用于向数据库传递信息的主机变量称为绑定变量

 示例
 SQLDA 的内容
 指示符变量和 NULL
 另请参见