0

我是 PowerBuilder 10.5 的新手,所以我有一个问题......我创建了一个图形 DataWindow。这是一个常用的图形模型,带有简单的 SQL 代码。

SELECT data1, data2 FROM table1, table2;

现在我需要进入我的“开始”命令按钮单击事件并编写这样一个语句,它会在一个简单的条件下调用我的 DataWindow:

WHERE key1=key2.

有什么建议吗?我正在尝试使用“SETsql”语句?

4

2 回答 2

1

如果上面的代码是真的,问题是你用 where 条件覆盖了 ls_sql 变量。ls_sql 应该包含整个 sql 语句,包括 select * from xytable where key = 1 所以你应该追加 where 条件(但我认为你应该检索参数,这更容易)

于 2013-06-10T06:42:12.813 回答
0

有一种比使用SetSQL()语句更简单的方法,因为它SetSQL必须与 DW 中定义的列相匹配(您可以动态创建它们,但是当您声明是 PB 的新手时,我将跳过这种可能性):

  • 如果您的 SQL 语句始终相同并且不需要代码或用户提供的密钥,您可以SELECT直接在 DW 画家中定义(菜单Design / Data source,然后cb_start.clicked()您只需调用your_dw.retrieve()

  • 如果您需要一个可能不同的键,请Retrieval arguments在 DW 中定义它data source view:选择数据类型和名称(例如thing),在 DWSELECT语法中,您可以说(注意冒号)和事件WHERE key1=:thing中的 pbscript 代码clicked()在检索参数中添加参数的值your_dw.retrieve("42")。显然,您可以用正确类型的变量替换文字,该变量可以以前在代码中定义和填充。如果您没有通过retrieve()语句提供检索参数的值,则 DW 将在检索开始时在对话框中询问它(或它们)。

于 2013-06-10T06:31:05.603 回答