Почему запрос окна данных не обновляет спецификации столбцов? - PullRequest
0 голосов
/ 23 января 2019

Запрос за окном данных Выберите * из MyTable .Я изменил таблицу и добавил еще один столбец.Когда я получаю окно данных в режиме конструктора, оно не показывает мне новый столбец, который я добавил в MyTable

Я предполагаю, что Выбор * из MyTable не требует редактированияОкно данных в режиме разработки и каждое изменение в таблице базы данных также обновит дизайн окна данных.

Как получить все столбцы в спецификациях столбцов без изменения окна данных в режиме конструктора, чтобы вручную добавить столбец в область сведений окна данных?

PowerBuilder 12.5 / MSSQLServer 2008

Ответы [ 2 ]

0 голосов
/ 24 января 2019

Я предполагаю, что Select * из MyTable не потребует редактирования окна данных в режиме разработки, и каждое изменение в таблице базы данных также будет обновлять дизайн окна данных.

Это неверное предположение. Если вы изменяете столбцы базовой таблицы, добавляя, удаляя или типы данных, вы должны принести любые объекты окна данных, которые ссылаются на эту таблицу (под ссылкой я имею в виду, что вы хотите использовать новый столбец или использовали старый столбец или столбец с измененными значениями). datatype) обратно в редактор, чтобы отразить их в этом dwo.

Другой вариант - отредактировать источник объекта окна данных, но это будет только для тривиальных обновлений (например, вы расширили поле varchar с 10 до 20).

0 голосов
/ 23 января 2019

Если вы хотите сделать это, вы можете использовать метод 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)

Вам решать проверить возможные ошибки.

...