在powerbuilder中你可以在一个数据窗口中显示多个sql结果吗?

时间:2015-02-16 03:20:03

标签: sql powerbuilder datawindow

我想知道是否有可能让一个数据窗口显示多个sql结果?我有4或5个sql脚本,我想一次运行,显示在一个数据窗口,然后保存结果。我希望在一个窗口中保持干净,而不是打开不同的Windows。我怎样才能做到这一点?

4 个答案:

答案 0 :(得分:1)

是的,没有......

单个数据窗口只能有一个"主要"缓冲区 - 这是您看到的行和列。但是你可以创建一个复合数据窗口,它实际上只不过是一个容器"其他数据窗口 - 以及其中每一个"嵌套" datawindows可以运行自己独立的SQL语句。

对于您的用户来说,好像一个数据窗口包含来自不同查询的所有数据,但您确实向他们展示了X个不同的数据窗口。

另一个选项,如果来自不同查询的结果集都是全等的(相同的列,相同的数据类型)。您可以使用RetrieveStart事件告诉数据窗口追加新行而不是在数据窗口缓冲区中替换它们。所以,让我们说我想检索区域1,2和5的客户列表,但我的数据窗口只有sales_region_num的单个参数。我可以检索(1),然后检索(2),但使用RetrieveStart事件追加新行,然后检索(5),再次追加行。这是使用不同检索参数的三个单独查询。

-Paul-

答案 1 :(得分:1)

您是否考虑过编写存储过程?使用#temptable在存储过程中组织所需的结果?然后返回临时表作为结果集?

你提到'然后保存'。 PB脚本中有一个FileSaveas。

答案 2 :(得分:0)

我找到的唯一方法是使用带有DBase A中一个查询结果的逻辑来将数据与DBase B中查询的结果进行比较。

如果要一起显示结果(A和B),那么我将编码到显示临时表中。 Col_1 ="",col_2 ="" ...并循环浏览A和B并使用逻辑来挑选记录。

有点草率但似乎我们正在尝试PB的限制。

答案 3 :(得分:0)

如果所有查询都返回相同的列集,则Antoher可能会使用sql'union':

demo.mp4

将此作为datawindow列的源。从那时起,您只需发出一个'retrieve()'命令即可立即从所有表中获取所有列。当然,editong数据会更成问题......