为什么数据窗口查询不刷新列规范?

Why datawindow query does not refresh column specifications?

数据窗口后面的查询是Select * 来自MyTable。我更改了 table 并添加了另一列。当我在设计模式中检索数据窗口时,它没有显示我在 MyTable

中添加的新列

我假设 Select * from MyTable 不需要在设计模式下编辑数据窗口,并且数据库中的每个更改 table 都会将数据窗口设计更新为出色地。

在设计模式下如何在不更改数据窗口的情况下获取列规范中的所有列以手动在数据窗口的详细区域中添加列?

PowerBuilder 12.5 / MSSQL 服务器 2008

如果要这样做,可以使用数据窗口控件的 create 方法:

String new_sql, new_syntax, errorsyntaxfromSQL, errorcreate

new_sql = 'SELECT * from Mytable'
new_syntax = SQLCA.SyntaxFromSQL(new_sql, 'Style(Type=Form)', error_syntaxfromSQL)
// Generate new DataWindow
dw_new.Create(new_syntax, error_create)

可能出现的错误由您自行测试。

I assume that Select * from MyTable will not require editing datawindow in design mode and every change in database table will update the datawindow design as well.

这不是一个有效的假设。如果您通过添加、删除或数据类型更改基础 table 列,则必须携带任何引用该 table 的数据窗口对象(通过引用我的意思是您想要使用新列或已经使用旧列或数据类型已更改的列)返回到编辑器中以将它们反映在该 dwo 中。

另一种选择是编辑数据窗口对象的源,但这仅适用于微不足道的更新(比如您将 varchar 字段从 10 扩展到 20)。