PowerBuilder 嵌入式SQL 语句
本章讨论嵌入和动态 SQL 语句,第一部分讨论如何在 SQL 语句中使用变量,以及错误处理,然后按字母顺序介绍嵌入 SQL 语句语法,最后讨论动态 SQL 语句。
1、在 PowerScript 中使用 SQL 语句
PowerScript 支持在脚本中使用标准的嵌入式 SQL 和动态 SQL 语句。PowerScript 还支持在 SQL 语句中使用数据库管理系统的语句、函数和保留字,例如在 SELECT 语句中可以使用数据库系统的内置函数。
在 SQL 中任何地点都可以使用常量和任何合法的变量,但使用变量时必须在变量名前加冒号,多个变量或常量用逗号分隔,例如:
INSERT INTO EMPLOYEE ( SALARY, AGE ) VALUES ( 18900, 30 ) ; INSERT INTO EMPLOYEE ( SALARY, AGE ) VALUES ( :Sal_var, :Age_var );
PowerBuilder 支持指示变量(indicator variable),在检索数据库后可以使用指示变量判断返回的数据是否是空值或者是否发生了转换错误。指示变量可以用在 FETCH 或 SELECT 语句中,例如下面是未加指示变量的情况:
:Name , :Address , :City
下面是在上一行中加入指示变量后的情况:
:Name :IndvName, :Address :IndvAddress, :City :IndvCity
其中在变量名后用空格分隔的为该变量的指示变量。指示变量保存的是一个 Integer 型整数,其取值和代表的意义:0 有意义的非空值;−1 空值;−2 转换错误;
可以通过检测事务对象的 SQLCode 属性,判断 SQL 语句对数据库的操作是否成功,进行错误处理,SQLCode 的属性值及其意义:0 成功;100 检索行未找到;−1 语句错误,用 SQLErrText 或 SQLDBCode 获取详情;
例如,下例中使用了 SQLCode 和 SQLErrText 属性:
IF SQLCA.SQLCode = -1 THEN MessageBox("SQL 错误",SQLCA.SQLErrText) END IF