pb datawindow retrieve 怎么用

pbdatawindowretrieve怎么用... pb datawindow retrieve 怎么用 展开
 我来答
for_get2007
推荐于2016-12-01 · TA获得超过510个赞
知道小有建树答主
回答量:112
采纳率:100%
帮助的人:181万
展开全部
  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, "北京")

  希望对你有所帮助!:-)
可以叫我表哥
推荐于2016-10-29 · 知道合伙人数码行家
可以叫我表哥
知道合伙人数码行家
采纳数:25897 获赞数:1464977
2010年毕业于北京化工大学北方学院计算机科学与技术专业毕业,学士学位,工程电子技术行业4年从业经验。

向TA提问 私信TA
展开全部
函数作用:为DataWindow或者Datastore检索数据。在使用该函数之前应该执行过函数SetTransObject或者SetTrans,为数据窗口设置过事务对象。该函数执行之前,首先将数据窗口中已有的数据清除掉,然后将数据库中的数据检索到数据窗口中。所以,如果希望将检索到的数据追加到数据窗口中,需要编写程序。在数据窗口对象的RetrieveStart事件中返回2,即可防止清除掉数据窗口中的已有数据。
函数语法:long dwcontrol.Retrieve ( { any argument, any argument . . . } )
ldwcontrol:数据窗口、DataStore或者下拉子数据窗口。
largument:可选参数,根据数据窗口对象中的定义而定。参数的个数和数据类型应该和数据窗口对象中的定义保持一致。
返 回 值:数字类型,表示函数执行完之后数据窗口中显示出来的数据行数。注意,该返回值不表示检索到的数据行数。有两点,RetrieveStart中是否编写了脚本、数据窗口对象定义中是否指定了过滤规则。如果数据窗口对象中定义了过滤规则,检索完成后自动将不符合过滤规则的数据移动到数据窗口的Filter缓冲区中,函数的返回值则是检索到的总数据行数扣除移动到Filter缓冲区的数据行数。需要注意的是,只有数据窗口对象中定义的过滤规则影响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")
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式