我是 PowerBuilder 10.5 的新手,所以我有一个问题......我创建了一个图形 DataWindow。这是一个常用的图形模型,带有简单的 SQL 代码。
SELECT data1, data2 FROM table1, table2;
现在我需要进入我的“开始”命令按钮单击事件并编写这样一个语句,它会在一个简单的条件下调用我的 DataWindow:
WHERE key1=key2.
有什么建议吗?我正在尝试使用“SETsql”语句?
我是 PowerBuilder 10.5 的新手,所以我有一个问题......我创建了一个图形 DataWindow。这是一个常用的图形模型,带有简单的 SQL 代码。
SELECT data1, data2 FROM table1, table2;
现在我需要进入我的“开始”命令按钮单击事件并编写这样一个语句,它会在一个简单的条件下调用我的 DataWindow:
WHERE key1=key2.
有什么建议吗?我正在尝试使用“SETsql”语句?
如果上面的代码是真的,问题是你用 where 条件覆盖了 ls_sql 变量。ls_sql 应该包含整个 sql 语句,包括 select * from xytable where key = 1 所以你应该追加 where 条件(但我认为你应该检索参数,这更容易)
有一种比使用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 将在检索开始时在对话框中询问它(或它们)。