PowerBuilder中retrieve的问题
为什么在代码中已经为retrieve的参数赋值了,而且在查错时我发现retrieve命令已经成功执行了,但是运行时还是会弹出窗口提示我输入retrieve的参数值呢?.....
为什么在代码中已经为retrieve的参数赋值了,而且在查错时我发现retrieve命令已经成功执行了,但是运行时还是会弹出窗口提示我输入retrieve的参数值呢? ... 郁闷
代码如下:
long ll_autoid
if row > 0 then
ll_autoid = dw_1.object.autoid[row]
dw_2.retrieve(ll_autoid)
end if 展开
代码如下:
long ll_autoid
if row > 0 then
ll_autoid = dw_1.object.autoid[row]
dw_2.retrieve(ll_autoid)
end if 展开
3个回答
展开全部
因为retrieve默认没有参数。你上面写的代码中加了一个参数,那么就要做相应的设置,方法如下:
1:在左边workspace树型区中,双击你的dw_2窗口,从而打开你的dw_2,然后在菜单栏中选择design-->data source,从而打开data source窗口
2:再次选择菜单栏中的design-->retrieval arguments.此时会弹出一个对话框,在其中加入你的参数和类型( name栏可以任意填写一个名字,我暂且假定你写的是autoid,一会要用到。type栏一定要和你的ll_autoid类型匹配。这和我们在其他语言中调用子程序的规则一样),然后ok.
3:往data source窗口下方看,有个where标签栏,选中它,然后在column 中选择你要retrieve的列名,operator中选择操作符,value中填入:autoid(注意冒号要加在autoid前面),然后关闭data source窗口,会弹出对话框,选择“是”就行了。这一步其实这就是sql中的select语句的的另一种表现形式,如果你对sql语句比较熟悉,这一步很容易理解。
感觉说了好多,不知道你明白了没有,呵呵。如果设置正确,应该不会弹出你说的那个窗口了。
1:在左边workspace树型区中,双击你的dw_2窗口,从而打开你的dw_2,然后在菜单栏中选择design-->data source,从而打开data source窗口
2:再次选择菜单栏中的design-->retrieval arguments.此时会弹出一个对话框,在其中加入你的参数和类型( name栏可以任意填写一个名字,我暂且假定你写的是autoid,一会要用到。type栏一定要和你的ll_autoid类型匹配。这和我们在其他语言中调用子程序的规则一样),然后ok.
3:往data source窗口下方看,有个where标签栏,选中它,然后在column 中选择你要retrieve的列名,operator中选择操作符,value中填入:autoid(注意冒号要加在autoid前面),然后关闭data source窗口,会弹出对话框,选择“是”就行了。这一步其实这就是sql中的select语句的的另一种表现形式,如果你对sql语句比较熟悉,这一步很容易理解。
感觉说了好多,不知道你明白了没有,呵呵。如果设置正确,应该不会弹出你说的那个窗口了。
展开全部
一直提取的缓冲机制,我们都知道retrieve()是执行一个数据窗口的sql语句,然后将从数据库的查询结果放置在数据窗口中(具体的就是几个缓冲区,不多描述),如果数据量特别居大,开辟的缓冲区要很大,内存占用比较厉害,想起以前用那种老旧的电脑,经常引起非法操作导致pb死掉,然后就有了这个retrieve
as
needed和to
disk的设置,前置是只提取部分数据处理,后再是提取数据放置硬盘上,这样就不会受到大数据量的影响了,而且再下拉滚动条的时候,会陆续将更多的数据显示出来,大概就是如此了……
as
needed和to
disk的设置,前置是只提取部分数据处理,后再是提取数据放置硬盘上,这样就不会受到大数据量的影响了,而且再下拉滚动条的时候,会陆续将更多的数据显示出来,大概就是如此了……
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
dw_2的参数不只一个,好好检查
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询