pb 执行sql怎么判读插入、删除数据条数
时间: 2023-02-09 11:55:19 浏览: 134
在使用 PB 语言执行 SQL 语句时,可以使用 `SQLExec()` 函数来执行 INSERT、DELETE 等操作。在执行完这些操作之后,可以使用 `SQLCA.SQLRowsAffected` 来判断影响的行数。
例如,在执行 DELETE 语句之后,可以使用如下代码来判断删除的行数:
```
SQLExec("DELETE FROM table WHERE condition = 1");
if SQLCA.SQLRowsAffected > 0 then
// 删除了至少一行数据
else
// 没有删除任何数据
end if;
```
同样的,在执行 INSERT 语句之后,也可以使用 `SQLCA.SQLRowsAffected` 来判断插入的行数。
需要注意的是,如果执行的 SQL 语句出现错误,那么 `SQLCA.SQLRowsAffected` 的值可能不正确。因此,建议在使用 `SQLCA.SQLRowsAffected` 判断操作结果之前,先检查 `SQLCA.SQLErrCode` 的值是否为 0,如果不为 0,则表示执行的 SQL 语句出现了错误。
相关问题
pb 执行sql删除数据
使用 PB (PowerBuilder) 执行 SQL 删除数据的步骤如下:
1. 使用 PB 的 DataWindow 控件或者 Transaction 对象连接到数据库。
2. 使用 DataWindow 控件的 `Delete()` 或者 Transaction 对象的 `Execute()` 方法执行 DELETE SQL 语句。
例如,假设你想要删除名为 `employees` 的表中工资小于 1000 的员工记录,你可以使用以下代码实现:
```
string sql = "DELETE FROM employees WHERE salary < 1000";
dw_1.SetTransObject(SQLCA);
dw_1.Retrieve(sql);
```
其中,`dw_1` 是你在 PB 应用程序中使用的 DataWindow 控件的名称,`SQLCA` 是 PB 中预定义的 Transaction 对象。
注意:在执行 DELETE 操作之前,你需要确保你已经具有对数据库的删除权限。否则,你可能会遇到权限错误。
pb execute immediate 执行SQL 怎么判断影响行数
可以使用 `SQL%ROWCOUNT` 来判断 `EXECUTE IMMEDIATE` 语句影响的行数。
例如:
```
declare
l_rowcount integer;
begin
execute immediate 'delete from my_table where id = 1'
into l_rowcount;
dbms_output.put_line('Deleted rows: ' || l_rowcount);
end;
```
在这个例子中,`l_rowcount` 变量会被赋值为 `DELETE` 语句删除的行数。
注意,如果执行的是非查询语句(例如 `INSERT`,`UPDATE` 或 `DELETE`),则 `SQL%ROWCOUNT` 返回的是被修改或删除的行数。如果执行的是查询语句,则 `SQL%ROWCOUNT` 返回的是查询返回的行数。
阅读全文