retrieve函数,retrieve用法

http://www.itjxue.com  2023-01-06 13:59  来源:未知  点击次数: 

pb中数据窗口filter函数和retrieve函数的区别和联系

retrieve():按条件从数据库中筛选数据,显示到数据库窗口中。

filter():对数据库窗口中的数据库进行筛选,显示或隐藏数据。

区别在于,retrieve()筛选的是数据库中的数据,filter()筛选的是已经显示在数据库窗口中的数据。

PB 里的retrieve函数的用法

用法:该函数执行之前,首先将数据窗口中已有的数据清除掉,然后将数据库中的数据检索到数据窗口中。

所以,如果希望将检索到的数据追加到数据窗口中,需要编写程序。在数据窗口对象的RetrieveStart事件中返回 2(在retrieveStart中编写脚本return 2即可) ,即可防止清除掉数据窗口中的已有数据。

返 回 值:数字类型long,表示函数执行完之后数据窗口中显示出来的数据行数。注意,该返回值不表示检索到的数据行数。

需要注意的是,只有数据窗口对象中定义的过滤规则影响 Retrieve函数的返回值,函数SetFilter 和Filter并不影响。

例1:下面的程序根据Retrieve函数的返回值显示提示信息。

long ll_rows

dw_main.SetTransObject(SQLCA)

ll_rows = dw_main.Retrieve()

IF ll_rows 1 THEN MessageBox("错误","没有检索到数据。")

例2:带参数的检索。

数据窗口对象的SQL语句如下:

SELECT Name, emp.sal, sales.rgn From Employee, Sales

WHERE emp.sal :an_Salary and sales.rgn = :as_Region

其中,an_Salary和as_Region为检索参数,分别为数值型和字符型。可以使用下面的语法检索数据:

dw_1.Retrieve(50000, "NW")

pb datawindow retrieve 怎么用

Retrieve()

功能:让数据窗口控件从数据库中提取数据。如果为该函数提供了参数,那么这些参数的值将用作数据窗口的对象SQL SELECT语句的提取参数。

语法:dwcontrol.Retrieve ( {, argument, argument . . . } )

参数:dwcontrol:数据窗口控件名

argument:向数据窗口对象的SQL SELECT语句提供的检索参数

返回值:Long。函数执行成功时,返回显示在数据窗口中的数据行的行数(即主缓冲区的数据行数);函数执行失败时返回-1。如果任何参数的值为NULL,则Retrieve()函数返回NULL。

用法:使用Retrieve()函数检索出数据之后,系统自动执行数据窗口对象的过滤条件,不满足过滤条件的行被立即移动到过滤缓冲区中,Retrieve()函数返回的行数不包括移动到过滤缓冲区中的行。

在执行Retrieve()函数之前,必须用数据窗口控件的对象函数SetTransObject()或SetTrans()为数据窗口控件设置事务对象。当使用SetTransObject()函数时,在调用之前,需要使用嵌入式SQL语句CONNECT建立事务对象与数据库的连接。

下,执行Retrieve()后,数据窗口中原有的数据被丢弃,并用新的数据来取代。如果想改变这种缺省操作,那么可以通过在数据窗口控件的RetrieveStart事件中编写代码来实现,方法很简单,只要在该事件的事件处理程序中放上语句:Return 2即可。这时,Retrieve()检索出的数据增加到数据窗口原有数据的后面。

如果数据窗口控件中的数据窗口对象需要检索参数,而Retrieve()函数中又没有提供这些参数,那么执行Retrieve()函数时,系统将显示一个对话框,让用户键入检索参数的取值。

Exp1:不带参数的Retrieve

long ll_rows

dw_main.SetTransObject(SQLCA)

ll_rows = dw_main.Retrieve()

IF ll_rows 1 THEN MessageBox( "数据库错误", "没有检索到数据。")

Exp2:带参数的Retrieve

假定数据窗口控件dw_emp中的数据窗口对象使用下面的SQL SELECT语句:SELECT Name, emp.sal, sales.rgn From Employee

WHERE emp.sal :Salary and sales.rgn = :Region

那么下面的语句使数据窗口控件dw_emp1从数据库中提取salary大于50000且地区值为北京的数据:

dw_1.Retrieve(50000, "北京")

希望对你有所帮助!:-)

(责任编辑:IT教学网)

更多

推荐linux服务器文章