powerbuilder Primary! Delete! Filter! 三个缓冲区的作用

发布时间:2023年12月24日

Primary! 主缓存区,放正在使用的数据。
Delete! 删除缓存区,放将要删除但还没有提交到数据库的数据。
Filter! 筛选缓存区,放不符合筛选条件的数据。

最后在update的时候根据你的update设置生成相应的SQL语句。行的状态和所在的缓存区决定生成语句的类型,各列的状态和值决定生成的具体SQL语句的表达式或条件。primary、filter 缓存区,如果行是NewModified!的生成insert语句,如果是DataModified!的生成update语句;delete!缓存区的行如果是NotModified!或DataModified!的,生成delete语句。

在PowerBuilder中,可以使用Primary缓冲区来操作数据库表的数据。下面是关于如何转移数据的三个示例:

  1. Delete(删除):使用Delete方法从Primary缓冲区中删除数据。例如,要删除一个名为"customer"的表中的特定行,可以使用以下代码:
dw_1.SetTransObject(SQLCA)
dw_1.Retrieve()
int row
row = dw_1.Find("customer_id = 12345")
If row > 0 Then
    dw_1.DeleteRow(row)
    Commit()
End If

  1. Filter(过滤):使用Filter方法从Primary缓冲区中筛选数据。例如,要通过姓名过滤一个名为"employee"的表中的数据,可以使用以下代码:
dw_2.SetTransObject(SQLCA)
dw_2.Retrieve()
dw_2.Filter("emp_name = 'John Smith'")

  1. RowsCopy(行复制):使用RowsCopy方法将Primary缓冲区中的数据复制到另一个缓冲区。例如,要将一个名为"order"的表中的所有行复制到名为"order_copy"的另一个表中,可以使用以下代码:
dw_3.SetTransObject(SQLCA)
dw_3.Retrieve()
dw_4.SetTransObject(SQLCA)
dw_4.RowsCopy(1, dw_3.RowCount(), Primary!, "order_copy")

希望以上示例能帮助到你!

文章来源:https://blog.csdn.net/zz_ll9023/article/details/135137683
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。