|
Перестало работать dddw
|
|||
---|---|---|---|
#18+
Есть простейшее dddw в строке grid-таблицы. Display Column - NAME, Data Column - ID. Работало сто лет. При внесении изменений в приложение (добавление window, dw, function, изменения в БД - новые таблицы, поля и view) перестало работать, т.е. при выборе на экране NAME не выдаёт ID. Изменения в приложении этого окна не касались. PB 12.5 Classic, ASA7. Кто-нибудь сталкивался с подобным? Что делать? ... |
|||
:
Нравится:
Не нравится:
|
|||
15.02.2017, 12:10 |
|
Перестало работать dddw
|
|||
---|---|---|---|
#18+
может быть что угодно. В том числе возможно был создан dwobject с тем-же именем, но в другой библиотеке. Пересоздайте dwobject с другим именем, перепривяжите его к dd и посмотрите поведение. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.02.2017, 12:34 |
|
Перестало работать dddw
|
|||
---|---|---|---|
#18+
МеханикПересоздайте dwobject с другим именем, перепривяжите его к dd и посмотрите поведение. Спасибо, сделал так, как Вы сказали. Не помогло. Самое смешное, что это dddw в других окнах работает. Может быть у PowerBuilder'а есть какие-то ограничения на размер приложения? У меня большое приложение - порядка 670 dw и 270 windows. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.02.2017, 13:32 |
|
Перестало работать dddw
|
|||
---|---|---|---|
#18+
Может просто ретрайв не делается? Оно заполнено при открытии? ... |
|||
:
Нравится:
Не нравится:
|
|||
16.02.2017, 17:28 |
|
Перестало работать dddw
|
|||
---|---|---|---|
#18+
spas2001Может просто ретрайв не делается? Оно заполнено при открытии? Да, оно заполняется как и должно быть при ретрайве материнского grid dw. Расследование показало, что само dddw работает, т.е. выдаёт нужный ID и, более того, помещает его в поле grid dw. Потеря данных происходит при Update grid dw. Я начал делать новое grid dw. В строке в разных полях должны быть три разных dddw. Добавил первое - всё работает. Добавил второе - потеря данных по этому полю. У меня возникло подозрение, что это глюк РВ 12.5, не позволяющий располагать несколько dddw в одной строке. Дело в том, что исходное grid dw не редактировалось в РВ 12.5, а было получено путём миграции из РВ5 и прекрасно себе работало со всеми своими 3-мя dddw. А тут возникла необходимость его подредактировать и перезаписать уже в РВ 12.5. И пошло-поехало. Может быть где-то есть параметр, отвечающий за количество dddw в строке? Никто не сталкивался? ... |
|||
:
Нравится:
Не нравится:
|
|||
16.02.2017, 18:42 |
|
Перестало работать dddw
|
|||
---|---|---|---|
#18+
Так может Update property проверить? Параметр количества ddw в строке не видел, ставь сколько хочешь. Допустим если поле не включено в список update, вполне возможна такая ситуация. Импорт тут не при чем, раз ddw заполняется и выбирается, но не сохраняется - надо копать в обновлении ... |
|||
:
Нравится:
Не нравится:
|
|||
17.02.2017, 11:00 |
|
Перестало работать dddw
|
|||
---|---|---|---|
#18+
spas2001Так может Update property проверить? Это я, конечно, проверил. Всё прописано правильно (ведь до этого инцидента всё работало :-) ... |
|||
:
Нравится:
Не нравится:
|
|||
17.02.2017, 11:14 |
|
Перестало работать dddw
|
|||
---|---|---|---|
#18+
mgl_www, Включите профайлер на стороне СУБД. Возможно синтаксис трансляции для dddw на базу изменился от версии PB. Например, Null поля по другому стали обрабатываться! :-( ... |
|||
:
Нравится:
Не нравится:
|
|||
17.02.2017, 12:10 |
|
Перестало работать dddw
|
|||
---|---|---|---|
#18+
mgl_wwwДело в том, что исходное grid dw не редактировалось в РВ 12.5, а было получено путём миграции из РВ5 и прекрасно себе работало со всеми своими 3-мя dddw. А тут возникла необходимость его подредактировать и перезаписать уже в РВ 12.5. И пошло-поехало. Может быть где-то есть параметр, отвечающий за количество dddw в строке? Никто не сталкивался? Сэкспортировать DataWindow в srd до редактирования и после и посмотреть через fc, что там изменилось ... |
|||
:
Нравится:
Не нравится:
|
|||
17.02.2017, 13:09 |
|
Перестало работать dddw
|
|||
---|---|---|---|
#18+
Локшин МаркСэкспортировать DataWindow в srd до редактирования и после и посмотреть через fc, что там изменилось Марк, спасибо за дельный совет. Я ему последовал и сравнил распечатки "до" и "после". Правда различий я не обнаружил, но зато обратил внимание на слишком переусложнённое условие WHERE в родительском grid_dw. Я его упростил и всё заработало! Инцидент исчерпан. Ну и хорошо, а то я уже начал сомневаться в святости РВ :-) Однако вопрос о том, почему это раньше работало, а проблемы появились после расширения приложения остался открытым. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.02.2017, 16:32 |
|
Перестало работать dddw
|
|||
---|---|---|---|
#18+
Встречал такое Но так и не понял в чем дело Переписал по-другому Если несложно, можно условие посмотреть? ... |
|||
:
Нравится:
Не нравится:
|
|||
17.02.2017, 18:54 |
|
Перестало работать dddw
|
|||
---|---|---|---|
#18+
spas2001Если несложно, можно условие посмотреть? Было: SELECT income.inc_id, income.ent_id, income.safe_id, income.inc_date, income.inc_sum, ... FROM {oj income LEFT OUTER JOIN enterprise ON income.ent_id = enterprise.ent_id}, {oj income LEFT OUTER JOIN safe ON income.safe_id = safe.safe_id}, currency_business WHERE ( income.inc_date >= :m_date_begin AND income.inc_date <= :m_date_end ) AND (income.inc_notes like :m_search OR income.inc_article +' '+income.inc_notes like :m_search OR enterprise.ent_name_short+safe.safe_name + safe.safe_currency+income.inc_article +income.inc_invoice_numb+income.inc_notes like :m_search OR safe.safe_name + safe.safe_currency like :m_search OR safe.safe_currency like :m_search) AND safe.safe_name like :m_branch Стало: SELECT income.inc_id, income.ent_id, income.safe_id, income.inc_date, income.inc_sum, ... FROM {oj income LEFT OUTER JOIN enterprise ON income.ent_id = enterprise.ent_id}, {oj income LEFT OUTER JOIN safe ON income.safe_id = safe.safe_id}, currency_business WHERE ( income.inc_date >= :m_date_begin AND income.inc_date <= :m_date_end ) AND enterprise.ent_name_short+safe.safe_name + safe.safe_currency+income.inc_article +income.inc_invoice_numb+income.inc_notes like :m_search AND safe.safe_name like :m_branch ... |
|||
:
Нравится:
Не нравится:
|
|||
17.02.2017, 19:27 |
|
Перестало работать dddw
|
|||
---|---|---|---|
#18+
Нет, не тот случай Нехорошо, правда, использовать ANSI JOIN и non-ANSI SQL JOIN Я бы переписал ... |
|||
:
Нравится:
Не нравится:
|
|||
18.02.2017, 21:23 |
|
Перестало работать dddw
|
|||
---|---|---|---|
#18+
spas2001Нехорошо, правда, использовать ANSI JOIN и non-ANSI SQL JOIN Я бы переписал Ну, тут я не виноват. Так сделал DataWindow Painter - я ему не помогал :-) А как бы Вы переписали? ... |
|||
:
Нравится:
Не нравится:
|
|||
20.02.2017, 11:34 |
|
Перестало работать dddw
|
|||
---|---|---|---|
#18+
Явно указал бы join c currency_business ... |
|||
:
Нравится:
Не нравится:
|
|||
21.02.2017, 07:53 |
|
Перестало работать dddw
|
|||
---|---|---|---|
#18+
spas2001Явно указал бы join c currency_business А..., но тут особый случай: currency_business не имеет связи ни с одной из присутствующих таблиц. Это особая таблица, состоящая из одного поля и одной записи, в которой содержится константа - валюта бизнеса ("USD", например). Эта таблица включена в dw исключительно для индикации этой валюты в шапке формы. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.02.2017, 12:33 |
|
|
start [/forum/topic.php?fid=15&fpage=6&tid=1335176]: |
0ms |
get settings: |
9ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
37ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
49ms |
get tp. blocked users: |
1ms |
others: | 14ms |
total: | 143ms |
0 / 0 |